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.

Reply via email to