>>> py3-url-normalize: Building community/py3-url-normalize 3.0.0-r0 (using abuild 3.17.0-r0) started Fri, 12 Jun 2026 12:51:17 +0000 >>> py3-url-normalize: Validating /home/buildozer/aports/community/py3-url-normalize/APKBUILD... >>> py3-url-normalize: Analyzing dependencies... >>> py3-url-normalize: Installing for build: build-base python3 py3-idna py3-setuptools py3-gpep517 py3-pytest py3-pytest-cov py3-pytest-socket py3-sortedcontainers ( 1/42) Installing libbz2 (1.0.8-r6) ( 2/42) Installing libffi (3.5.2-r1) ( 3/42) Installing xz-libs (5.8.3-r0) ( 4/42) Installing mpdecimal (4.0.1-r0) ( 5/42) Installing libpanelw (6.6_p20260516-r0) ( 6/42) Installing readline (8.3.3-r1) ( 7/42) Installing sqlite-libs (3.53.2-r0) ( 8/42) Installing python3 (3.14.5-r1) ( 9/42) Installing python3-pycache-pyc0 (3.14.5-r1) (10/42) Installing pyc (3.14.5-r1) (11/42) Installing python3-pyc (3.14.5-r1) (12/42) Installing py3-idna (3.16-r0) (13/42) Installing py3-idna-pyc (3.16-r0) (14/42) Installing py3-parsing (3.3.2-r1) (15/42) Installing py3-parsing-pyc (3.3.2-r1) (16/42) Installing py3-packaging (26.2-r0) (17/42) Installing py3-packaging-pyc (26.2-r0) (18/42) Installing py3-setuptools (82.0.1-r1) (19/42) Installing py3-setuptools-pyc (82.0.1-r1) (20/42) Installing py3-installer (1.0.0-r0) (21/42) Installing py3-installer-pyc (1.0.0-r0) (22/42) Installing py3-gpep517 (19-r2) (23/42) Installing py3-gpep517-pyc (19-r2) (24/42) Installing py3-iniconfig (2.3.0-r1) (25/42) Installing py3-iniconfig-pyc (2.3.0-r1) (26/42) Installing py3-pluggy (1.6.0-r1) (27/42) Installing py3-pluggy-pyc (1.6.0-r1) (28/42) Installing py3-py (1.11.0-r5) (29/42) Installing py3-py-pyc (1.11.0-r5) (30/42) Installing py3-pygments (2.20.0-r0) (31/42) Installing py3-pygments-pyc (2.20.0-r0) (32/42) Installing py3-pytest (9.0.3-r0) (33/42) Installing py3-pytest-pyc (9.0.3-r0) (34/42) Installing py3-coverage (7.14.1-r0) (35/42) Installing py3-coverage-pyc (7.14.1-r0) (36/42) Installing py3-pytest-cov (5.0.0-r2) (37/42) Installing py3-pytest-cov-pyc (5.0.0-r2) (38/42) Installing py3-pytest-socket (0.7.0-r2) (39/42) Installing py3-pytest-socket-pyc (0.7.0-r2) (40/42) Installing py3-sortedcontainers (2.4.0-r6) (41/42) Installing py3-sortedcontainers-pyc (2.4.0-r6) (42/42) Installing .makedepends-py3-url-normalize (20260612.125119) Executing busybox-1.37.0-r31.trigger OK: 333.9 MiB in 145 packages >>> py3-url-normalize: Cleaning up srcdir >>> py3-url-normalize: Cleaning up pkgdir >>> py3-url-normalize: Cleaning up tmpdir >>> py3-url-normalize: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-url-normalize-3.0.0.tar.gz Connecting to distfiles.alpinelinux.org (172.105.82.32:443) wget: server returned error: HTTP/1.1 404 Not Found >>> py3-url-normalize: Fetching py3-url-normalize-3.0.0.tar.gz::https://github.com/niksite/url-normalize/archive/refs/tags/v3.0.0.tar.gz Connecting to github.com (140.82.121.3:443) Connecting to codeload.github.com (140.82.121.10:443) saving to '/var/cache/distfiles/py3-url-normalize-3.0.0.tar.gz.part' py3-url-normalize-3. 100% |********************************| 62532 0:00:00 ETA '/var/cache/distfiles/py3-url-normalize-3.0.0.tar.gz.part' saved /var/cache/distfiles/py3-url-normalize-3.0.0.tar.gz: OK >>> py3-url-normalize: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-url-normalize-3.0.0.tar.gz /var/cache/distfiles/py3-url-normalize-3.0.0.tar.gz: OK >>> py3-url-normalize: Unpacking /var/cache/distfiles/py3-url-normalize-3.0.0.tar.gz... 2026-06-12 12:51:21,155 gpep517 INFO Building wheel via backend setuptools.build_meta 2026-06-12 12:51:21,232 root INFO running bdist_wheel 2026-06-12 12:51:21,254 root INFO running build 2026-06-12 12:51:21,254 root INFO running build_py 2026-06-12 12:51:21,259 root INFO creating build/lib/url_normalize 2026-06-12 12:51:21,259 root INFO copying url_normalize/normalize_fragment.py -> build/lib/url_normalize 2026-06-12 12:51:21,260 root INFO copying url_normalize/url_normalize.py -> build/lib/url_normalize 2026-06-12 12:51:21,260 root INFO copying url_normalize/normalize_port.py -> build/lib/url_normalize 2026-06-12 12:51:21,261 root INFO copying url_normalize/normalize_path.py -> build/lib/url_normalize 2026-06-12 12:51:21,261 root INFO copying url_normalize/normalize_userinfo.py -> build/lib/url_normalize 2026-06-12 12:51:21,261 root INFO copying url_normalize/generic_url_cleanup.py -> build/lib/url_normalize 2026-06-12 12:51:21,262 root INFO copying url_normalize/normalize_query.py -> build/lib/url_normalize 2026-06-12 12:51:21,262 root INFO copying url_normalize/provide_url_domain.py -> build/lib/url_normalize 2026-06-12 12:51:21,263 root INFO copying url_normalize/normalize_scheme.py -> build/lib/url_normalize 2026-06-12 12:51:21,263 root INFO copying url_normalize/__init__.py -> build/lib/url_normalize 2026-06-12 12:51:21,263 root INFO copying url_normalize/provide_url_scheme.py -> build/lib/url_normalize 2026-06-12 12:51:21,264 root INFO copying url_normalize/param_allowlist.py -> build/lib/url_normalize 2026-06-12 12:51:21,264 root INFO copying url_normalize/cli.py -> build/lib/url_normalize 2026-06-12 12:51:21,265 root INFO copying url_normalize/url_humanize.py -> build/lib/url_normalize 2026-06-12 12:51:21,265 root INFO copying url_normalize/tools.py -> build/lib/url_normalize 2026-06-12 12:51:21,265 root INFO copying url_normalize/normalize_host.py -> build/lib/url_normalize 2026-06-12 12:51:21,266 root INFO running egg_info 2026-06-12 12:51:21,270 root INFO creating url_normalize.egg-info 2026-06-12 12:51:21,270 root INFO writing url_normalize.egg-info/PKG-INFO 2026-06-12 12:51:21,272 root INFO writing dependency_links to url_normalize.egg-info/dependency_links.txt 2026-06-12 12:51:21,272 root INFO writing entry points to url_normalize.egg-info/entry_points.txt 2026-06-12 12:51:21,273 root INFO writing requirements to url_normalize.egg-info/requires.txt 2026-06-12 12:51:21,273 root INFO writing top-level names to url_normalize.egg-info/top_level.txt 2026-06-12 12:51:21,274 root INFO writing manifest file 'url_normalize.egg-info/SOURCES.txt' 2026-06-12 12:51:21,280 root INFO reading manifest file 'url_normalize.egg-info/SOURCES.txt' 2026-06-12 12:51:21,280 root INFO adding license file 'LICENSE' 2026-06-12 12:51:21,282 root INFO writing manifest file 'url_normalize.egg-info/SOURCES.txt' 2026-06-12 12:51:21,283 root INFO copying url_normalize/py.typed -> build/lib/url_normalize 2026-06-12 12:51:21,292 root INFO installing to build/bdist.linux-loongarch64/wheel 2026-06-12 12:51:21,292 root INFO running install 2026-06-12 12:51:21,305 root INFO running install_lib 2026-06-12 12:51:21,309 root INFO creating build/bdist.linux-loongarch64/wheel 2026-06-12 12:51:21,310 root INFO creating build/bdist.linux-loongarch64/wheel/url_normalize 2026-06-12 12:51:21,310 root INFO copying build/lib/url_normalize/normalize_fragment.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,311 root INFO copying build/lib/url_normalize/url_normalize.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,311 root INFO copying build/lib/url_normalize/normalize_port.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,311 root INFO copying build/lib/url_normalize/normalize_path.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,312 root INFO copying build/lib/url_normalize/normalize_userinfo.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,312 root INFO copying build/lib/url_normalize/py.typed -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,312 root INFO copying build/lib/url_normalize/generic_url_cleanup.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,313 root INFO copying build/lib/url_normalize/normalize_query.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,313 root INFO copying build/lib/url_normalize/provide_url_domain.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,313 root INFO copying build/lib/url_normalize/normalize_scheme.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,314 root INFO copying build/lib/url_normalize/__init__.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,314 root INFO copying build/lib/url_normalize/provide_url_scheme.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,314 root INFO copying build/lib/url_normalize/param_allowlist.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,315 root INFO copying build/lib/url_normalize/cli.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,315 root INFO copying build/lib/url_normalize/url_humanize.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,315 root INFO copying build/lib/url_normalize/tools.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,316 root INFO copying build/lib/url_normalize/normalize_host.py -> build/bdist.linux-loongarch64/wheel/./url_normalize 2026-06-12 12:51:21,316 root INFO running install_egg_info 2026-06-12 12:51:21,320 root INFO Copying url_normalize.egg-info to build/bdist.linux-loongarch64/wheel/./url_normalize-3.0.0-py3.14.egg-info 2026-06-12 12:51:21,322 root INFO running install_scripts 2026-06-12 12:51:21,325 root INFO creating build/bdist.linux-loongarch64/wheel/url_normalize-3.0.0.dist-info/WHEEL 2026-06-12 12:51:21,326 wheel INFO creating '/home/buildozer/aports/community/py3-url-normalize/src/url-normalize-3.0.0/.dist/.tmp-ame8acaz/url_normalize-3.0.0-py3-none-any.whl' and adding 'build/bdist.linux-loongarch64/wheel' to it 2026-06-12 12:51:21,326 wheel INFO adding 'url_normalize/__init__.py' 2026-06-12 12:51:21,327 wheel INFO adding 'url_normalize/cli.py' 2026-06-12 12:51:21,327 wheel INFO adding 'url_normalize/generic_url_cleanup.py' 2026-06-12 12:51:21,327 wheel INFO adding 'url_normalize/normalize_fragment.py' 2026-06-12 12:51:21,327 wheel INFO adding 'url_normalize/normalize_host.py' 2026-06-12 12:51:21,328 wheel INFO adding 'url_normalize/normalize_path.py' 2026-06-12 12:51:21,328 wheel INFO adding 'url_normalize/normalize_port.py' 2026-06-12 12:51:21,328 wheel INFO adding 'url_normalize/normalize_query.py' 2026-06-12 12:51:21,329 wheel INFO adding 'url_normalize/normalize_scheme.py' 2026-06-12 12:51:21,329 wheel INFO adding 'url_normalize/normalize_userinfo.py' 2026-06-12 12:51:21,329 wheel INFO adding 'url_normalize/param_allowlist.py' 2026-06-12 12:51:21,330 wheel INFO adding 'url_normalize/provide_url_domain.py' 2026-06-12 12:51:21,330 wheel INFO adding 'url_normalize/provide_url_scheme.py' 2026-06-12 12:51:21,330 wheel INFO adding 'url_normalize/py.typed' 2026-06-12 12:51:21,331 wheel INFO adding 'url_normalize/tools.py' 2026-06-12 12:51:21,331 wheel INFO adding 'url_normalize/url_humanize.py' 2026-06-12 12:51:21,331 wheel INFO adding 'url_normalize/url_normalize.py' 2026-06-12 12:51:21,332 wheel INFO adding 'url_normalize-3.0.0.dist-info/licenses/LICENSE' 2026-06-12 12:51:21,332 wheel INFO adding 'url_normalize-3.0.0.dist-info/METADATA' 2026-06-12 12:51:21,332 wheel INFO adding 'url_normalize-3.0.0.dist-info/WHEEL' 2026-06-12 12:51:21,333 wheel INFO adding 'url_normalize-3.0.0.dist-info/entry_points.txt' 2026-06-12 12:51:21,333 wheel INFO adding 'url_normalize-3.0.0.dist-info/top_level.txt' 2026-06-12 12:51:21,333 wheel INFO adding 'url_normalize-3.0.0.dist-info/RECORD' 2026-06-12 12:51:21,334 root INFO removing build/bdist.linux-loongarch64/wheel 2026-06-12 12:51:21,335 gpep517 INFO The backend produced .dist/url_normalize-3.0.0-py3-none-any.whl url_normalize-3.0.0-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.14.5, pytest-9.0.3, pluggy-1.6.0 -- /home/buildozer/aports/community/py3-url-normalize/src/url-normalize-3.0.0/.testenv/bin/python3 cachedir: .pytest_cache rootdir: /home/buildozer/aports/community/py3-url-normalize/src/url-normalize-3.0.0 configfile: pyproject.toml plugins: cov-5.0.0, socket-0.7.0 collecting ... collected 218 items tests/test_cli.py::test_cli_error_handling PASSED [ 0%] tests/test_cli.py::test_cli_basic_normalization PASSED [ 0%] tests/test_cli.py::test_cli_basic_normalization_short_args PASSED [ 1%] tests/test_cli.py::test_cli_humanize PASSED [ 1%] tests/test_cli.py::test_cli_humanize_short_arg PASSED [ 2%] tests/test_cli.py::test_cli_humanize_respects_normalization_options PASSED [ 2%] tests/test_cli.py::test_cli_default_scheme PASSED [ 3%] tests/test_cli.py::test_cli_default_scheme_short_arg PASSED [ 3%] tests/test_cli.py::test_cli_custom_default_scheme PASSED [ 4%] tests/test_cli.py::test_cli_custom_default_scheme_short_arg PASSED [ 4%] tests/test_cli.py::test_cli_filter_params PASSED [ 5%] tests/test_cli.py::test_cli_filter_params_short_arg PASSED [ 5%] tests/test_cli.py::test_cli_param_allowlist PASSED [ 5%] tests/test_cli.py::test_cli_param_allowlist_multiple PASSED [ 6%] tests/test_cli.py::test_cli_param_allowlist_without_filtering PASSED [ 6%] tests/test_cli.py::test_cli_no_url PASSED [ 7%] tests/test_cli.py::test_cli_version_long PASSED [ 7%] tests/test_cli.py::test_cli_version_short PASSED [ 8%] tests/test_cli.py::test_cli_charset PASSED [ 8%] tests/test_cli.py::test_cli_default_domain PASSED [ 9%] tests/test_cli.py::test_cli_default_domain_short_arg PASSED [ 9%] tests/test_cli.py::test_cli_default_domain_with_scheme PASSED [ 10%] tests/test_cli.py::test_cli_default_domain_no_effect_on_absolute_urls PASSED [ 10%] tests/test_cli.py::test_cli_default_domain_no_effect_on_relative_paths PASSED [ 11%] tests/test_deconstruct_url.py::test_deconstruct_url_result_is_expected[http://site.com-expected0] PASSED [ 11%] tests/test_deconstruct_url.py::test_deconstruct_url_result_is_expected[http://user@www.example.com:8080/path/index.html?param=val#fragment-expected1] PASSED [ 11%] tests/test_generic_url_cleanup.py::test_generic_url_cleanup_result_is_expected[//site/#!fragment-//site/?_escaped_fragment_=fragment] PASSED [ 12%] tests/test_generic_url_cleanup.py::test_generic_url_cleanup_result_is_expected[//site/page-//site/page] PASSED [ 12%] tests/test_generic_url_cleanup.py::test_generic_url_cleanup_result_is_expected[//site/?& -//site/] PASSED [ 13%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[-] PASSED [ 13%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[fragment-fragment] PASSED [ 14%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[\u043f\u0440\u0438\u043c\u0435\u0440-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80] PASSED [ 14%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[!fragment-%21fragment] PASSED [ 15%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[~fragment-~fragment] PASSED [ 15%] tests/test_normalize_fragment.py::test_normalize_fragment_result_is_expected[gid=1234-gid=1234] PASSED [ 16%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[site.com-site.com] PASSED [ 16%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[SITE.COM-site.com] PASSED [ 16%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[site.com.-site.com] PASSED [ 17%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[\u043f\u0440\u0438\u043c\u0435\u0440.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435-xn--e1afmkfd.xn--80akhbyknj4f] PASSED [ 17%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[ExAmPle.\u0420\u0424-example.xn--p1ai] PASSED [ 18%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[fa\xdf.de-xn--fa-hia.de] PASSED [ 18%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[\u30c9\u30e1\u30a4\u30f3.\u30c6\u30b9\u30c8-xn--eckwd4c7c.xn--zckzah] PASSED [ 19%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[domain.caf\xe9-domain.xn--caf-dma] PASSED [ 19%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[\xfcber.example-xn--ber-goa.example] PASSED [ 20%] tests/test_normalize_host.py::test_normalize_host_result_is_expected[example\u3002com-example.com] PASSED [ 20%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[..-/] PASSED [ 21%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[-/] PASSED [ 21%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/../foo-/foo] PASSED [ 22%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/..foo-/..foo] PASSED [ 22%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/./../foo-/foo] PASSED [ 22%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/./foo-/foo] PASSED [ 23%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/./foo/.-/foo/] PASSED [ 23%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/.foo-/.foo] PASSED [ 24%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/-/] PASSED [ 24%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo..-/foo..] PASSED [ 25%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo.-/foo.] PASSED [ 25%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/FOO-/FOO] PASSED [ 26%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/../bar-/bar] PASSED [ 26%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/./bar-/foo/bar] PASSED [ 27%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo//-/foo/] PASSED [ 27%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo///bar//-/foo/bar/] PASSED [ 27%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/..-/foo/] PASSED [ 28%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../..-/] PASSED [ 28%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../../../../baz-/baz] PASSED [ 29%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../../../baz-/baz] PASSED [ 29%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../../-/] PASSED [ 30%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../../baz-/baz] PASSED [ 30%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../-/foo/] PASSED [ 31%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/../baz-/foo/baz] PASSED [ 31%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/.-/foo/bar/] PASSED [ 32%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/foo/bar/./-/foo/bar/] PASSED [ 32%] tests/test_normalize_path.py::test_normalize_path_result_is_expected[/More+Tea+Vicar%3F/discussion-/More+Tea+Vicar%3F/discussion] PASSED [ 33%] tests/test_normalize_port.py::test_normalize_port_result_is_expected[8080-8080] PASSED [ 33%] tests/test_normalize_port.py::test_normalize_port_result_is_expected[-] PASSED [ 33%] tests/test_normalize_port.py::test_normalize_port_result_is_expected[80-] PASSED [ 34%] tests/test_normalize_port.py::test_normalize_port_result_is_expected[string-string] PASSED [ 34%] tests/test_normalize_port.py::test_normalize_port_result_is_expected[https_default_port] PASSED [ 35%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[-] PASSED [ 35%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[&&&-] PASSED [ 36%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[param1=val1¶m2=val2-param1=val1¶m2=val2] PASSED [ 36%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[\xc7=\xc7-%C3%87=%C3%87] PASSED [ 37%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[%C3%87=%C3%87-%C3%87=%C3%87] PASSED [ 37%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[q=C%CC%A7-q=%C3%87] PASSED [ 38%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[q=%23test-q=%23test] PASSED [ 38%] tests/test_normalize_query.py::test_normalize_query_result_is_expected[where=code%3D123-where=code%3D123] PASSED [ 38%] tests/test_normalize_query_filters.py::test_param_filtering_disabled_by_default PASSED [ 39%] tests/test_normalize_query_filters.py::test_empty_query PASSED [ 39%] tests/test_normalize_query_filters.py::test_custom_allowlist PASSED [ 40%] tests/test_normalize_query_filters.py::test_custom_list_allowlist PASSED [ 40%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://www.google.com/search?q=test&utm_source=test-https://www.google.com/search?q=test] PASSED [ 41%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://www.youtube.com/watch?v=12345&utm_source=share-https://www.youtube.com/watch?v=12345] PASSED [ 41%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://www.google.com/search?q=test&ref=test-https://www.google.com/search?q=test] PASSED [ 42%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://google.com:8080/search?q=test&ref=test-https://google.com:8080/search?q=test] PASSED [ 42%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://www.google.com/search?q=test&utm_source=test&ie=utf8-https://www.google.com/search?q=test&ie=utf8] PASSED [ 43%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://www.baidu.com/s?wd=test&utm_source=test&ie=utf8-https://www.baidu.com/s?wd=test&ie=utf8] PASSED [ 43%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://youtube.com/watch?v=12345&utm_source=test&search_query=test-https://youtube.com/watch?v=12345&search_query=test] PASSED [ 44%] tests/test_normalize_query_filters.py::test_parameter_filtering[https://example.org/page?a=1&b=2-https://example.org/page] PASSED [ 44%] tests/test_normalize_scheme.py::test_normalize_scheme_result_is_expected[http-http] PASSED [ 44%] tests/test_normalize_scheme.py::test_normalize_scheme_result_is_expected[HTTP-http] PASSED [ 45%] tests/test_normalize_userinfo.py::test_normalize_userinfo_result_is_expected[:@-] PASSED [ 45%] tests/test_normalize_userinfo.py::test_normalize_userinfo_result_is_expected[-] PASSED [ 46%] tests/test_normalize_userinfo.py::test_normalize_userinfo_result_is_expected[@-] PASSED [ 46%] tests/test_normalize_userinfo.py::test_normalize_userinfo_result_is_expected[user:password@-user:password@] PASSED [ 47%] tests/test_normalize_userinfo.py::test_normalize_userinfo_result_is_expected[user@-user@] PASSED [ 47%] tests/test_provide_url_domain.py::test_provide_url_domain_result_is_expected[-] PASSED [ 48%] tests/test_provide_url_domain.py::test_provide_url_domain_result_is_expected[---] PASSED [ 48%] tests/test_provide_url_domain.py::test_provide_url_domain_result_is_expected[http://example.com/-http://example.com/] PASSED [ 49%] tests/test_provide_url_domain.py::test_provide_url_domain_result_is_expected[/file/path-//example.com/file/path] PASSED [ 49%] tests/test_provide_url_domain.py::test_provide_url_domain_result_is_expected[site/page-site/page] PASSED [ 50%] tests/test_provide_url_domain.py::test_provide_url_domain_accept_different_domains PASSED [ 50%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[-] PASSED [ 50%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[---] PASSED [ 51%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[/file/path-/file/path] PASSED [ 51%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[//site/path-https://site/path] PASSED [ 52%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[ftp://site/-ftp://site/] PASSED [ 52%] tests/test_provide_url_scheme.py::test_provide_url_scheme_result_is_expected[site/page-https://site/page] PASSED [ 53%] tests/test_provide_url_scheme.py::test_provide_url_scheme_accept_default_scheme_param PASSED [ 53%] tests/test_reconstruct_url.py::test_reconstruct_url_result_is_expected[url_obj0-http://site.com] PASSED [ 54%] tests/test_reconstruct_url.py::test_reconstruct_url_result_is_expected[url_obj1-http://user@www.example.com:8080/path/index.html?param=val#fragment] PASSED [ 54%] tests/test_tools.py::test_force_unicode_with_bytes PASSED [ 55%] tests/test_url_humanize.py::test_url_humanize_returns_readable_url_that_normalizes_back[https://xn--e1afmkfd.xn--80akhbyknj4f/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Search/Test-https://\u043f\u0440\u0438\u043c\u0435\u0440.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u0421\u043b\u0443\u0436\u0435\u0431\u043d\u0430\u044f:Search/Test] PASSED [ 55%] tests/test_url_humanize.py::test_url_humanize_returns_readable_url_that_normalizes_back[https://xn--fa-hia.de/%C3%BCber?q=%C3%87#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-https://fa\xdf.de/\xfcber?q=\xc7#\u043f\u0440\u0438\u043c\u0435\u0440] PASSED [ 55%] tests/test_url_humanize.py::test_url_humanize_returns_readable_url_that_normalizes_back[https://example.com/?q=%23test&where=code%3D123-https://example.com/?q=%23test&where=code=123] PASSED [ 56%] tests/test_url_humanize.py::test_url_humanize_preserves_empty_values[] PASSED [ 56%] tests/test_url_humanize.py::test_url_humanize_preserves_empty_values[None] PASSED [ 57%] tests/test_url_humanize.py::test_url_humanize_round_trips_to_normalized_url[https://xn--e1afmkfd.xn--80akhbyknj4f/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Search/Test] PASSED [ 57%] tests/test_url_humanize.py::test_url_humanize_round_trips_to_normalized_url[https://fa\xdf.de/\xfcber?q=\xc7#\u043f\u0440\u0438\u043c\u0435\u0440] PASSED [ 58%] tests/test_url_humanize.py::test_url_humanize_round_trips_to_normalized_url[https://example.com/a%2Fb?equals=a%3Db&letter=%C3%87#%D1%84] PASSED [ 58%] tests/test_url_humanize.py::test_url_humanize_round_trips_to_normalized_url[https://example.com/?hash=%23test&=a%26b&query=a%3Fb] PASSED [ 59%] tests/test_url_humanize.py::test_url_humanize_accepts_url_normalize_options PASSED [ 59%] tests/test_url_humanize.py::test_url_humanize_keeps_query_delimiters_encoded PASSED [ 60%] tests/test_url_humanize.py::test_url_humanize_decodes_safe_query_parts_independently PASSED [ 60%] tests/test_url_humanize.py::test_url_humanize_keeps_malformed_percent_encoding_normalized PASSED [ 61%] tests/test_url_humanize.py::test_url_humanize_documents_encoded_slash_normalization PASSED [ 61%] tests/test_url_humanize.py::test_url_humanize_handles_idna_error PASSED [ 61%] tests/test_url_humanize.py::test_url_humanize_skips_failed_round_trip PASSED [ 62%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[-] PASSED [ 62%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[] PASSED [ 63%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[/..foo] PASSED [ 63%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[/.foo] PASSED [ 64%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[/foo..] PASSED [ 64%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[/foo.] PASSED [ 65%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[ftp://user:pass@ftp.foo.net/foo/bar] PASSED [ 65%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://127.0.0.1/] PASSED [ 66%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com:8080/] PASSED [ 66%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/?a&b] PASSED [ 66%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/?q=%5C] PASSED [ 67%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/?q=%C3%87] PASSED [ 67%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/?q=%E2%85%A0] PASSED [ 68%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/] PASSED [ 68%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/~jane] PASSED [ 69%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/a/b] PASSED [ 69%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://example.com/FOO] PASSED [ 70%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://user:password@example.com/] PASSED [ 70%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://www.foo.com:8000/foo] PASSED [ 71%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[ftp://ftp.is.co.za/rfc/rfc1808.txt] PASSED [ 71%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[http://www.ietf.org/rfc/rfc2396.txt] PASSED [ 72%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[ldap://[2001:db8::7]/c=GB?objectClass?one] PASSED [ 72%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[mailto:John.Doe@example.com] PASSED [ 72%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[news:comp.infosystems.www.servers.unix] PASSED [ 73%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[tel:+1-816-555-1212] PASSED [ 73%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[telnet://192.0.2.16:80/] PASSED [ 74%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[urn:oasis:names:specification:docbook:dtd:xml:4.1.2] PASSED [ 74%] tests/test_url_normalize.py::test_url_normalize_no_changes_expected[https://docs.google.com/spreadsheets/d/abcd/edit#gid=1234] PASSED [ 75%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/../foo-/foo] PASSED [ 75%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/./../foo-/foo] PASSED [ 76%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/./foo-/foo] PASSED [ 76%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/./foo/.-/foo/] PASSED [ 77%] tests/test_url_normalize.py::test_url_normalize_expected_changes[//www.foo.com/-https://www.foo.com/] PASSED [ 77%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/../bar-/bar] PASSED [ 77%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/./bar-/foo/bar] PASSED [ 78%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo//-/foo/] PASSED [ 78%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo///bar//-/foo/bar/] PASSED [ 79%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/..-/foo/] PASSED [ 79%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../..-/] PASSED [ 80%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../../../../baz-/baz] PASSED [ 80%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../../../baz-/baz] PASSED [ 81%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../../-/] PASSED [ 81%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../../baz-/baz] PASSED [ 82%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../-/foo/] PASSED [ 82%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/../baz-/foo/baz] PASSED [ 83%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/.-/foo/bar/] PASSED [ 83%] tests/test_url_normalize.py::test_url_normalize_expected_changes[/foo/bar/./-/foo/bar/] PASSED [ 83%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://:@example.com/-http://example.com/] PASSED [ 84%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://@example.com/-http://example.com/] PASSED [ 84%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://127.0.0.1:80/-http://127.0.0.1/] PASSED [ 85%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com:081/-http://example.com:81/] PASSED [ 85%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com:80/-http://example.com/] PASSED [ 86%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com-http://example.com/] PASSED [ 86%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/?b&a-http://example.com/?b&a] PASSED [ 87%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/?q=%5c-http://example.com/?q=%5C] PASSED [ 87%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/?q=%C7-http://example.com/?q=%EF%BF%BD] PASSED [ 88%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/?q=C%CC%A7-http://example.com/?q=%C3%87] PASSED [ 88%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://EXAMPLE.COM/-http://example.com/] PASSED [ 88%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/%7Ejane-http://example.com/~jane] PASSED [ 89%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/a/../a/b-http://example.com/a/b] PASSED [ 89%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/a/./b-http://example.com/a/b] PASSED [ 90%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://example.com/#!5753509/hello-world-http://example.com/?_escaped_fragment_=5753509/hello-world] PASSED [ 90%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://USER:pass@www.Example.COM/foo/bar-http://USER:pass@www.example.com/foo/bar] PASSED [ 91%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.example.com./-http://www.example.com/] PASSED [ 91%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.foo.com:80/foo-http://www.foo.com/foo] PASSED [ 92%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.foo.com.:81/foo-http://www.foo.com:81/foo] PASSED [ 92%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.foo.com./foo/bar.html-http://www.foo.com/foo/bar.html] PASSED [ 93%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.foo.com/%7Ebar-http://www.foo.com/~bar] PASSED [ 93%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http://www.foo.com/%7ebar-http://www.foo.com/~bar] PASSED [ 94%] tests/test_url_normalize.py::test_url_normalize_expected_changes[\u043f\u0440\u0438\u043c\u0435\u0440.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u0421\u043b\u0443\u0436\u0435\u0431\u043d\u0430\u044f:Search/Test-https://xn--e1afmkfd.xn--80akhbyknj4f/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Search/Test] PASSED [ 94%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http:example.com-http://example.com/] PASSED [ 94%] tests/test_url_normalize.py::test_url_normalize_expected_changes[http:example.com/path-http://example.com/path] PASSED [ 95%] tests/test_url_normalize.py::test_url_normalize_expected_changes[ftp:test.com/files-ftp://test.com/files] PASSED [ 95%] tests/test_url_normalize.py::test_url_normalize_expected_changes[https:www.example.com-https://www.example.com/] PASSED [ 96%] tests/test_url_normalize.py::test_url_normalize_filtered PASSED [ 96%] tests/test_url_normalize.py::test_url_normalize_with_http_scheme PASSED [ 97%] tests/test_url_normalize.py::test_url_normalize_with_default_domain[/foo.png-https://example.com/foo.png] PASSED [ 97%] tests/test_url_normalize.py::test_url_normalize_with_default_domain[//google.com-https://google.com/] PASSED [ 98%] tests/test_url_normalize.py::test_url_normalize_with_default_domain[//example.com:80/foo.png-https://example.com:80/foo.png] PASSED [ 98%] tests/test_url_normalize.py::test_url_normalize_with_default_domain[//example.com/foo.png?foo=bar-https://example.com/foo.png?foo=bar] PASSED [ 99%] tests/test_url_normalize.py::test_url_normalize_with_default_domain[http://google.com-http://google.com/] PASSED [ 99%] tests/test_url_normalize.py::test_url_normalize_with_default_domain_and_scheme PASSED [100%] ---------- coverage: platform linux, python 3.14.5-final-0 ----------- Name Stmts Miss Cover Missing ------------------------------------- TOTAL 265 0 100% 16 files skipped due to complete coverage. ============================= 218 passed in 8.55s ============================== >>> py3-url-normalize: Entering fakeroot... >>> py3-url-normalize-pyc*: Running split function pyc... 'usr/lib/python3.14/site-packages/url_normalize/__pycache__' -> '/home/buildozer/aports/community/py3-url-normalize/pkg/py3-url-normalize-pyc/usr/lib/python3.14/site-packages/url_normalize/__pycache__' >>> py3-url-normalize-pyc*: Preparing subpackage py3-url-normalize-pyc... >>> py3-url-normalize-pyc*: Running postcheck for py3-url-normalize-pyc >>> py3-url-normalize*: Running postcheck for py3-url-normalize >>> py3-url-normalize*: Preparing package py3-url-normalize... >>> py3-url-normalize-pyc*: Tracing dependencies... python3~3.14 >>> py3-url-normalize-pyc*: Package size: 32.3 KB >>> py3-url-normalize-pyc*: Compressing data... >>> py3-url-normalize-pyc*: Create checksum... >>> py3-url-normalize-pyc*: Create py3-url-normalize-pyc-3.0.0-r0.apk >>> py3-url-normalize*: Tracing dependencies... python3 py3-idna python3~3.14 >>> py3-url-normalize*: Package size: 32.8 KB >>> py3-url-normalize*: Compressing data... >>> py3-url-normalize*: Create checksum... >>> py3-url-normalize*: Create py3-url-normalize-3.0.0-r0.apk >>> py3-url-normalize: Build complete at Fri, 12 Jun 2026 12:51:31 +0000 elapsed time 0h 0m 14s >>> py3-url-normalize: Cleaning up srcdir >>> py3-url-normalize: Cleaning up pkgdir >>> py3-url-normalize: Cleaning up tmpdir >>> py3-url-normalize: Uninstalling dependencies... ( 1/42) Purging .makedepends-py3-url-normalize (20260612.125119) ( 2/42) Purging py3-idna-pyc (3.16-r0) ( 3/42) Purging py3-idna (3.16-r0) ( 4/42) Purging py3-setuptools-pyc (82.0.1-r1) ( 5/42) Purging py3-setuptools (82.0.1-r1) ( 6/42) Purging py3-gpep517-pyc (19-r2) ( 7/42) Purging py3-gpep517 (19-r2) ( 8/42) Purging py3-installer-pyc (1.0.0-r0) ( 9/42) Purging py3-installer (1.0.0-r0) (10/42) Purging py3-pytest-cov-pyc (5.0.0-r2) (11/42) Purging py3-pytest-cov (5.0.0-r2) (12/42) Purging py3-coverage-pyc (7.14.1-r0) (13/42) Purging py3-coverage (7.14.1-r0) (14/42) Purging py3-pytest-socket-pyc (0.7.0-r2) (15/42) Purging py3-pytest-socket (0.7.0-r2) (16/42) Purging py3-pytest-pyc (9.0.3-r0) (17/42) Purging py3-pytest (9.0.3-r0) (18/42) Purging py3-iniconfig-pyc (2.3.0-r1) (19/42) Purging py3-iniconfig (2.3.0-r1) (20/42) Purging py3-packaging-pyc (26.2-r0) (21/42) Purging py3-packaging (26.2-r0) (22/42) Purging py3-parsing-pyc (3.3.2-r1) (23/42) Purging py3-parsing (3.3.2-r1) (24/42) Purging py3-pluggy-pyc (1.6.0-r1) (25/42) Purging py3-pluggy (1.6.0-r1) (26/42) Purging py3-py-pyc (1.11.0-r5) (27/42) Purging py3-py (1.11.0-r5) (28/42) Purging py3-pygments-pyc (2.20.0-r0) (29/42) Purging py3-pygments (2.20.0-r0) (30/42) Purging py3-sortedcontainers-pyc (2.4.0-r6) (31/42) Purging py3-sortedcontainers (2.4.0-r6) (32/42) Purging python3-pyc (3.14.5-r1) (33/42) Purging python3-pycache-pyc0 (3.14.5-r1) (34/42) Purging pyc (3.14.5-r1) (35/42) Purging python3 (3.14.5-r1) (36/42) Purging libbz2 (1.0.8-r6) (37/42) Purging libffi (3.5.2-r1) (38/42) Purging libpanelw (6.6_p20260516-r0) (39/42) Purging mpdecimal (4.0.1-r0) (40/42) Purging readline (8.3.3-r1) (41/42) Purging sqlite-libs (3.53.2-r0) (42/42) Purging xz-libs (5.8.3-r0) Executing busybox-1.37.0-r31.trigger OK: 269.5 MiB in 103 packages >>> py3-url-normalize: Updating the community/loongarch64 repository index... >>> py3-url-normalize: Signing the index...