Your message dated Sun, 25 Apr 2021 18:03:24 +0000
with message-id <[email protected]>
and subject line Bug#986525: fixed in yarl 1.6.3-2
has caused the Debian Bug report #986525,
regarding yarl: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i 
python{version} -p 3.9 returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
986525: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986525
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
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.

--- End Message ---
--- Begin Message ---
Source: yarl
Source-Version: 1.6.3-2
Done: Piotr Ożarowski <[email protected]>

We believe that the bug you reported is fixed in the latest version of
yarl, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Piotr Ożarowski <[email protected]> (supplier of updated yarl package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 25 Apr 2021 19:44:36 +0200
Source: yarl
Architecture: source
Version: 1.6.3-2
Distribution: unstable
Urgency: medium
Maintainer: Piotr Ożarowski <[email protected]>
Changed-By: Piotr Ożarowski <[email protected]>
Closes: 986525
Changes:
 yarl (1.6.3-2) unstable; urgency=medium
 .
   [ Sandro Tosi ]
   * Use the new Debian Python Team contact name and address
 .
   [ Roland Mas ]
   * Fix failing test with Python 3.9.2 (closes: #986525).
Checksums-Sha1:
 79674e4b2eca76b2b1650eda6e5cb48692b49339 2219 yarl_1.6.3-2.dsc
 de0c4a661feeb2f5234740429d9533062464459f 5692 yarl_1.6.3-2.debian.tar.xz
 477d5047b744d0ca7e8c0da3e889eac3c3778a6d 9050 yarl_1.6.3-2_amd64.buildinfo
Checksums-Sha256:
 881cc3b706a3983e7d62b42b3aacb729c13f76a2b26d0a8943d2b779b51d5f2a 2219 
yarl_1.6.3-2.dsc
 e3a3eb5441b63aa2ca2d0f5b441e408edb50d5132dcd981ce1abae0857b82b7a 5692 
yarl_1.6.3-2.debian.tar.xz
 668eed8385940055f8e3ba2ca409b8614157aa577793e58812c8bf2492e35d38 9050 
yarl_1.6.3-2_amd64.buildinfo
Files:
 004f7e435ababa73a59db2f396c6b3bf 2219 python optional yarl_1.6.3-2.dsc
 408d3e4743155b2f67bc7c8132a68b93 5692 python optional 
yarl_1.6.3-2.debian.tar.xz
 92410de44da21e0f6e7316cd8152b638 9050 python optional 
yarl_1.6.3-2_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEHS+omFjar2IXhi33rvbxoqdFdkUFAmCFqz4ACgkQrvbxoqdF
dkWhBw/+LN0YlWWZWbWrl3sLYJ6A6UctRMx9t9rSQj22CNADvApwDwHv4lQPyJxt
i9410EymNBgABShl/zTWJCe2Qqjhgt/bwx3a31uk/QE90OJBvpK9h56dpNOcH2vH
oVkHl0UA7uxoUb5z4ccuO5pn4Jsbvw0otSBkd/zMuWjKQWYQKU0SF0kflV2Qeimz
G7nK1SdgM+AQzX5iltL+IHGUyxQqfm/NgXhpNqbxq7KR4nrlWOPBWWi+vbL7PXhV
/wjU4jpIMwjfOBBMyFsMhbSSIEZiqwu5WCEKbKJ3XdWNSu0s6GLxnEs/ODM8xjxx
c+min0eoWI0532id1VxyaabXRopolpl74+6N5nXHx5C899XMfMhT69dILUCXV2kv
kaLxJRCz4tUojgVYDakLJ0If2AaFEfxgUURO6LHGB6Id2wctyKZUg679z9HZmQch
zvtPiQN3IUEjxk0QHbkbFGtYZ/fF6MAl4s50LBBca6/AVfcNl+KGFH2tAWwdkNqs
NilxYv5lG9D/xjg5CTovOjNAMFwtQqLvIuS8Q/cJIhLG5UNvS1v2XK7yD3OB1wny
3bk1s9xC/8zLs6GFsyoXUmHEgQQ0vqgJhiu3LMJk4AgiJx+ZgNv28vc5WoQWnk1f
bxKDe7Iq8AcOOE0c3fLY4iPHEhB0vCd23+CuCoio9rAo2eUXtLc=
=Tkum
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to