Source: yarl Version: 1.6.3-1 Severity: serious Justification: FTBFS on amd64 Tags: bullseye sid ftbfs Usertags: ftbfs-20210406 ftbfs-bullseye
Hi, During a rebuild of all packages in bullseye, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > cd docs && \ > PYTHONPATH=/<<PKGBUILDDIR>> http_proxy='http://127.0.0.1:9/' > https_proxy='https://127.0.0.1:9/' \ > python3 -m sphinx -N -E -T -b html . /<<PKGBUILDDIR>>/.pybuild/docs/html/ > Running Sphinx v3.4.3 > making output directory... done > building [mo]: targets for 0 po files that are out of date > building [html]: targets for 2 source files that are out of date > updating environment: [new config] 2 added, 0 changed, 0 removed > reading sources... [ 50%] api > reading sources... [100%] index > > looking for now-outdated files... none found > pickling environment... done > checking consistency... done > preparing documents... done > writing output... [ 50%] api > writing output... [100%] index > > generating indices... genindex py-modindex done > highlighting module code... [ 50%] yarl > highlighting module code... [100%] yarl._url > > writing additional pages... search done > copying static files... done > copying extra files... done > dumping search index in English (code: en)... done > dumping object inventory... done > build succeeded. > > The HTML pages are in ../.pybuild/docs/html. > rm -rf /<<PKGBUILDDIR>>/.pybuild/docs/html/.doctrees > make[1]: Leaving directory '/<<PKGBUILDDIR>>' > dh_auto_build -O--buildsystem=pybuild -Npython-yarl-doc > I: pybuild pybuild:284: cython3 yarl/_quoting_c.pyx > I: pybuild base:232: /usr/bin/python3 setup.py build > ********************** > * Accellerated build * > ********************** > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_url.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_quoting_py.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_quoting.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > running egg_info > writing yarl.egg-info/PKG-INFO > writing dependency_links to yarl.egg-info/dependency_links.txt > writing requirements to yarl.egg-info/requires.txt > writing top-level names to yarl.egg-info/top_level.txt > reading manifest file 'yarl.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no previously-included files matching '*.cache' found anywhere in > distribution > warning: no previously-included files found matching 'yarl/*.html' > warning: no previously-included files found matching 'yarl/*.so' > warning: no previously-included files found matching 'yarl/*.pyd' > no previously-included directories found matching 'docs/_build' > writing manifest file 'yarl.egg-info/SOURCES.txt' > copying yarl/__init__.pyi -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_quoting_c.c -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_quoting_c.pyi -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/_quoting_c.pyx -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > copying yarl/py.typed -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl > running build_ext > building 'yarl._quoting_c' extension > creating build > creating build/temp.linux-x86_64-3.9 > creating build/temp.linux-x86_64-3.9/yarl > x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g > -fwrapv -O2 -Wall -g > -ffile-prefix-map=/build/python3.9-RNBry6/python3.9-3.9.2=. > -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g > -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat > -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC > -I/usr/include/python3.9 -c yarl/_quoting_c.c -o > build/temp.linux-x86_64-3.9/yarl/_quoting_c.o > yarl/_quoting_c.c: In function > ‘__pyx_f_4yarl_10_quoting_c_9_Unquoter__do_unquote’: > yarl/_quoting_c.c:5297:9: warning: ‘_PyUnicode_get_wstr_length’ is deprecated > [-Wdeprecated-declarations] > 5297 | __pyx_t_2 = (__pyx_v_unquoted != > Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_unquoted) != 0); > | ^~~~~~~~~ > In file included from /usr/include/python3.9/unicodeobject.h:1026, > from /usr/include/python3.9/Python.h:97, > from yarl/_quoting_c.c:4: > /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here > 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > yarl/_quoting_c.c:5297:9: warning: ‘PyUnicode_AsUnicode’ is deprecated > [-Wdeprecated-declarations] > 5297 | __pyx_t_2 = (__pyx_v_unquoted != > Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_unquoted) != 0); > | ^~~~~~~~~ > In file included from /usr/include/python3.9/unicodeobject.h:1026, > from /usr/include/python3.9/Python.h:97, > from yarl/_quoting_c.c:4: > /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here > 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( > | ^~~~~~~~~~~~~~~~~~~ > yarl/_quoting_c.c:5297:9: warning: ‘_PyUnicode_get_wstr_length’ is deprecated > [-Wdeprecated-declarations] > 5297 | __pyx_t_2 = (__pyx_v_unquoted != > Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_unquoted) != 0); > | ^~~~~~~~~ > In file included from /usr/include/python3.9/unicodeobject.h:1026, > from /usr/include/python3.9/Python.h:97, > from yarl/_quoting_c.c:4: > /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here > 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > yarl/_quoting_c.c: In function ‘__Pyx_UnicodeContainsUCS4’: > yarl/_quoting_c.c:10430:1: warning: control reaches end of non-void function > [-Wreturn-type] > 10430 | } > | ^ > x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions > -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -Wl,-z,now -g -O2 > -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat > -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 > build/temp.linux-x86_64-3.9/yarl/_quoting_c.o -o > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build/yarl/_quoting_c.cpython-39-x86_64-linux-gnu.so > dh_auto_test -O--buildsystem=pybuild -Npython-yarl-doc > I: pybuild base:232: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build; > python3.9 -m pytest tests > ============================= test session starts > ============================== > platform linux -- Python 3.9.2, pytest-6.0.2, py-1.10.0, pluggy-0.13.0 -- > /usr/bin/python3.9 > cachedir: .pytest_cache > rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg > plugins: cov-2.10.1 > collecting ... collected 1008 items > > tests/test_cache.py::test_cache_clear PASSED [ > 0%] > tests/test_cache.py::test_cache_info PASSED [ > 0%] > tests/test_cache.py::test_cache_configure_default PASSED [ > 0%] > tests/test_cache.py::test_cache_configure_None PASSED [ > 0%] > tests/test_cache.py::test_cache_configure_explicit PASSED [ > 0%] > tests/test_cached_property.py::test_reify PASSED [ > 0%] > tests/test_cached_property.py::test_reify_class PASSED [ > 0%] > tests/test_cached_property.py::test_reify_assignment PASSED [ > 0%] > tests/test_normalize_path.py::test__normalize_path[-] PASSED [ > 0%] > tests/test_normalize_path.py::test__normalize_path[/-/] PASSED [ > 0%] > tests/test_normalize_path.py::test__normalize_path[/-/] PASSED [ > 1%] > tests/test_normalize_path.py::test__normalize_path[/-/] PASSED [ > 1%] > tests/test_normalize_path.py::test__normalize_path[path/to-path/to] PASSED [ > 1%] > tests/test_normalize_path.py::test__normalize_path[./path/to-path/to] PASSED > [ 1%] > tests/test_normalize_path.py::test__normalize_path[path/to-path/to] PASSED [ > 1%] > tests/test_normalize_path.py::test__normalize_path[path/to-path/to] PASSED [ > 1%] > tests/test_normalize_path.py::test__normalize_path[path/to/.-path/to/] PASSED > [ 1%] > tests/test_normalize_path.py::test__normalize_path[path/to/.-path/to/] PASSED > [ 1%] > tests/test_normalize_path.py::test__normalize_path[../path/to-path/to] PASSED > [ 1%] > tests/to-to] PASSED [ > 1%] > to-to] PASSED [ > 2%] > \u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07-\u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07] > PASSED [ 2%] > \u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/.-\u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/] > PASSED [ 2%] > tests/test_pickle.py::test_pickle PASSED [ > 2%] > tests/test_pickle.py::test_default_style_state PASSED [ > 2%] > tests/test_quoting.py::test_quote_not_allowed_non_strict[py_quoter] PASSED [ > 2%] > tests/test_quoting.py::test_quote_not_allowed_non_strict[c_quoter] PASSED [ > 2%] > tests/test_quoting.py::test_quote_unfinished_tail_percent_non_strict[py_quoter] > PASSED [ 2%] > tests/test_quoting.py::test_quote_unfinished_tail_percent_non_strict[c_quoter] > PASSED [ 2%] > tests/test_quoting.py::test_quote_unfinished_tail_digit_non_strict[py_quoter] > PASSED [ 2%] > tests/test_quoting.py::test_quote_unfinished_tail_digit_non_strict[c_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_safe_non_strict[py_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_safe_non_strict[c_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_unsafe_non_strict[py_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_unsafe_non_strict[c_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii_non_strict[py_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii_non_strict[c_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii2_non_strict[py_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii2_non_strict[c_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii3_non_strict[py_quoter] > PASSED [ 3%] > tests/test_quoting.py::test_quote_unfinished_tail_non_ascii3_non_strict[c_quoter] > PASSED [ 4%] > tests/test_quoting.py::test_quote_from_bytes[py_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_quote_from_bytes[c_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_quote_ignore_broken_unicode[py_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_quote_ignore_broken_unicode[c_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_unquote_to_bytes[py_unquoter] PASSED [ > 4%] > tests/test_quoting.py::test_unquote_to_bytes[c_unquoter] PASSED [ > 4%] > tests/test_quoting.py::test_never_quote[py_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_never_quote[c_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_safe[py_quoter] PASSED [ > 4%] > tests/test_quoting.py::test_safe[c_quoter] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x00] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x01] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x02] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x03] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x04] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x05] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x06] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x07] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x08] PASSED [ > 5%] > tests/test_quoting.py::test_default_quoting[py_quoter-\t] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\n] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x0b] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x0c] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\r] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x0e] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x0f] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x10] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x11] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x12] PASSED [ > 6%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x13] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x14] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x15] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x16] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x17] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x18] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x19] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1a] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1b] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1c] PASSED [ > 7%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1d] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1e] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x1f] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-<] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter->] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-#] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-"] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-{] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-}] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-|] PASSED [ > 8%] > tests/test_quoting.py::test_default_quoting[py_quoter-\\] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[py_quoter-^] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[py_quoter-[] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[py_quoter-]] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[py_quoter-`] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[py_quoter-\x7f] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x00] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x01] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x02] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x03] PASSED [ > 9%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x04] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x05] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x06] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x07] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x08] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\t] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\n] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x0b] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x0c] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\r] PASSED [ > 10%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x0e] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x0f] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x10] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x11] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x12] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x13] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x14] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x15] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x16] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x17] PASSED [ > 11%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x18] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x19] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1a] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1b] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1c] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1d] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1e] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x1f] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-<] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter->] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-#] PASSED [ > 12%] > tests/test_quoting.py::test_default_quoting[c_quoter-"] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-{] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-}] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-|] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-\\] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-^] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-[] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-]] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-`] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting[c_quoter-\x7f] PASSED [ > 13%] > tests/test_quoting.py::test_default_quoting_percent[py_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_default_quoting_percent[c_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_default_quoting_partial[py_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_default_quoting_partial[c_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quoting_space[py_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quoting_space[c_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quoting_plus[py_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quoting_plus[c_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quote_with_unicode[py_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quote_with_unicode[c_quoter] PASSED [ > 14%] > tests/test_quoting.py::test_quote_plus_with_unicode[py_quoter] PASSED [ > 15%] > tests/test_quoting.py::test_quote_plus_with_unicode[c_quoter] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-0] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-1] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-2] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-3] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-4] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-5] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-6] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-7] PASSED [ > 15%] > tests/test_quoting.py::test_unquoting[py_unquoter-8] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-9] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-10] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-11] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-12] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-13] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-14] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-15] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-16] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-17] PASSED [ > 16%] > tests/test_quoting.py::test_unquoting[py_unquoter-18] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-19] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-20] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-21] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-22] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-23] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-24] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-25] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-26] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-27] PASSED [ > 17%] > tests/test_quoting.py::test_unquoting[py_unquoter-28] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-29] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-30] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-31] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-32] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-33] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-34] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-35] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-36] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-37] PASSED [ > 18%] > tests/test_quoting.py::test_unquoting[py_unquoter-38] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-39] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-40] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-41] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-42] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-43] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-44] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-45] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-46] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-47] PASSED [ > 19%] > tests/test_quoting.py::test_unquoting[py_unquoter-48] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-49] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-50] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-51] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-52] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-53] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-54] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-55] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-56] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-57] PASSED [ > 20%] > tests/test_quoting.py::test_unquoting[py_unquoter-58] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-59] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-60] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-61] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-62] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-63] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-64] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-65] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-66] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-67] PASSED [ > 21%] > tests/test_quoting.py::test_unquoting[py_unquoter-68] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-69] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-70] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-71] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-72] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-73] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-74] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-75] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-76] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-77] PASSED [ > 22%] > tests/test_quoting.py::test_unquoting[py_unquoter-78] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-79] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-80] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-81] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-82] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-83] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-84] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-85] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-86] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-87] PASSED [ > 23%] > tests/test_quoting.py::test_unquoting[py_unquoter-88] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-89] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-90] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-91] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-92] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-93] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-94] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-95] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-96] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-97] PASSED [ > 24%] > tests/test_quoting.py::test_unquoting[py_unquoter-98] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-99] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-100] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-101] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-102] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-103] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-104] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-105] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-106] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-107] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-108] PASSED [ > 25%] > tests/test_quoting.py::test_unquoting[py_unquoter-109] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-110] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-111] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-112] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-113] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-114] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-115] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-116] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-117] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-118] PASSED [ > 26%] > tests/test_quoting.py::test_unquoting[py_unquoter-119] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-120] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-121] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-122] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-123] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-124] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-125] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-126] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[py_unquoter-127] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[c_unquoter-0] PASSED [ > 27%] > tests/test_quoting.py::test_unquoting[c_unquoter-1] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-2] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-3] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-4] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-5] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-6] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-7] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-8] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-9] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-10] PASSED [ > 28%] > tests/test_quoting.py::test_unquoting[c_unquoter-11] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-12] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-13] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-14] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-15] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-16] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-17] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-18] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-19] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-20] PASSED [ > 29%] > tests/test_quoting.py::test_unquoting[c_unquoter-21] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-22] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-23] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-24] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-25] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-26] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-27] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-28] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-29] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-30] PASSED [ > 30%] > tests/test_quoting.py::test_unquoting[c_unquoter-31] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-32] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-33] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-34] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-35] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-36] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-37] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-38] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-39] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-40] PASSED [ > 31%] > tests/test_quoting.py::test_unquoting[c_unquoter-41] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-42] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-43] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-44] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-45] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-46] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-47] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-48] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-49] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-50] PASSED [ > 32%] > tests/test_quoting.py::test_unquoting[c_unquoter-51] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-52] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-53] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-54] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-55] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-56] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-57] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-58] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-59] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-60] PASSED [ > 33%] > tests/test_quoting.py::test_unquoting[c_unquoter-61] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-62] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-63] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-64] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-65] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-66] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-67] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-68] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-69] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-70] PASSED [ > 34%] > tests/test_quoting.py::test_unquoting[c_unquoter-71] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-72] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-73] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-74] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-75] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-76] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-77] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-78] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-79] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-80] PASSED [ > 35%] > tests/test_quoting.py::test_unquoting[c_unquoter-81] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-82] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-83] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-84] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-85] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-86] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-87] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-88] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-89] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-90] PASSED [ > 36%] > tests/test_quoting.py::test_unquoting[c_unquoter-91] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-92] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-93] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-94] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-95] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-96] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-97] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-98] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-99] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-100] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-101] PASSED [ > 37%] > tests/test_quoting.py::test_unquoting[c_unquoter-102] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-103] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-104] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-105] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-106] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-107] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-108] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-109] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-110] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-111] PASSED [ > 38%] > tests/test_quoting.py::test_unquoting[c_unquoter-112] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-113] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-114] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-115] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-116] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-117] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-118] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-119] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-120] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-121] PASSED [ > 39%] > tests/test_quoting.py::test_unquoting[c_unquoter-122] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting[c_unquoter-123] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting[c_unquoter-124] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting[c_unquoter-125] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting[c_unquoter-126] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting[c_unquoter-127] PASSED [ > 40%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%-%] > PASSED [ 40%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2-%2] > PASSED [ 40%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%x-%x] > PASSED [ 40%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%\u20ac-%\u20ac] > PASSED [ 40%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2x-%2x] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2 -%2 > ] PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-% 2-% > 2] PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%xa-%xa] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%%-%%] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%%3f-%?] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2%-%2%] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2%3f-%2?] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%x%3f-%x?] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%\u20ac%3f-%\u20ac?] > PASSED [ 41%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%-%] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2-%2] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%x-%x] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%\u20ac-%\u20ac] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2x-%2x] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2 -%2 ] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-% 2-% 2] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%xa-%xa] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%%-%%] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%%3f-%?] > PASSED [ 42%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2%-%2%] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2%3f-%2?] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%x%3f-%x?] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%\u20ac%3f-%\u20ac?] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[py_unquoter] > XFAIL [ 43%] > tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[c_unquoter] XFAIL > [ 43%] > tests/test_quoting.py::test_unquoting_mixed_case_percent_escapes[py_unquoter] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_mixed_case_percent_escapes[c_unquoter] > PASSED [ 43%] > tests/test_quoting.py::test_unquoting_parts[py_unquoter] PASSED [ > 43%] > tests/test_quoting.py::test_unquoting_parts[c_unquoter] PASSED [ > 43%] > tests/test_quoting.py::test_quote_None[py_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_quote_None[c_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_unquote_None[py_unquoter] PASSED [ > 44%] > tests/test_quoting.py::test_unquote_None[c_unquoter] PASSED [ > 44%] > tests/test_quoting.py::test_quote_empty_string[py_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_quote_empty_string[c_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_unquote_empty_string[py_unquoter] PASSED [ > 44%] > tests/test_quoting.py::test_unquote_empty_string[c_unquoter] PASSED [ > 44%] > tests/test_quoting.py::test_quote_bad_types[py_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_quote_bad_types[c_quoter] PASSED [ > 44%] > tests/test_quoting.py::test_unquote_bad_types[py_unquoter] PASSED [ > 45%] > tests/test_quoting.py::test_unquote_bad_types[c_unquoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_lowercase[py_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_lowercase[c_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_unquoted[py_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_unquoted[c_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_space[py_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_space[c_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_percent_last_character[py_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_quote_percent_last_character[c_quoter] PASSED [ > 45%] > tests/test_quoting.py::test_unquote_unsafe[py_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe[c_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe2[py_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe2[c_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe3[py_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe3[c_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe4[py_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_unsafe4[c_unquoter] PASSED [ > 46%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82-%e2%82] > PASSED [ 46%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82ac-%e2%82ac] > PASSED [ 46%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%f8-%e2%82%f8] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%2b-%e2%82+] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%e2%82%ac-%e2%82\u20ac] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%e2%82-%e2%82%e2%82] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82-%e2%82] PASSED > [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82ac-%e2%82ac] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%f8-%e2%82%f8] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%2b-%e2%82+] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%e2%82%ac-%e2%82\u20ac] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%e2%82-%e2%82%e2%82] > PASSED [ 47%] > tests/test_quoting.py::test_unquote_unsafe_non_utf8[py_unquoter] PASSED [ > 48%] > tests/test_quoting.py::test_unquote_unsafe_non_utf8[c_unquoter] PASSED [ > 48%] > tests/test_quoting.py::test_unquote_plus_non_utf8[py_unquoter] PASSED [ > 48%] > tests/test_quoting.py::test_unquote_plus_non_utf8[c_unquoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_non_ascii[py_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_non_ascii[c_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_non_ascii2[py_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_non_ascii2[c_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_percent_percent_encoded[py_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_percent_percent_encoded[c_quoter] PASSED [ > 48%] > tests/test_quoting.py::test_quote_percent_digit_percent_encoded[py_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_digit_percent_encoded[c_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_safe_percent_encoded[py_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_safe_percent_encoded[c_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_unsafe_percent_encoded[py_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_unsafe_percent_encoded[c_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_non_ascii_percent_encoded[py_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_non_ascii_percent_encoded[c_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_non_ascii2_percent_encoded[py_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_non_ascii2_percent_encoded[c_quoter] > PASSED [ 49%] > tests/test_quoting.py::test_quote_percent_non_ascii3_percent_encoded[py_quoter] > PASSED [ 50%] > tests/test_quoting.py::test_quote_percent_non_ascii3_percent_encoded[c_quoter] > PASSED [ 50%] > tests/test_quoting.py::test_quote_str_like[py_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_quote_str_like[c_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_unquote_str_like[py_unquoter] PASSED [ > 50%] > tests/test_quoting.py::test_unquote_str_like[c_unquoter] PASSED [ > 50%] > tests/test_quoting.py::test_quote_sub_delims[py_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_quote_sub_delims[c_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_requote_sub_delims[py_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_requote_sub_delims[c_quoter] PASSED [ > 50%] > tests/test_quoting.py::test_unquoting_plus[py_unquoter] PASSED [ > 50%] > tests/test_quoting.py::test_unquoting_plus[c_unquoter] PASSED [ > 51%] > tests/test_quoting.py::test_unquote_plus_to_space[py_unquoter] PASSED [ > 51%] > tests/test_quoting.py::test_unquote_plus_to_space[c_unquoter] PASSED [ > 51%] > tests/test_quoting.py::test_unquote_plus_to_space_unsafe[py_unquoter] PASSED > [ 51%] > tests/test_quoting.py::test_unquote_plus_to_space_unsafe[c_unquoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_qs_with_colon[py_quoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_qs_with_colon[c_quoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_protected[py_quoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_protected[c_quoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_fastpath_safe[py_quoter] PASSED [ > 51%] > tests/test_quoting.py::test_quote_fastpath_safe[c_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quote_fastpath_pct[py_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quote_fastpath_pct[c_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quote_very_large_string[py_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quote_very_large_string[c_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_space[py_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_space[c_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quoter_path_with_plus[py_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_quoter_path_with_plus[c_quoter] PASSED [ > 52%] > tests/test_quoting.py::test_unquoter_path_with_plus[py_unquoter] PASSED [ > 52%] > tests/test_quoting.py::test_unquoter_path_with_plus[c_unquoter] PASSED [ > 53%] > tests/test_update_query.py::test_with_query PASSED [ > 53%] > tests/test_update_query.py::test_update_query PASSED [ > 53%] > tests/test_update_query.py::test_update_query_with_args_and_kwargs PASSED [ > 53%] > tests/test_update_query.py::test_update_query_with_multiple_args PASSED [ > 53%] > tests/test_update_query.py::test_with_query_list_of_pairs PASSED [ > 53%] > tests/test_update_query.py::test_with_query_list_non_pairs PASSED [ > 53%] > tests/test_update_query.py::test_with_query_kwargs PASSED [ > 53%] > tests/test_update_query.py::test_with_query_kwargs_and_args_are_mutually_exclusive > PASSED [ 53%] > tests/test_update_query.py::test_with_query_only_single_arg_is_supported > PASSED [ 53%] > tests/test_update_query.py::test_with_query_empty_dict PASSED [ > 54%] > tests/test_update_query.py::test_with_query_empty_str PASSED [ > 54%] > tests/test_update_query.py::test_with_query_empty_value PASSED [ > 54%] > tests/test_update_query.py::test_with_query_str PASSED [ > 54%] > tests/test_update_query.py::test_with_query_str_non_ascii_and_spaces PASSED [ > 54%] > tests/test_update_query.py::test_with_query_int PASSED [ > 54%] > tests/test_update_query.py::test_with_query_kwargs_int PASSED [ > 54%] > tests/test_update_query.py::test_with_query_list_int PASSED [ > 54%] > tests/test_update_query.py::test_with_query_sequence[empty list] PASSED [ > 54%] > tests/test_update_query.py::test_with_query_sequence[empty tuple] PASSED [ > 54%] > tests/test_update_query.py::test_with_query_sequence[single list] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[single tuple] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[list] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[tuple] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[key with braces] PASSED > [ 55%] > tests/test_update_query.py::test_with_query_sequence[quote key] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[mixed types] PASSED [ > 55%] > tests/test_update_query.py::test_with_query_sequence[quote key and value] > PASSED [ 55%] > tests/test_update_query.py::test_with_query_sequence[single then list] PASSED > [ 55%] > tests/test_update_query.py::test_with_query_sequence[list then single] PASSED > [ 55%] > tests/test_update_query.py::test_with_query_sequence[ampersand then int] > PASSED [ 56%] > tests/test_update_query.py::test_with_query_sequence[int then ampersand] > PASSED [ 56%] > tests/test_update_query.py::test_with_query_sequence_invalid_use[nested] > PASSED [ 56%] > tests/test_update_query.py::test_with_query_sequence_invalid_use[tuple list] > PASSED [ 56%] > tests/test_update_query.py::test_with_query_valid_type[str] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_valid_type[custom str] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_valid_type[int] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_valid_type[custom int] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_valid_type[float] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_valid_type[custom float] PASSED [ > 56%] > tests/test_update_query.py::test_with_query_invalid_type[bool] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_invalid_type[none] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_invalid_type[non-finite float] > PASSED [ 57%] > tests/test_update_query.py::test_with_query_invalid_type[NaN float] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_list_valid_type[str] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_list_valid_type[custom str] > PASSED [ 57%] > tests/test_update_query.py::test_with_query_list_valid_type[int] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_list_valid_type[custom int] > PASSED [ 57%] > tests/test_update_query.py::test_with_query_list_valid_type[float] PASSED [ > 57%] > tests/test_update_query.py::test_with_query_list_valid_type[custom float] > PASSED [ 57%] > tests/test_update_query.py::test_with_query_list_invalid_type[bool] PASSED [ > 58%] > tests/test_update_query.py::test_with_query_list_invalid_type[none] PASSED [ > 58%] > tests/test_update_query.py::test_with_int_enum PASSED [ > 58%] > tests/test_update_query.py::test_with_float_enum PASSED [ > 58%] > tests/test_update_query.py::test_with_query_multidict PASSED [ > 58%] > tests/test_update_query.py::test_with_multidict_with_spaces_and_non_ascii > PASSED [ 58%] > tests/test_update_query.py::test_with_query_multidict_with_unsafe PASSED [ > 58%] > tests/test_update_query.py::test_with_query_None PASSED [ > 58%] > tests/test_update_query.py::test_with_query_bad_type PASSED [ > 58%] > tests/test_update_query.py::test_with_query_bytes PASSED [ > 58%] > tests/test_update_query.py::test_with_query_bytearray PASSED [ > 59%] > tests/test_update_query.py::test_with_query_memoryview PASSED [ > 59%] > tests/test_update_query.py::test_with_query_params[tuple list semicolon] > PASSED [ 59%] > tests/test_update_query.py::test_with_query_params[mapping semicolon] PASSED > [ 59%] > tests/test_update_query.py::test_with_query_params[tuple list ampersand] > PASSED [ 59%] > tests/test_update_query.py::test_with_query_params[mapping ampersand] PASSED > [ 59%] > tests/test_update_query.py::test_with_query_params[tuple list quote key] > PASSED [ 59%] > tests/test_update_query.py::test_with_query_params[mapping quote key] PASSED > [ 59%] > tests/test_update_query.py::test_with_query_params[quote one key braces] > PASSED [ 59%] > tests/test_update_query.py::test_with_query_params[quote many key braces] > PASSED [ 59%] > tests/test_update_query.py::test_with_query_only PASSED [ > 60%] > tests/test_update_query.py::test_with_query_complex_url PASSED [ > 60%] > tests/test_update_query.py::test_update_query_multiple_keys PASSED [ > 60%] > tests/test_update_query.py::test_update_query_with_mod_operator PASSED [ > 60%] > tests/test_url.py::test_inheritance PASSED [ > 60%] > tests/test_url.py::test_str_subclass PASSED [ > 60%] > tests/test_url.py::test_is PASSED [ > 60%] > tests/test_url.py::test_bool PASSED [ > 60%] > tests/test_url.py::test_absolute_url_without_host PASSED [ > 60%] > tests/test_url.py::test_url_is_not_str PASSED [ > 60%] > tests/test_url.py::test_str PASSED [ > 61%] > tests/test_url.py::test_repr PASSED [ > 61%] > tests/test_url.py::test_origin PASSED [ > 61%] > tests/test_url.py::test_origin_nonascii PASSED [ > 61%] > tests/test_url.py::test_origin_ipv6 PASSED [ > 61%] > tests/test_url.py::test_origin_not_absolute_url PASSED [ > 61%] > tests/test_url.py::test_origin_no_scheme PASSED [ > 61%] > tests/test_url.py::test_drop_dots PASSED [ > 61%] > tests/test_url.py::test_abs_cmp PASSED [ > 61%] > tests/test_url.py::test_abs_hash PASSED [ > 61%] > tests/test_url.py::test_scheme PASSED [ > 62%] > tests/test_url.py::test_raw_user PASSED [ > 62%] > tests/test_url.py::test_raw_user_non_ascii PASSED [ > 62%] > tests/test_url.py::test_no_user PASSED [ > 62%] > tests/test_url.py::test_user_non_ascii PASSED [ > 62%] > tests/test_url.py::test_raw_password PASSED [ > 62%] > tests/test_url.py::test_raw_password_non_ascii PASSED [ > 62%] > tests/test_url.py::test_password_non_ascii PASSED [ > 62%] > tests/test_url.py::test_password_without_user PASSED [ > 62%] > tests/test_url.py::test_user_empty_password PASSED [ > 62%] > tests/test_url.py::test_raw_host PASSED [ > 62%] > tests/test_url.py::test_raw_host_non_ascii PASSED [ > 63%] > tests/test_url.py::test_host_non_ascii PASSED [ > 63%] > tests/test_url.py::test_localhost PASSED [ > 63%] > tests/test_url.py::test_host_with_underscore PASSED [ > 63%] > tests/test_url.py::test_raw_host_when_port_is_specified PASSED [ > 63%] > tests/test_url.py::test_raw_host_from_str_with_ipv4 PASSED [ > 63%] > tests/test_url.py::test_raw_host_from_str_with_ipv6 PASSED [ > 63%] > tests/test_url.py::test_authority_full PASSED [ > 63%] > tests/test_url.py::test_authority_short PASSED [ > 63%] > tests/test_url.py::test_authority_full_nonasci PASSED [ > 63%] > tests/test_url.py::test_lowercase PASSED [ > 64%] > tests/test_url.py::test_lowercase_nonascii PASSED [ > 64%] > tests/test_url.py::test_compressed_ipv6 PASSED [ > 64%] > tests/test_url.py::test_ipv6_zone PASSED [ > 64%] > tests/test_url.py::test_ipv4_zone PASSED [ > 64%] > tests/test_url.py::test_port_for_explicit_port PASSED [ > 64%] > tests/test_url.py::test_port_for_implicit_port PASSED [ > 64%] > tests/test_url.py::test_port_for_relative_url PASSED [ > 64%] > tests/test_url.py::test_port_for_unknown_scheme PASSED [ > 64%] > tests/test_url.py::test_explicit_port_for_explicit_port PASSED [ > 64%] > tests/test_url.py::test_explicit_port_for_implicit_port PASSED [ > 65%] > tests/test_url.py::test_explicit_port_for_relative_url PASSED [ > 65%] > tests/test_url.py::test_explicit_port_for_unknown_scheme PASSED [ > 65%] > tests/test_url.py::test_raw_path_string_empty PASSED [ > 65%] > tests/test_url.py::test_raw_path PASSED [ > 65%] > tests/test_url.py::test_raw_path_non_ascii PASSED [ > 65%] > tests/test_url.py::test_path_non_ascii PASSED [ > 65%] > tests/test_url.py::test_path_with_spaces PASSED [ > 65%] > tests/test_url.py::test_raw_path_for_empty_url PASSED [ > 65%] > tests/test_url.py::test_raw_path_for_colon_and_at PASSED [ > 65%] > tests/test_url.py::test_raw_query_string PASSED [ > 66%] > tests/test_url.py::test_raw_query_string_non_ascii PASSED [ > 66%] > tests/test_url.py::test_query_string_non_ascii PASSED [ > 66%] > tests/test_url.py::test_path_qs PASSED [ > 66%] > tests/test_url.py::test_raw_path_qs PASSED [ > 66%] > tests/test_url.py::test_query_string_spaces PASSED [ > 66%] > tests/test_url.py::test_raw_fragment_empty PASSED [ > 66%] > tests/test_url.py::test_raw_fragment PASSED [ > 66%] > tests/test_url.py::test_raw_fragment_non_ascii PASSED [ > 66%] > tests/test_url.py::test_raw_fragment_safe PASSED [ > 66%] > tests/test_url.py::test_fragment_non_ascii PASSED [ > 67%] > tests/test_url.py::test_raw_parts_empty PASSED [ > 67%] > tests/test_url.py::test_raw_parts PASSED [ > 67%] > tests/test_url.py::test_raw_parts_without_path PASSED [ > 67%] > tests/test_url.py::test_raw_path_parts_with_2F_in_path PASSED [ > 67%] > tests/test_url.py::test_raw_path_parts_with_2f_in_path PASSED [ > 67%] > tests/test_url.py::test_raw_parts_for_relative_path PASSED [ > 67%] > tests/test_url.py::test_raw_parts_for_relative_path_starting_from_slash > PASSED [ 67%] > tests/test_url.py::test_raw_parts_for_relative_double_path PASSED [ > 67%] > tests/test_url.py::test_parts_for_empty_url PASSED [ > 67%] > tests/test_url.py::test_raw_parts_non_ascii PASSED [ > 68%] > tests/test_url.py::test_parts_non_ascii PASSED [ > 68%] > tests/test_url.py::test_name_for_empty_url PASSED [ > 68%] > tests/test_url.py::test_raw_name PASSED [ > 68%] > tests/test_url.py::test_raw_name_root PASSED [ > 68%] > tests/test_url.py::test_raw_name_root2 PASSED [ > 68%] > tests/test_url.py::test_raw_name_root3 PASSED [ > 68%] > tests/test_url.py::test_relative_raw_name PASSED [ > 68%] > tests/test_url.py::test_relative_raw_name_starting_from_slash PASSED [ > 68%] > tests/test_url.py::test_relative_raw_name_slash PASSED [ > 68%] > tests/test_url.py::test_name_non_ascii PASSED [ > 69%] > tests/test_url.py::test_plus_in_path PASSED [ > 69%] > tests/test_url.py::test_nonascii_in_qs PASSED [ > 69%] > tests/test_url.py::test_percent_encoded_in_qs PASSED [ > 69%] > tests/test_url.py::test_parent_raw_path PASSED [ > 69%] > tests/test_url.py::test_parent_raw_parts PASSED [ > 69%] > tests/test_url.py::test_double_parent_raw_path PASSED [ > 69%] > tests/test_url.py::test_empty_parent_raw_path PASSED [ > 69%] > tests/test_url.py::test_empty_parent_raw_path2 PASSED [ > 69%] > tests/test_url.py::test_clear_fragment_on_getting_parent PASSED [ > 69%] > tests/test_url.py::test_clear_fragment_on_getting_parent_toplevel PASSED [ > 70%] > tests/test_url.py::test_clear_query_on_getting_parent PASSED [ > 70%] > tests/test_url.py::test_clear_query_on_getting_parent_toplevel PASSED [ > 70%] > tests/test_url.py::test_div_root PASSED [ > 70%] > tests/test_url.py::test_div_root_with_slash PASSED [ > 70%] > tests/test_url.py::test_div PASSED [ > 70%] > tests/test_url.py::test_div_with_slash PASSED [ > 70%] > tests/test_url.py::test_div_path_starting_from_slash_is_forbidden PASSED [ > 70%] > tests/test_url.py::test_div_cleanup_query_and_fragment PASSED [ > 70%] > tests/test_url.py::test_div_for_empty_url PASSED [ > 70%] > tests/test_url.py::test_div_for_relative_url PASSED [ > 71%] > tests/test_url.py::test_div_for_relative_url_started_with_slash PASSED [ > 71%] > tests/test_url.py::test_div_non_ascii PASSED [ > 71%] > tests/test_url.py::test_div_percent_encoded PASSED [ > 71%] > tests/test_url.py::test_div_with_colon_and_at PASSED [ > 71%] > tests/test_url.py::test_div_with_dots PASSED [ > 71%] > tests/test_url.py::test_with_path PASSED [ > 71%] > tests/test_url.py::test_with_path_nonascii PASSED [ > 71%] > tests/test_url.py::test_with_path_percent_encoded PASSED [ > 71%] > tests/test_url.py::test_with_path_encoded PASSED [ > 71%] > tests/test_url.py::test_with_path_encoded_nonascii PASSED [ > 72%] > tests/test_url.py::test_with_path_encoded_percent_encoded PASSED [ > 72%] > tests/test_url.py::test_with_path_dots PASSED [ > 72%] > tests/test_url.py::test_with_path_relative PASSED [ > 72%] > tests/test_url.py::test_with_path_query PASSED [ > 72%] > tests/test_url.py::test_with_path_fragment PASSED [ > 72%] > tests/test_url.py::test_with_path_empty PASSED [ > 72%] > tests/test_url.py::test_with_path_leading_slash PASSED [ > 72%] > tests/test_url.py::test_with_fragment PASSED [ > 72%] > tests/test_url.py::test_with_fragment_safe PASSED [ > 72%] > tests/test_url.py::test_with_fragment_non_ascii PASSED [ > 73%] > tests/test_url.py::test_with_fragment_percent_encoded PASSED [ > 73%] > tests/test_url.py::test_with_fragment_None PASSED [ > 73%] > tests/test_url.py::test_with_fragment_None_matching PASSED [ > 73%] > tests/test_url.py::test_with_fragment_matching PASSED [ > 73%] > tests/test_url.py::test_with_fragment_bad_type PASSED [ > 73%] > tests/test_url.py::test_with_name PASSED [ > 73%] > tests/test_url.py::test_with_name_for_naked_path PASSED [ > 73%] > tests/test_url.py::test_with_name_for_relative_path PASSED [ > 73%] > tests/test_url.py::test_with_name_for_relative_path2 PASSED [ > 73%] > tests/test_url.py::test_with_name_for_relative_path_starting_from_slash > PASSED [ 74%] > tests/test_url.py::test_with_name_for_relative_path_starting_from_slash2 > PASSED [ 74%] > tests/test_url.py::test_with_name_empty PASSED [ > 74%] > tests/test_url.py::test_with_name_non_ascii PASSED [ > 74%] > tests/test_url.py::test_with_name_percent_encoded PASSED [ > 74%] > tests/test_url.py::test_with_name_with_slash PASSED [ > 74%] > tests/test_url.py::test_with_name_non_str PASSED [ > 74%] > tests/test_url.py::test_with_name_within_colon_and_at PASSED [ > 74%] > tests/test_url.py::test_with_name_dot PASSED [ > 74%] > tests/test_url.py::test_with_name_double_dot PASSED [ > 74%] > tests/test_url.py::test_is_absolute_for_relative_url PASSED [ > 75%] > tests/test_url.py::test_is_absolute_for_absolute_url PASSED [ > 75%] > tests/test_url.py::test_is_non_absolute_for_empty_url PASSED [ > 75%] > tests/test_url.py::test_is_non_absolute_for_empty_url2 PASSED [ > 75%] > tests/test_url.py::test_is_absolute_path_starting_from_double_slash PASSED [ > 75%] > tests/test_url.py::test_is_default_port_for_relative_url PASSED [ > 75%] > tests/test_url.py::test_is_default_port_for_absolute_url_without_port PASSED > [ 75%] > tests/test_url.py::test_is_default_port_for_absolute_url_with_default_port > PASSED [ 75%] > tests/test_url.py::test_is_default_port_for_absolute_url_with_nondefault_port > PASSED [ 75%] > tests/test_url.py::test_is_default_port_for_unknown_scheme PASSED [ > 75%] > tests/test_url.py::test_no_scheme PASSED [ > 75%] > tests/test_url.py::test_no_scheme2 PASSED [ > 76%] > tests/test_url.py::test_from_non_allowed PASSED [ > 76%] > tests/test_url.py::test_from_idna PASSED [ > 76%] > tests/test_url.py::test_to_idna PASSED [ > 76%] > tests/test_url.py::test_from_ascii_login PASSED [ > 76%] > tests/test_url.py::test_from_non_ascii_login PASSED [ > 76%] > tests/test_url.py::test_from_ascii_login_and_password PASSED [ > 76%] > tests/test_url.py::test_from_non_ascii_login_and_password PASSED [ > 76%] > tests/test_url.py::test_from_ascii_path PASSED [ > 76%] > tests/test_url.py::test_from_ascii_path_lower_case PASSED [ > 76%] > tests/test_url.py::test_from_non_ascii_path PASSED [ > 77%] > tests/test_url.py::test_from_ascii_query_parts PASSED [ > 77%] > tests/test_url.py::test_from_non_ascii_query_parts PASSED [ > 77%] > tests/test_url.py::test_from_non_ascii_query_parts2 PASSED [ > 77%] > tests/test_url.py::test_from_ascii_fragment PASSED [ > 77%] > tests/test_url.py::test_from_bytes_with_non_ascii_fragment PASSED [ > 77%] > tests/test_url.py::test_to_str PASSED [ > 77%] > tests/test_url.py::test_to_str_long PASSED [ > 77%] > tests/test_url.py::test_decoding_with_2F_in_path PASSED [ > 77%] > tests/test_url.py::test_decoding_with_26_and_3D_in_query PASSED [ > 77%] > tests/test_url.py::test_fragment_only_url PASSED [ > 78%] > tests/test_url.py::test_url_from_url PASSED [ > 78%] > tests/test_url.py::test_lowercase_scheme PASSED [ > 78%] > tests/test_url.py::test_str_for_empty_url PASSED [ > 78%] > tests/test_url.py::test_parent_for_empty_url PASSED [ > 78%] > tests/test_url.py::test_empty_value_for_query PASSED [ > 78%] > tests/test_url.py::test_none_value_for_query PASSED [ > 78%] > tests/test_url.py::test_decode_pct_in_path PASSED [ > 78%] > tests/test_url.py::test_decode_pct_in_path_lower_case PASSED [ > 78%] > tests/test_url.py::test_join PASSED [ > 78%] > tests/test_url.py::test_join_absolute PASSED [ > 79%] > tests/test_url.py::test_join_non_url PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[g:h-g:h] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[g-http:/a/b/c/g] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[./g-http:/a/b/c/g] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[g/-http:/a/b/c/g/] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[/g-http:/a/g] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[/g-http:/g] PASSED [ > 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[?y-http:/a/b/c/d;p?y] > PASSED [ 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[g?y-http:/a/b/c/g?y] PASSED > [ 79%] > tests/test_url.py::test_join_from_rfc_3986_normal[#s-http:/a/b/c/d;p?q#s] > PASSED [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[g#s-http:/a/b/c/g#s] PASSED > [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[g?y#s-http:/a/b/c/g?y#s] > PASSED [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[;x-http:/a/b/c/;x] PASSED [ > 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[g;x-http:/a/b/c/g;x] PASSED > [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[g;x?y#s-http:/a/b/c/g;x?y#s] > PASSED [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[-http:/a/b/c/d;p?q] PASSED > [ 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[.-http:/a/b/c/] PASSED [ > 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[./-http:/a/b/c/] PASSED [ > 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[..-http:/a/b/] PASSED [ > 80%] > tests/test_url.py::test_join_from_rfc_3986_normal[../-http:/a/b/] PASSED [ > 81%] > tests/test_url.py::test_join_from_rfc_3986_normal[../g-http:/a/b/g] PASSED [ > 81%] > tests/test_url.py::test_join_from_rfc_3986_normal[../..-http:/a/] PASSED [ > 81%] > tests/-http:/a/] PASSED [ > 81%] > tests/g-http:/a/g] PASSED [ > 81%] > g-http:/a/g] PASSED [ > 81%] > ../g-http:/a/g] PASSED [ > 81%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[/g-http:/a/g] PASSED [ > 81%] > tests/g-http:/a/g] PASSED [ > 81%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g.-http:/a/b/c/g.] PASSED > [ 81%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[.g-http:/a/b/c/.g] PASSED > [ 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g..-http:/a/b/c/g..] > PASSED [ 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[..g-http:/a/b/c/..g] > PASSED [ 82%] > tests/g-http:/a/b/g] PASSED [ > 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[./g/.-http:/a/b/c/g/] > PASSED [ 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g/h-http:/a/b/c/g/h] > PASSED [ 82%] > tests/h-http:/a/b/c/h] PASSED [ > 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g;x=1/y-http:/a/b/c/g;x=1/y] > PASSED [ 82%] > tests/y-http:/a/b/c/y] PASSED [ > 82%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g?y/x-http:/a/b/c/g?y/x] > PASSED [ 82%] > tests/x-http:/a/b/c/x] PASSED [ > 83%] > tests/test_url.py::test_join_from_rfc_3986_abnormal[g#s/x-http:/a/b/c/g#s/x] > PASSED [ 83%] > tests/x-http:/a/b/c/x] PASSED [ > 83%] > tests/test_url.py::test_split_result_non_decoded PASSED [ > 83%] > tests/test_url.py::test_human_repr PASSED [ > 83%] > tests/test_url.py::test_human_repr_defaults PASSED [ > 83%] > tests/test_url.py::test_human_repr_default_port PASSED [ > 83%] > tests/test_url.py::test_human_repr_ipv6 PASSED [ > 83%] > tests/test_url.py::test_human_repr_delimiters PASSED [ > 83%] > tests/test_url.py::test_human_repr_non_printable PASSED [ > 83%] > tests/test_url.py::test_relative PASSED [ > 84%] > tests/test_url.py::test_relative_is_relative PASSED [ > 84%] > tests/test_url.py::test_relative_abs_parts_are_removed PASSED [ > 84%] > tests/test_url.py::test_relative_fails_on_rel_url PASSED [ > 84%] > tests/test_url.py::test_slash_and_question_in_query PASSED [ > 84%] > tests/test_url.py::test_slash_and_question_in_fragment PASSED [ > 84%] > tests/test_url.py::test_requoting PASSED [ > 84%] > tests/test_url_build.py::test_build_without_arguments PASSED [ > 84%] > tests/test_url_build.py::test_build_simple PASSED [ > 84%] > tests/test_url_build.py::test_build_with_scheme PASSED [ > 84%] > tests/test_url_build.py::test_build_with_host PASSED [ > 85%] > tests/test_url_build.py::test_build_with_scheme_and_host PASSED [ > 85%] > tests/test_url_build.py::test_build_with_port PASSED [ > 85%] > tests/test_url_build.py::test_build_with_user PASSED [ > 85%] > tests/test_url_build.py::test_build_with_user_password PASSED [ > 85%] > tests/test_url_build.py::test_build_with_query_and_query_string PASSED [ > 85%] > tests/test_url_build.py::test_build_with_all PASSED [ > 85%] > tests/test_url_build.py::test_build_with_authority_and_host PASSED [ > 85%] > tests/test_url_build.py::test_build_with_authority PASSED [ > 85%] > tests/test_url_build.py::test_build_with_authority_without_encoding PASSED [ > 85%] > tests/test_url_build.py::test_query_str PASSED [ > 86%] > tests/test_url_build.py::test_query_dict PASSED [ > 86%] > tests/test_url_build.py::test_build_path_quoting PASSED [ > 86%] > tests/test_url_build.py::test_build_query_quoting PASSED [ > 86%] > tests/test_url_build.py::test_build_query_only PASSED [ > 86%] > tests/test_url_build.py::test_build_drop_dots PASSED [ > 86%] > tests/test_url_build.py::test_build_encode PASSED [ > 86%] > tests/test_url_build.py::test_build_already_encoded PASSED [ > 86%] > tests/test_url_build.py::test_build_percent_encoded PASSED [ > 86%] > tests/test_url_build.py::test_build_with_authority_percent_encoded PASSED [ > 86%] > tests/test_url_build.py::test_build_with_authority_percent_encoded_already_encoded > PASSED [ 87%] > tests/test_url_build.py::test_build_with_authority_with_path_with_leading_slash > PASSED [ 87%] > tests/test_url_build.py::test_build_with_authority_with_empty_path PASSED [ > 87%] > tests/test_url_build.py::test_build_with_authority_with_path_without_leading_slash > PASSED [ 87%] > tests/test_url_build.py::test_build_with_none_path PASSED [ > 87%] > tests/test_url_build.py::test_build_with_none_query_string PASSED [ > 87%] > tests/test_url_build.py::test_build_with_none_fragment PASSED [ > 87%] > tests/test_url_cmp_and_hash.py::test_ne_str PASSED [ > 87%] > tests/test_url_cmp_and_hash.py::test_eq PASSED [ > 87%] > tests/test_url_cmp_and_hash.py::test_hash PASSED [ > 87%] > tests/test_url_cmp_and_hash.py::test_hash_double_call PASSED [ > 87%] > tests/test_url_cmp_and_hash.py::test_le_less PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_le_eq PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_le_not_implemented PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_lt PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_lt_not_implemented PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_ge_more PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_ge_eq PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_ge_not_implemented PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_gt PASSED [ > 88%] > tests/test_url_cmp_and_hash.py::test_gt_not_implemented PASSED [ > 88%] > tests/test_url_parsing.py::TestScheme::test_scheme_path PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_scheme_path_other PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_complex_scheme PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_scheme_only PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_no_scheme1 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_no_scheme2 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_not_a_scheme1 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_not_a_scheme2 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_scheme_rel_path1 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_scheme_rel_path2 PASSED [ > 89%] > tests/test_url_parsing.py::TestScheme::test_scheme_weird PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_canonical PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_absolute_no_scheme PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_absolute_no_scheme_complex_host > PASSED [ 90%] > tests/test_url_parsing.py::TestHost::test_absolute_no_scheme_simple_host > PASSED [ 90%] > tests/test_url_parsing.py::TestHost::test_weird_host PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_scheme_no_host PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_scheme_no_host2 PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_no_scheme_no_host PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_ipv4 PASSED [ > 90%] > tests/test_url_parsing.py::TestHost::test_masked_ipv4 PASSED [ > 91%] > tests/test_url_parsing.py::TestHost::test_ipv6 PASSED [ > 91%] > tests/test_url_parsing.py::TestHost::test_strange_ip PASSED [ > 91%] > tests/test_url_parsing.py::TestHost::test_strange_ip_2 PASSED [ > 91%] > tests/test_url_parsing.py::TestHost::test_strange_ip_3 PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_canonical PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_no_path PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_no_host PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_double_port PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_bad_port PASSED [ > 91%] > tests/test_url_parsing.py::TestPort::test_another_bad_port PASSED [ > 92%] > tests/test_url_parsing.py::TestPort::test_bad_port_again PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_canonical PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_user_pass PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_complex_userinfo PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_no_user PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_weird_user PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_weird_user2 PASSED [ > 92%] > tests/test_url_parsing.py::TestUserInfo::test_weird_user3 PASSED [ > 92%] > tests/test_url_parsing.py::TestQuery_String::test_simple PASSED [ > 92%] > tests/test_url_parsing.py::TestQuery_String::test_scheme_query PASSED [ > 93%] > tests/test_url_parsing.py::TestQuery_String::test_abs_url_query PASSED [ > 93%] > tests/test_url_parsing.py::TestQuery_String::test_abs_url_path_query PASSED [ > 93%] > tests/test_url_parsing.py::TestQuery_String::test_double_question_mark PASSED > [ 93%] > tests/test_url_parsing.py::TestQuery_String::test_complex_query PASSED [ > 93%] > tests/test_url_parsing.py::TestQuery_String::test_query_in_fragment PASSED [ > 93%] > tests/test_url_parsing.py::TestFragment::test_simple PASSED [ > 93%] > tests/test_url_parsing.py::TestFragment::test_scheme_frag PASSED [ > 93%] > tests/test_url_parsing.py::TestFragment::test_host_frag PASSED [ > 93%] > tests/test_url_parsing.py::TestFragment::test_scheme_path_frag PASSED [ > 93%] > tests/test_url_parsing.py::TestFragment::test_scheme_query_frag PASSED [ > 94%] > tests/test_url_parsing.py::TestFragment::test_host_frag_query PASSED [ > 94%] > tests/test_url_parsing.py::TestFragment::test_complex_frag PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_all_empty PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_path_only PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_user PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_port PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_port_and_path > PASSED [ 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_path_only PASSED [ > 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_relative_path_only > PASSED [ 94%] > tests/test_url_parsing.py::TestStripEmptyParts::test_path PASSED [ > 95%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query_with_path > PASSED [ 95%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query PASSED [ > 95%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query_with_frag > PASSED [ 95%] > tests/test_url_parsing.py::TestStripEmptyParts::test_path_empty_frag PASSED [ > 95%] > tests/test_url_parsing.py::TestStripEmptyParts::test_empty_path PASSED [ > 95%] > tests/test_url_query.py::test_query_spaces PASSED [ > 95%] > tests/test_url_query.py::test_query_empty PASSED [ > 95%] > tests/test_url_query.py::test_query PASSED [ > 95%] > tests/test_url_query.py::test_query_repeated_args PASSED [ > 95%] > tests/test_url_query.py::test_query_empty_arg PASSED [ > 96%] > tests/test_url_query.py::test_query_dont_unqoute_twice PASSED [ > 96%] > tests/test_url_query.py::test_query_nonascii PASSED [ > 96%] > tests/test_url_query.py::test_ampersand_as_separator PASSED [ > 96%] > tests/test_url_query.py::test_ampersand_as_value PASSED [ > 96%] > tests/test_url_query.py::test_semicolon_as_separator FAILED [ > 96%] > tests/test_url_query.py::test_semicolon_as_value PASSED [ > 96%] > tests/test_url_update_netloc.py::test_with_scheme PASSED [ > 96%] > tests/test_url_update_netloc.py::test_with_scheme_uppercased PASSED [ > 96%] > tests/test_url_update_netloc.py::test_with_scheme_for_relative_url PASSED [ > 96%] > tests/test_url_update_netloc.py::test_with_scheme_invalid_type PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_non_ascii PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_percent_encoded PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_for_relative_url PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_invalid_type PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_None PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_ipv6 PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_user_None_when_password_present > PASSED [ 97%] > tests/test_url_update_netloc.py::test_with_password PASSED [ > 97%] > tests/test_url_update_netloc.py::test_with_password_ipv6 PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_non_ascii PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_percent_encoded PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_non_ascii_with_colon > PASSED [ 98%] > tests/test_url_update_netloc.py::test_with_password_for_relative_url PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_None PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_invalid_type PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_password_and_empty_user PASSED [ > 98%] > tests/test_url_update_netloc.py::test_from_str_with_host_ipv4 PASSED [ > 98%] > tests/test_url_update_netloc.py::test_from_str_with_host_ipv6 PASSED [ > 98%] > tests/test_url_update_netloc.py::test_with_host PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_host_empty PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_host_non_ascii PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_host_percent_encoded PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_host_for_relative_url PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_host_invalid_type PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_port PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_port_ipv6 PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_port_keeps_query_and_fragment > PASSED [ 99%] > tests/test_url_update_netloc.py::test_with_port_for_relative_url PASSED [ > 99%] > tests/test_url_update_netloc.py::test_with_port_invalid_type PASSED > [100%] > > =================================== FAILURES > =================================== > _________________________ test_semicolon_as_separator > __________________________ > > def test_semicolon_as_separator(): > u = URL("http://127.0.0.1/?a=1;b=2") > > assert len(u.query) == 2 > E assert 1 == 2 > E +1 > E -2 > > tests/test_url_query.py:67: AssertionError > > ----------- coverage: platform linux, python 3.9.2-final-0 ----------- > Name Stmts Miss Cover > ----------------------------------------- > yarl/__init__.py 3 0 100% > yarl/_quoting.py 10 2 80% > yarl/_quoting_py.py 155 0 100% > yarl/_url.py 569 22 96% > ----------------------------------------- > TOTAL 737 24 97% > > =========================== short test summary info > ============================ > FAILED tests/test_url_query.py::test_semicolon_as_separator - assert 1 == 2 > ================== 1 failed, 1005 passed, 2 xfailed in 2.33s > =================== > E: pybuild pybuild:353: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_yarl/build; python3.9 -m pytest tests > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.9 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2021/04/06/yarl_1.6.3-1_testing.log A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please marking it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime. About the archive rebuild: The rebuild was done on EC2 VM instances from Amazon Web Services, using a clean, minimal and up-to-date chroot. Every failed build was retried once to eliminate random failures.