cherrypy-foundation 1.0.0a4__tar.gz → 1.0.0a5__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.0a5}/PKG-INFO +1 -1
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/templates/test_url.html +3 -2
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/test_url.py +23 -15
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/url.py +5 -3
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5/src/cherrypy_foundation.egg-info}/PKG-INFO +1 -1
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/.gitignore +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/.gitlab-ci.yml +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/LICENSE.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/README.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/pyproject.toml +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/setup.cfg +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/sonar-project.properties +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/ColorModes.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Datatable.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Datatable.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Datatable.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Field.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Field.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Field.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Fields.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Icon.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/SideBySideMultiSelect.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/SideBySideMultiSelect.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/SideBySideMultiSelect.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Typeahead.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Typeahead.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/Typeahead.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/tests/test_static.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js.map +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/bootstrap5/js/color-modes.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc_disabled.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/images/sort_both.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc_disabled.png +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/vfs_fonts.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/jquery/jquery.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/multi/LICENSE +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/multi/README.md +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/multi/multi.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/multi/multi.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/popper/popper.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/popper/popper.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.css +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.js +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/error_page.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/flash.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/form.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/logging.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/passwd.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/db.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/ldap.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/restapi.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/scheduler.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/smtp.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/tests/test_db.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/tests/test_ldap.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/tests/test_scheduler.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/tests/test_smtp.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/templates/test_form.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/test_error_page.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/test_form.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tests/test_passwd.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/auth.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/auth_mfa.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/errors.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/i18n.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/jinja2.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/ratelimit.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/secure_headers.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/sessions_timeout.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/__init__.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/components/Button.jinja +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/locales/en/LC_MESSAGES/messages.mo +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/locales/en/LC_MESSAGES/messages.po +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.mo +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.po +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/locales/messages.pot +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/templates/test_jinja2.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/templates/test_jinja2_i18n.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/templates/test_jinjax.html +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/test_auth.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/test_auth_mfa.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/test_i18n.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/test_jinja2.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/tests/test_ratelimit.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/widgets.py +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation.egg-info/SOURCES.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation.egg-info/dependency_links.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation.egg-info/requires.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation.egg-info/top_level.txt +0 -0
- {cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/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):
|
|
@@ -87,15 +90,16 @@ class UrlTest(helper.CPWebCase):
|
|
|
87
90
|
# 2. Check user field
|
|
88
91
|
self.assertInBody(f'Empty: http://{self.HOST}:{self.PORT}/')
|
|
89
92
|
self.assertInBody(f'Dot: http://{self.HOST}:{self.PORT}/')
|
|
93
|
+
self.assertInBody(f'Dot page: http://{self.HOST}:{self.PORT}/my-page')
|
|
90
94
|
self.assertInBody(f'Slash: http://{self.HOST}:{self.PORT}/')
|
|
91
95
|
self.assertInBody(f'Page: http://{self.HOST}:{self.PORT}/my-page')
|
|
92
|
-
self.assertInBody(f'
|
|
96
|
+
self.assertInBody(f'Slash page: http://{self.HOST}:{self.PORT}/my-page')
|
|
93
97
|
self.assertInBody(f'Query: http://{self.HOST}:{self.PORT}/my-page?bar=test+with+space&foo=1')
|
|
94
98
|
|
|
95
99
|
def test_get_page_relative_true(self):
|
|
96
100
|
# Given a form
|
|
97
101
|
# When querying the page that include this form
|
|
98
|
-
self.getPage("
|
|
102
|
+
self.getPage("/", headers=[('_relative', '1')])
|
|
99
103
|
self.assertStatus(200)
|
|
100
104
|
# Then each field is render properly.
|
|
101
105
|
# 1. Check title
|
|
@@ -103,15 +107,16 @@ class UrlTest(helper.CPWebCase):
|
|
|
103
107
|
# 2. Check user field
|
|
104
108
|
self.assertInBody('Empty: <br/>')
|
|
105
109
|
self.assertInBody('Dot: <br/>')
|
|
110
|
+
self.assertInBody('Dot page: my-page<br/>')
|
|
106
111
|
self.assertInBody('Slash: <br/>')
|
|
107
112
|
self.assertInBody('Page: my-page<br/>')
|
|
108
|
-
self.assertInBody('
|
|
113
|
+
self.assertInBody('Slash page: my-page<br/>')
|
|
109
114
|
self.assertInBody('Query: my-page?bar=test+with+space&foo=1<br/>')
|
|
110
115
|
|
|
111
116
|
def test_get_page_relative_server(self):
|
|
112
117
|
# Given a form
|
|
113
118
|
# When querying the page that include this form
|
|
114
|
-
self.getPage("
|
|
119
|
+
self.getPage("/", headers=[('_relative', 'server')])
|
|
115
120
|
self.assertStatus(200)
|
|
116
121
|
# Then each field is render properly.
|
|
117
122
|
# 1. Check title
|
|
@@ -119,9 +124,10 @@ class UrlTest(helper.CPWebCase):
|
|
|
119
124
|
# 2. Check user field
|
|
120
125
|
self.assertInBody('Empty: /<br/>')
|
|
121
126
|
self.assertInBody('Dot: /<br/>')
|
|
127
|
+
self.assertInBody('Dot page: /my-page<br/>')
|
|
122
128
|
self.assertInBody('Slash: /<br/>')
|
|
123
129
|
self.assertInBody('Page: /my-page<br/>')
|
|
124
|
-
self.assertInBody('
|
|
130
|
+
self.assertInBody('Slash page: /my-page<br/>')
|
|
125
131
|
self.assertInBody('Query: /my-page?bar=test+with+space&foo=1<br/>')
|
|
126
132
|
|
|
127
133
|
def test_get_page_proxied(self):
|
|
@@ -133,12 +139,13 @@ class UrlTest(helper.CPWebCase):
|
|
|
133
139
|
# 1. Check title
|
|
134
140
|
self.assertInBody('test-url')
|
|
135
141
|
# 2. Check user field
|
|
136
|
-
self.assertInBody('Empty: https://www.example.com/
|
|
142
|
+
self.assertInBody('Empty: https://www.example.com/')
|
|
137
143
|
self.assertInBody('Dot: https://www.example.com/proxied/')
|
|
144
|
+
self.assertInBody('Dot page: https://www.example.com/proxied/my-page<br/>')
|
|
138
145
|
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/
|
|
146
|
+
self.assertInBody('Page: https://www.example.com/my-page')
|
|
147
|
+
self.assertInBody('Slash page: https://www.example.com/my-page')
|
|
148
|
+
self.assertInBody('Query: https://www.example.com/my-page?bar=test+with+space&foo=1')
|
|
142
149
|
|
|
143
150
|
def test_get_sub_page(self):
|
|
144
151
|
# Given a form
|
|
@@ -151,7 +158,8 @@ class UrlTest(helper.CPWebCase):
|
|
|
151
158
|
# 2. Check user field
|
|
152
159
|
self.assertInBody(f'Empty: http://{self.HOST}:{self.PORT}/sub-page/')
|
|
153
160
|
self.assertInBody(f'Dot: http://{self.HOST}:{self.PORT}/sub-page/')
|
|
161
|
+
self.assertInBody(f'Dot page: http://{self.HOST}:{self.PORT}/sub-page/my-page')
|
|
154
162
|
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}/
|
|
163
|
+
self.assertInBody(f'Page: http://{self.HOST}:{self.PORT}/my-page')
|
|
164
|
+
self.assertInBody(f'Slash page: http://{self.HOST}:{self.PORT}/my-page')
|
|
165
|
+
self.assertInBody(f'Query: http://{self.HOST}:{self.PORT}/my-page?bar=test+with+space&foo=1')
|
|
@@ -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,11 +57,10 @@ 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
|
|
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.0a5}/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.0a5}/src/cherrypy_foundation/error_page.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/flash.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/logging.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/passwd.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/plugins/db.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/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.0a5}/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.0a5}/src/cherrypy_foundation/tools/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/errors.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/src/cherrypy_foundation/tools/i18n.py
RENAMED
|
File without changes
|
{cherrypy_foundation-1.0.0a4 → cherrypy_foundation-1.0.0a5}/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.0a5}/src/cherrypy_foundation/widgets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|