cherrypy-foundation 1.0.0a4__tar.gz → 1.0.0a6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cherrypy_foundation-1.0.0a4/src/cherrypy_foundation.egg-info → cherrypy_foundation-1.0.0a6}/PKG-INFO +1 -1
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/templates/test_url.html +3 -2
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/test_url.py +23 -19
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/url.py +7 -11
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6/src/cherrypy_foundation.egg-info}/PKG-INFO +1 -1
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/.gitignore +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/.gitlab-ci.yml +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/LICENSE.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/README.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/pyproject.toml +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/setup.cfg +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/sonar-project.properties +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/ColorModes.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Datatable.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Datatable.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Datatable.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Field.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Field.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Field.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Fields.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Icon.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/SideBySideMultiSelect.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/SideBySideMultiSelect.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/SideBySideMultiSelect.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Typeahead.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Typeahead.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/Typeahead.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/tests/test_static.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/bootstrap5/js/color-modes.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc_disabled.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/images/sort_both.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc_disabled.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/vfs_fonts.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/jquery/jquery.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/multi/LICENSE +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/multi/README.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/multi/multi.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/multi/multi.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/popper/popper.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/popper/popper.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/error_page.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/flash.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/form.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/logging.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/passwd.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/db.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/ldap.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/restapi.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/scheduler.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/smtp.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/tests/test_db.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/tests/test_ldap.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/tests/test_scheduler.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/tests/test_smtp.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/templates/test_form.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/test_error_page.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/test_form.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tests/test_passwd.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/auth.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/auth_mfa.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/errors.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/i18n.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/jinja2.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/ratelimit.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/secure_headers.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/sessions_timeout.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/components/Button.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/locales/en/LC_MESSAGES/messages.mo +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/locales/en/LC_MESSAGES/messages.po +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.mo +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.po +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/locales/messages.pot +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/templates/test_jinja2.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/templates/test_jinja2_i18n.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/templates/test_jinjax.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/test_auth.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/test_auth_mfa.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/test_i18n.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/test_jinja2.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/tests/test_ratelimit.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/widgets.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation.egg-info/SOURCES.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation.egg-info/dependency_links.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation.egg-info/requires.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation.egg-info/top_level.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/tox.ini +0 -0
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
<title>test-url</title>
|
|
4
4
|
</head>
|
|
5
5
|
<body>
|
|
6
|
-
Empty: {{ url_for("
|
|
6
|
+
Empty: {{ url_for("", **kwargs) }}<br/>
|
|
7
7
|
Dot: {{ url_for(".", **kwargs) }}<br/>
|
|
8
|
+
Dot page: {{ url_for(".", "my-page", **kwargs) }}<br/>
|
|
8
9
|
Slash: {{ url_for("/", **kwargs) }}<br/>
|
|
9
10
|
Page: {{ url_for("my-page", **kwargs) }}<br/>
|
|
10
|
-
|
|
11
|
+
Slash page: {{ url_for("/my-page", **kwargs) }}<br/>
|
|
11
12
|
Query: {{ url_for("my-page", foo='1', bar='test with space', **kwargs) }}<br/>
|
|
12
13
|
</body>
|
|
13
14
|
</html>
|
|
@@ -34,7 +34,8 @@ class SubPage:
|
|
|
34
34
|
@cherrypy.expose
|
|
35
35
|
@cherrypy.tools.jinja2(template='test_url.html')
|
|
36
36
|
def index(self, **kwargs):
|
|
37
|
-
|
|
37
|
+
_relative = cherrypy.request.headers.get('-Relative')
|
|
38
|
+
return {'kwargs': {'_relative': _relative or None}}
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
@cherrypy.tools.proxy(base='https://www.example.com')
|
|
@@ -43,7 +44,8 @@ class ProxiedPage:
|
|
|
43
44
|
@cherrypy.expose
|
|
44
45
|
@cherrypy.tools.jinja2(template='test_url.html')
|
|
45
46
|
def index(self, **kwargs):
|
|
46
|
-
|
|
47
|
+
_relative = cherrypy.request.headers.get('-Relative')
|
|
48
|
+
return {'kwargs': {'_relative': _relative or None}}
|
|
47
49
|
|
|
48
50
|
|
|
49
51
|
@cherrypy.tools.jinja2(env=env)
|
|
@@ -54,7 +56,8 @@ class Root:
|
|
|
54
56
|
@cherrypy.expose
|
|
55
57
|
@cherrypy.tools.jinja2(template='test_url.html')
|
|
56
58
|
def index(self, **kwargs):
|
|
57
|
-
|
|
59
|
+
_relative = cherrypy.request.headers.get('-Relative')
|
|
60
|
+
return {'kwargs': {'_relative': _relative or None}}
|
|
58
61
|
|
|
59
62
|
|
|
60
63
|
class UrlTest(helper.CPWebCase):
|
|
@@ -71,10 +74,6 @@ class UrlTest(helper.CPWebCase):
|
|
|
71
74
|
# Outside a request, relative url doesn't make alot of sens.
|
|
72
75
|
self.assertEqual(url_for("foo", "bar", _relative=1), '127.0.0.1:54583/foo/bar')
|
|
73
76
|
self.assertEqual(url_for("foo", "bar", _base='http://test.com'), 'http://test.com/foo/bar')
|
|
74
|
-
self.assertEqual(
|
|
75
|
-
url_for("mailto:myuser@test.com", subject='Enter you subject', _base=''),
|
|
76
|
-
'mailto:myuser@test.com?subject=Enter%20you%20subject',
|
|
77
|
-
)
|
|
78
77
|
|
|
79
78
|
def test_get_page(self):
|
|
80
79
|
# Given a form
|
|
@@ -87,15 +86,16 @@ class UrlTest(helper.CPWebCase):
|
|
|
87
86
|
# 2. Check user field
|
|
88
87
|
self.assertInBody(f'Empty: http://{self.HOST}:{self.PORT}/')
|
|
89
88
|
self.assertInBody(f'Dot: http://{self.HOST}:{self.PORT}/')
|
|
89
|
+
self.assertInBody(f'Dot page: http://{self.HOST}:{self.PORT}/my-page')
|
|
90
90
|
self.assertInBody(f'Slash: http://{self.HOST}:{self.PORT}/')
|
|
91
91
|
self.assertInBody(f'Page: http://{self.HOST}:{self.PORT}/my-page')
|
|
92
|
-
self.assertInBody(f'
|
|
92
|
+
self.assertInBody(f'Slash page: http://{self.HOST}:{self.PORT}/my-page')
|
|
93
93
|
self.assertInBody(f'Query: http://{self.HOST}:{self.PORT}/my-page?bar=test+with+space&foo=1')
|
|
94
94
|
|
|
95
95
|
def test_get_page_relative_true(self):
|
|
96
96
|
# Given a form
|
|
97
97
|
# When querying the page that include this form
|
|
98
|
-
self.getPage("
|
|
98
|
+
self.getPage("/", headers=[('_relative', '1')])
|
|
99
99
|
self.assertStatus(200)
|
|
100
100
|
# Then each field is render properly.
|
|
101
101
|
# 1. Check title
|
|
@@ -103,15 +103,16 @@ class UrlTest(helper.CPWebCase):
|
|
|
103
103
|
# 2. Check user field
|
|
104
104
|
self.assertInBody('Empty: <br/>')
|
|
105
105
|
self.assertInBody('Dot: <br/>')
|
|
106
|
+
self.assertInBody('Dot page: my-page<br/>')
|
|
106
107
|
self.assertInBody('Slash: <br/>')
|
|
107
108
|
self.assertInBody('Page: my-page<br/>')
|
|
108
|
-
self.assertInBody('
|
|
109
|
+
self.assertInBody('Slash page: my-page<br/>')
|
|
109
110
|
self.assertInBody('Query: my-page?bar=test+with+space&foo=1<br/>')
|
|
110
111
|
|
|
111
112
|
def test_get_page_relative_server(self):
|
|
112
113
|
# Given a form
|
|
113
114
|
# When querying the page that include this form
|
|
114
|
-
self.getPage("
|
|
115
|
+
self.getPage("/", headers=[('_relative', 'server')])
|
|
115
116
|
self.assertStatus(200)
|
|
116
117
|
# Then each field is render properly.
|
|
117
118
|
# 1. Check title
|
|
@@ -119,9 +120,10 @@ class UrlTest(helper.CPWebCase):
|
|
|
119
120
|
# 2. Check user field
|
|
120
121
|
self.assertInBody('Empty: /<br/>')
|
|
121
122
|
self.assertInBody('Dot: /<br/>')
|
|
123
|
+
self.assertInBody('Dot page: /my-page<br/>')
|
|
122
124
|
self.assertInBody('Slash: /<br/>')
|
|
123
125
|
self.assertInBody('Page: /my-page<br/>')
|
|
124
|
-
self.assertInBody('
|
|
126
|
+
self.assertInBody('Slash page: /my-page<br/>')
|
|
125
127
|
self.assertInBody('Query: /my-page?bar=test+with+space&foo=1<br/>')
|
|
126
128
|
|
|
127
129
|
def test_get_page_proxied(self):
|
|
@@ -133,12 +135,13 @@ class UrlTest(helper.CPWebCase):
|
|
|
133
135
|
# 1. Check title
|
|
134
136
|
self.assertInBody('test-url')
|
|
135
137
|
# 2. Check user field
|
|
136
|
-
self.assertInBody('Empty: https://www.example.com/
|
|
138
|
+
self.assertInBody('Empty: https://www.example.com/')
|
|
137
139
|
self.assertInBody('Dot: https://www.example.com/proxied/')
|
|
140
|
+
self.assertInBody('Dot page: https://www.example.com/proxied/my-page<br/>')
|
|
138
141
|
self.assertInBody('Slash: https://www.example.com/')
|
|
139
|
-
self.assertInBody('Page: https://www.example.com/
|
|
140
|
-
self.assertInBody('
|
|
141
|
-
self.assertInBody('Query: https://www.example.com/
|
|
142
|
+
self.assertInBody('Page: https://www.example.com/my-page')
|
|
143
|
+
self.assertInBody('Slash page: https://www.example.com/my-page')
|
|
144
|
+
self.assertInBody('Query: https://www.example.com/my-page?bar=test+with+space&foo=1')
|
|
142
145
|
|
|
143
146
|
def test_get_sub_page(self):
|
|
144
147
|
# Given a form
|
|
@@ -151,7 +154,8 @@ class UrlTest(helper.CPWebCase):
|
|
|
151
154
|
# 2. Check user field
|
|
152
155
|
self.assertInBody(f'Empty: http://{self.HOST}:{self.PORT}/sub-page/')
|
|
153
156
|
self.assertInBody(f'Dot: http://{self.HOST}:{self.PORT}/sub-page/')
|
|
157
|
+
self.assertInBody(f'Dot page: http://{self.HOST}:{self.PORT}/sub-page/my-page')
|
|
154
158
|
self.assertInBody(f'Slash: http://{self.HOST}:{self.PORT}/')
|
|
155
|
-
self.assertInBody(f'Page: http://{self.HOST}:{self.PORT}/
|
|
156
|
-
self.assertInBody(f'
|
|
157
|
-
self.assertInBody(f'Query: http://{self.HOST}:{self.PORT}/
|
|
159
|
+
self.assertInBody(f'Page: http://{self.HOST}:{self.PORT}/my-page')
|
|
160
|
+
self.assertInBody(f'Slash page: http://{self.HOST}:{self.PORT}/my-page')
|
|
161
|
+
self.assertInBody(f'Query: http://{self.HOST}:{self.PORT}/my-page?bar=test+with+space&foo=1')
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# You should have received a copy of the GNU General Public License
|
|
15
15
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
|
|
17
|
-
from urllib.parse import
|
|
17
|
+
from urllib.parse import urljoin
|
|
18
18
|
|
|
19
19
|
import cherrypy
|
|
20
20
|
|
|
@@ -35,6 +35,9 @@ def url_for(*args, _relative=None, _base=None, **kwargs):
|
|
|
35
35
|
- Integers are appended as path segments.
|
|
36
36
|
- When path == "", existing request query parameters are merged (kwargs win).
|
|
37
37
|
"""
|
|
38
|
+
# Handle query-string
|
|
39
|
+
qs = [(k, v) for k, v in sorted(kwargs.items()) if v is not None]
|
|
40
|
+
|
|
38
41
|
path = []
|
|
39
42
|
for chunk in args:
|
|
40
43
|
if hasattr(chunk, '__url_for__') and callable(chunk.__url_for__):
|
|
@@ -54,18 +57,11 @@ def url_for(*args, _relative=None, _base=None, **kwargs):
|
|
|
54
57
|
params = cherrypy.request.params.copy()
|
|
55
58
|
params.update(kwargs)
|
|
56
59
|
qs = [(k, v) for k, v in sorted(params.items()) if v is not None]
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
elif not path.startswith('.'):
|
|
61
|
+
path = urljoin('/', path)
|
|
59
62
|
# Outside a request, use cherrypy.tools.proxy config
|
|
60
63
|
if not cherrypy.request.app:
|
|
61
|
-
path = urljoin('/', path)
|
|
62
64
|
if _base is None:
|
|
63
65
|
_base = cherrypy.config.get('tools.proxy.base', None)
|
|
64
66
|
# Use cherrypy to build the URL
|
|
65
|
-
|
|
66
|
-
# Append the query string
|
|
67
|
-
if qs and url.startswith('mailto:'):
|
|
68
|
-
return url + '?' + urlencode(qs, quote_via=quote)
|
|
69
|
-
elif qs:
|
|
70
|
-
return url + '?' + urlencode(qs)
|
|
71
|
-
return url
|
|
67
|
+
return cherrypy.url(path=path, qs=qs, relative=_relative, base=_base)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/error_page.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/flash.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/logging.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/passwd.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/db.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/ldap.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/plugins/smtp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/errors.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/i18n.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/tools/jinja2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a6}/src/cherrypy_foundation/widgets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|