============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON) cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('$(@D)/.hypothesis/examples')) rootdir: $(@D) configfile: pytest.ini testpaths: tests/ X workers [1371 items] scheduling tests via LoadScheduling tests/test_cache.py::test_cache_clear PASSED tests/test_cache.py::test_cache_configure_None PASSED tests/test_cache.py::test_cache_configure_None_including_deprecated PASSED tests/test_cache.py::test_cache_configure_None_only_deprecated PASSED tests/test_cache.py::test_cache_configure_default PASSED tests/test_cache.py::test_cache_configure_explicit PASSED tests/test_cache.py::test_cache_configure_waring PASSED tests/test_cache.py::test_cache_info PASSED tests/test_cached_property.py::test_reify PASSED tests/test_cached_property.py::test_reify_assignment PASSED tests/test_cached_property.py::test_reify_class PASSED tests/test_normalize_path.py::test__normalize_path[-] PASSED tests/test_normalize_path.py::test__normalize_path[../path/to-path/to] PASSED tests/test_normalize_path.py::test__normalize_path[././path/to-path/to] PASSED tests/test_normalize_path.py::test__normalize_path[/-/] PASSED tests/test_normalize_path.py::test__normalize_path[//-//] PASSED tests/test_normalize_path.py::test__normalize_path[///-///] PASSED tests/test_normalize_path.py::test__normalize_path[/foo/../../../..bar-/..bar] PASSED tests/test_normalize_path.py::test__normalize_path[/foo/../../../ton-/ton] PASSED tests/test_normalize_path.py::test__normalize_path[/path/to/.-/path/to/] PASSED tests/test_normalize_path.py::test__normalize_path[\u03bc\u03bf\u03bd\u03bf\u03c0\u03ac\u03c4\u03b9/../../\u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/.-\u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/] PASSED tests/test_normalize_path.py::test__normalize_path[\u03bc\u03bf\u03bd\u03bf\u03c0\u03ac\u03c4\u03b9/../../\u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07-\u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07] PASSED tests/test_normalize_path.py::test__normalize_path[path-path] PASSED tests/test_normalize_path.py::test__normalize_path[path/../../to-to] PASSED tests/test_normalize_path.py::test__normalize_path[path/../to-to] PASSED tests/test_normalize_path.py::test__normalize_path[path/././to-path/to] PASSED tests/test_normalize_path.py::test__normalize_path[path/./to-path/to] PASSED tests/test_normalize_path.py::test__normalize_path[path/to-path/to] PASSED tests/test_normalize_path.py::test__normalize_path[path/to/.-path/to/] PASSED tests/test_normalize_path.py::test__normalize_path[path/to/./.-path/to/] PASSED tests/test_pickle.py::test_default_style_state PASSED tests/test_pickle.py::test_empty_url_is_not_cached PASSED tests/test_pickle.py::test_pickle PASSED tests/test_pickle.py::test_pickle_does_not_pollute_cache PASSED tests/test_quoting.py::test_default_quoting[c_quoter-"] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-#] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-<] PASSED tests/test_quoting.py::test_default_quoting[c_quoter->] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-[] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\\] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\n] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\r] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\t] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x00] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x01] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x02] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x03] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x04] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x05] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x06] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x07] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x08] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x0b] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x0c] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x0e] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x0f] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x10] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x11] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x12] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x13] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x14] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x15] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x16] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x17] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x18] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x19] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1a] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1b] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1c] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1d] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1e] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x1f] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-\x7f] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-]] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-^] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-`] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-{] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-|] PASSED tests/test_quoting.py::test_default_quoting[c_quoter-}] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-"] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-#] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-<] PASSED tests/test_quoting.py::test_default_quoting[py_quoter->] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-[] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\\] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\n] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\r] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\t] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x00] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x01] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x02] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x03] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x04] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x05] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x06] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x07] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x08] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x0b] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x0c] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x0e] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x0f] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x10] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x11] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x12] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x13] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x14] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x15] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x16] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x17] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x18] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x19] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1a] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1b] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1c] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1d] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1e] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x1f] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-\x7f] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-]] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-^] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-`] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-{] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-|] PASSED tests/test_quoting.py::test_default_quoting[py_quoter-}] PASSED tests/test_quoting.py::test_default_quoting_partial[c_quoter] PASSED tests/test_quoting.py::test_default_quoting_partial[py_quoter] PASSED tests/test_quoting.py::test_default_quoting_percent[c_quoter] PASSED tests/test_quoting.py::test_default_quoting_percent[py_quoter] PASSED tests/test_quoting.py::test_fuzz__PyQuoter PASSED tests/test_quoting.py::test_fuzz__PyUnquoter PASSED tests/test_quoting.py::test_never_quote[c_quoter] PASSED tests/test_quoting.py::test_never_quote[py_quoter] PASSED tests/test_quoting.py::test_quote_None[c_quoter] PASSED tests/test_quoting.py::test_quote_None[py_quoter] PASSED tests/test_quoting.py::test_quote_all_percent[c_quoter] PASSED tests/test_quoting.py::test_quote_all_percent[py_quoter] PASSED tests/test_quoting.py::test_quote_bad_types[c_quoter] PASSED tests/test_quoting.py::test_quote_bad_types[py_quoter] PASSED tests/test_quoting.py::test_quote_empty_string[c_quoter] PASSED tests/test_quoting.py::test_quote_empty_string[py_quoter] PASSED tests/test_quoting.py::test_quote_ends_with_percent[c_quoter] PASSED tests/test_quoting.py::test_quote_ends_with_percent[py_quoter] PASSED tests/test_quoting.py::test_quote_fastpath_pct[c_quoter] PASSED tests/test_quoting.py::test_quote_fastpath_pct[py_quoter] PASSED tests/test_quoting.py::test_quote_fastpath_safe[c_quoter] PASSED tests/test_quoting.py::test_quote_fastpath_safe[py_quoter] PASSED tests/test_quoting.py::test_quote_from_bytes[c_quoter] PASSED tests/test_quoting.py::test_quote_from_bytes[py_quoter] PASSED tests/test_quoting.py::test_quote_ignore_broken_unicode[c_quoter] PASSED tests/test_quoting.py::test_quote_ignore_broken_unicode[py_quoter] PASSED tests/test_quoting.py::test_quote_lowercase[c_quoter] PASSED tests/test_quoting.py::test_quote_lowercase[py_quoter] PASSED tests/test_quoting.py::test_quote_non_ascii2[c_quoter] PASSED tests/test_quoting.py::test_quote_non_ascii2[py_quoter] PASSED tests/test_quoting.py::test_quote_non_ascii[c_quoter] PASSED tests/test_quoting.py::test_quote_non_ascii[py_quoter] PASSED tests/test_quoting.py::test_quote_not_allowed_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_not_allowed_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_digit_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_digit_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_last_character[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_last_character[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii2_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii2_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii3_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii3_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_non_ascii_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_safe_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_safe_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_percent_unsafe_percent_encoded[c_quoter] PASSED tests/test_quoting.py::test_quote_percent_unsafe_percent_encoded[py_quoter] PASSED tests/test_quoting.py::test_quote_plus_with_unicode[c_quoter] PASSED tests/test_quoting.py::test_quote_plus_with_unicode[py_quoter] PASSED tests/test_quoting.py::test_quote_protected[c_quoter] PASSED tests/test_quoting.py::test_quote_protected[py_quoter] PASSED tests/test_quoting.py::test_quote_qs_with_colon[c_quoter] PASSED tests/test_quoting.py::test_quote_qs_with_colon[py_quoter] PASSED tests/test_quoting.py::test_quote_space[c_quoter] PASSED tests/test_quoting.py::test_quote_space[py_quoter] PASSED tests/test_quoting.py::test_quote_starts_with_percent[c_quoter] PASSED tests/test_quoting.py::test_quote_starts_with_percent[py_quoter] PASSED tests/test_quoting.py::test_quote_str_like[c_quoter] PASSED tests/test_quoting.py::test_quote_str_like[py_quoter] PASSED tests/test_quoting.py::test_quote_sub_delims[c_quoter] PASSED tests/test_quoting.py::test_quote_sub_delims[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_digit_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_digit_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii2_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii2_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii3_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii3_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_non_ascii_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_percent_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_percent_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_safe_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_safe_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_unsafe_non_strict[c_quoter] PASSED tests/test_quoting.py::test_quote_unfinished_tail_unsafe_non_strict[py_quoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter[CUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter[CUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter[PyUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter[PyUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_path_safe[CUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_path_safe[CUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_path_safe[PyUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_path_safe[PyUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_requote[CUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_requote[CUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_requote[PyUnquoter-CQuoter] PASSED tests/test_quoting.py::test_quote_unquote_parameter_requote[PyUnquoter-PyQuoter] PASSED tests/test_quoting.py::test_quote_unquoted[c_quoter] PASSED tests/test_quoting.py::test_quote_unquoted[py_quoter] PASSED tests/test_quoting.py::test_quote_very_large_string[c_quoter] PASSED tests/test_quoting.py::test_quote_very_large_string[py_quoter] PASSED tests/test_quoting.py::test_quote_with_unicode[c_quoter] PASSED tests/test_quoting.py::test_quote_with_unicode[py_quoter] PASSED tests/test_quoting.py::test_quoter_path_with_plus[c_quoter] PASSED tests/test_quoting.py::test_quoter_path_with_plus[py_quoter] PASSED tests/test_quoting.py::test_quoting_plus[c_quoter] PASSED tests/test_quoting.py::test_quoting_plus[py_quoter] PASSED tests/test_quoting.py::test_quoting_space[c_quoter] PASSED tests/test_quoting.py::test_quoting_space[py_quoter] PASSED tests/test_quoting.py::test_requote_sub_delims[c_quoter] PASSED tests/test_quoting.py::test_requote_sub_delims[py_quoter] PASSED tests/test_quoting.py::test_safe[c_quoter] PASSED tests/test_quoting.py::test_safe[py_quoter] PASSED tests/test_quoting.py::test_space[c_quoter] PASSED tests/test_quoting.py::test_space[py_quoter] PASSED tests/test_quoting.py::test_unquote_None[c_unquoter] PASSED tests/test_quoting.py::test_unquote_None[py_unquoter] PASSED tests/test_quoting.py::test_unquote_bad_types[c_unquoter] PASSED tests/test_quoting.py::test_unquote_bad_types[py_unquoter] PASSED tests/test_quoting.py::test_unquote_empty_string[c_unquoter] PASSED tests/test_quoting.py::test_unquote_empty_string[py_unquoter] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%2b-%e2%82+] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%e2%82%ac-%e2%82\u20ac] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%e2%82-%e2%82%e2%82] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82%f8-%e2%82%f8] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82-%e2%82] PASSED tests/test_quoting.py::test_unquote_non_utf8[c_unquoter-%e2%82ac-%e2%82ac] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%2b-%e2%82+] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%e2%82%ac-%e2%82\u20ac] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%e2%82-%e2%82%e2%82] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82%f8-%e2%82%f8] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82-%e2%82] PASSED tests/test_quoting.py::test_unquote_non_utf8[py_unquoter-%e2%82ac-%e2%82ac] PASSED tests/test_quoting.py::test_unquote_plus_non_utf8[c_unquoter] PASSED tests/test_quoting.py::test_unquote_plus_non_utf8[py_unquoter] PASSED tests/test_quoting.py::test_unquote_plus_to_space[c_unquoter] PASSED tests/test_quoting.py::test_unquote_plus_to_space[py_unquoter] PASSED tests/test_quoting.py::test_unquote_plus_to_space_unsafe[c_unquoter] PASSED tests/test_quoting.py::test_unquote_plus_to_space_unsafe[py_unquoter] PASSED tests/test_quoting.py::test_unquote_str_like[c_unquoter] PASSED tests/test_quoting.py::test_unquote_str_like[py_unquoter] PASSED tests/test_quoting.py::test_unquote_to_bytes[c_unquoter] PASSED tests/test_quoting.py::test_unquote_to_bytes[py_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe2[c_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe2[py_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe3[c_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe3[py_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe4[c_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe4[py_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe[c_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe[py_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe_non_utf8[c_unquoter] PASSED tests/test_quoting.py::test_unquote_unsafe_non_utf8[py_unquoter] PASSED tests/test_quoting.py::test_unquoter_path_with_plus[c_unquoter] PASSED tests/test_quoting.py::test_unquoter_path_with_plus[py_unquoter] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-0] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-100] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-101] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-102] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-103] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-104] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-105] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-106] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-107] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-108] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-109] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-10] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-110] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-111] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-112] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-113] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-114] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-115] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-116] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-117] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-118] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-119] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-11] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-120] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-121] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-122] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-123] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-124] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-125] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-126] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-127] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-12] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-13] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-14] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-15] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-16] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-17] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-18] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-19] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-1] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-20] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-21] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-22] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-23] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-24] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-25] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-26] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-27] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-28] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-29] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-2] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-30] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-31] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-32] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-33] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-34] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-35] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-36] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-37] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-38] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-39] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-3] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-40] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-41] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-42] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-43] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-44] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-45] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-46] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-47] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-48] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-49] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-4] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-50] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-51] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-52] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-53] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-54] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-55] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-56] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-57] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-58] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-59] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-5] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-60] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-61] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-62] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-63] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-64] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-65] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-66] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-67] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-68] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-69] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-6] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-70] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-71] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-72] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-73] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-74] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-75] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-76] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-77] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-78] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-79] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-7] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-80] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-81] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-82] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-83] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-84] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-85] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-86] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-87] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-88] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-89] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-8] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-90] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-91] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-92] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-93] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-94] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-95] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-96] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-97] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-98] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-99] PASSED tests/test_quoting.py::test_unquoting[c_unquoter-9] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-0] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-100] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-101] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-102] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-103] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-104] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-105] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-106] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-107] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-108] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-109] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-10] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-110] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-111] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-112] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-113] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-114] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-115] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-116] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-117] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-118] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-119] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-11] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-120] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-121] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-122] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-123] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-124] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-125] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-126] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-127] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-12] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-13] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-14] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-15] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-16] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-17] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-18] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-19] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-1] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-20] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-21] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-22] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-23] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-24] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-25] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-26] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-27] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-28] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-29] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-2] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-30] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-31] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-32] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-33] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-34] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-35] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-36] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-37] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-38] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-39] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-3] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-40] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-41] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-42] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-43] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-44] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-45] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-46] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-47] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-48] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-49] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-4] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-50] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-51] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-52] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-53] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-54] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-55] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-56] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-57] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-58] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-59] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-5] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-60] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-61] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-62] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-63] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-64] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-65] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-66] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-67] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-68] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-69] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-6] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-70] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-71] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-72] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-73] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-74] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-75] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-76] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-77] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-78] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-79] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-7] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-80] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-81] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-82] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-83] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-84] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-85] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-86] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-87] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-88] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-89] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-8] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-90] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-91] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-92] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-93] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-94] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-95] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-96] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-97] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-98] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-99] PASSED tests/test_quoting.py::test_unquoting[py_unquoter-9] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-% 2-% 2] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%%-%%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%%3f-%?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%-%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2 -%2 ] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2%-%2%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2%3f-%2?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2-%2] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%2x-%2x] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%\u20ac%3f-%\u20ac?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%\u20ac-%\u20ac] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%x%3f-%x?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%x-%x] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[c_unquoter-%xa-%xa] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-% 2-% 2] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%%-%%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%%3f-%?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%-%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2 -%2 ] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2%-%2%] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2%3f-%2?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2-%2] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%2x-%2x] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%\u20ac%3f-%\u20ac?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%\u20ac-%\u20ac] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%x%3f-%x?] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%x-%x] PASSED tests/test_quoting.py::test_unquoting_bad_percent_escapes[py_unquoter-%xa-%xa] PASSED tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[c_unquoter-%AB%AB] XFAIL tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[c_unquoter-%AB] XFAIL tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[py_unquoter-%AB%AB] XFAIL tests/test_quoting.py::test_unquoting_invalid_utf8_sequence[py_unquoter-%AB] XFAIL tests/test_quoting.py::test_unquoting_mixed_case_percent_escapes[c_unquoter] PASSED tests/test_quoting.py::test_unquoting_mixed_case_percent_escapes[py_unquoter] PASSED tests/test_quoting.py::test_unquoting_parts[c_unquoter] PASSED tests/test_quoting.py::test_unquoting_parts[py_unquoter] PASSED tests/test_quoting.py::test_unquoting_plus[c_unquoter] PASSED tests/test_quoting.py::test_unquoting_plus[py_unquoter] PASSED tests/test_update_query.py::test_extend_query PASSED tests/test_update_query.py::test_extend_query_existing_keys PASSED tests/test_update_query.py::test_extend_query_with_args_and_kwargs PASSED tests/test_update_query.py::test_extend_query_with_args_and_kwargs_with_existing PASSED tests/test_update_query.py::test_extend_query_with_empty_dict PASSED tests/test_update_query.py::test_extend_query_with_multiple_args PASSED tests/test_update_query.py::test_extend_query_with_non_ascii PASSED tests/test_update_query.py::test_extend_query_with_non_ascii_as_str PASSED tests/test_update_query.py::test_extend_query_with_non_ascii_same_key PASSED tests/test_update_query.py::test_extend_query_with_none_arg PASSED tests/test_update_query.py::test_update_query PASSED tests/test_update_query.py::test_update_query_multiple_keys PASSED tests/test_update_query.py::test_update_query_with_args_and_kwargs PASSED tests/test_update_query.py::test_update_query_with_empty_dict PASSED tests/test_update_query.py::test_update_query_with_mod_operator PASSED tests/test_update_query.py::test_update_query_with_multiple_args PASSED tests/test_update_query.py::test_update_query_with_non_ascii PASSED tests/test_update_query.py::test_update_query_with_non_ascii_as_str PASSED tests/test_update_query.py::test_update_query_with_none_arg PASSED tests/test_update_query.py::test_with_class_that_implements__int__ PASSED tests/test_update_query.py::test_with_float_enum PASSED tests/test_update_query.py::test_with_int_enum PASSED tests/test_update_query.py::test_with_multidict_with_spaces_and_non_ascii PASSED tests/test_update_query.py::test_with_query PASSED tests/test_update_query.py::test_with_query_None PASSED tests/test_update_query.py::test_with_query_bad_type PASSED tests/test_update_query.py::test_with_query_bytearray PASSED tests/test_update_query.py::test_with_query_bytes PASSED tests/test_update_query.py::test_with_query_complex_url PASSED tests/test_update_query.py::test_with_query_empty_dict PASSED tests/test_update_query.py::test_with_query_empty_str PASSED tests/test_update_query.py::test_with_query_empty_value PASSED tests/test_update_query.py::test_with_query_int PASSED tests/test_update_query.py::test_with_query_invalid_type[NaN float] PASSED tests/test_update_query.py::test_with_query_invalid_type[bool] PASSED tests/test_update_query.py::test_with_query_invalid_type[non-finite float] PASSED tests/test_update_query.py::test_with_query_invalid_type[none] PASSED tests/test_update_query.py::test_with_query_kwargs PASSED tests/test_update_query.py::test_with_query_kwargs_and_args_are_mutually_exclusive PASSED tests/test_update_query.py::test_with_query_kwargs_int PASSED tests/test_update_query.py::test_with_query_list_int PASSED tests/test_update_query.py::test_with_query_list_invalid_type[bool] PASSED tests/test_update_query.py::test_with_query_list_invalid_type[none] PASSED tests/test_update_query.py::test_with_query_list_non_pairs PASSED tests/test_update_query.py::test_with_query_list_of_pairs PASSED tests/test_update_query.py::test_with_query_list_valid_type[custom float] PASSED tests/test_update_query.py::test_with_query_list_valid_type[custom int] PASSED tests/test_update_query.py::test_with_query_list_valid_type[custom str] PASSED tests/test_update_query.py::test_with_query_list_valid_type[float] PASSED tests/test_update_query.py::test_with_query_list_valid_type[int] PASSED tests/test_update_query.py::test_with_query_list_valid_type[str] PASSED tests/test_update_query.py::test_with_query_memoryview PASSED tests/test_update_query.py::test_with_query_multidict PASSED tests/test_update_query.py::test_with_query_multidict_with_unsafe PASSED tests/test_update_query.py::test_with_query_only PASSED tests/test_update_query.py::test_with_query_only_single_arg_is_supported PASSED tests/test_update_query.py::test_with_query_params[mapping ampersand] PASSED tests/test_update_query.py::test_with_query_params[mapping quote key] PASSED tests/test_update_query.py::test_with_query_params[mapping semicolon] PASSED tests/test_update_query.py::test_with_query_params[quote many key braces] PASSED tests/test_update_query.py::test_with_query_params[quote one key braces] PASSED tests/test_update_query.py::test_with_query_params[tuple list ampersand] PASSED tests/test_update_query.py::test_with_query_params[tuple list quote key] PASSED tests/test_update_query.py::test_with_query_params[tuple list semicolon] PASSED tests/test_update_query.py::test_with_query_sequence[ampersand then int] PASSED tests/test_update_query.py::test_with_query_sequence[empty list] PASSED tests/test_update_query.py::test_with_query_sequence[empty tuple] PASSED tests/test_update_query.py::test_with_query_sequence[int then ampersand] PASSED tests/test_update_query.py::test_with_query_sequence[key with braces] PASSED tests/test_update_query.py::test_with_query_sequence[list then single] PASSED tests/test_update_query.py::test_with_query_sequence[list] PASSED tests/test_update_query.py::test_with_query_sequence[mixed types] PASSED tests/test_update_query.py::test_with_query_sequence[quote key and value] PASSED tests/test_update_query.py::test_with_query_sequence[quote key] PASSED tests/test_update_query.py::test_with_query_sequence[single list] PASSED tests/test_update_query.py::test_with_query_sequence[single then list] PASSED tests/test_update_query.py::test_with_query_sequence[single tuple] PASSED tests/test_update_query.py::test_with_query_sequence[tuple] PASSED tests/test_update_query.py::test_with_query_sequence_invalid_use[nested] PASSED tests/test_update_query.py::test_with_query_sequence_invalid_use[tuple list] PASSED tests/test_update_query.py::test_with_query_str PASSED tests/test_update_query.py::test_with_query_str_non_ascii_and_spaces PASSED tests/test_update_query.py::test_with_query_valid_type[custom float] PASSED tests/test_update_query.py::test_with_query_valid_type[custom int] PASSED tests/test_update_query.py::test_with_query_valid_type[custom str] PASSED tests/test_update_query.py::test_with_query_valid_type[float] PASSED tests/test_update_query.py::test_with_query_valid_type[int] PASSED tests/test_update_query.py::test_with_query_valid_type[str] PASSED tests/test_url.py::test_abs_cmp PASSED tests/test_url.py::test_abs_hash PASSED tests/test_url.py::test_absolute_url_without_host PASSED tests/test_url.py::test_authority_full PASSED tests/test_url.py::test_authority_full_nonasci PASSED tests/test_url.py::test_authority_short PASSED tests/test_url.py::test_authority_unknown_scheme PASSED tests/test_url.py::test_bool PASSED tests/test_url.py::test_build_with_invalid_ipv6_host[other_gen_delim_[-False] PASSED tests/test_url.py::test_build_with_invalid_ipv6_host[other_gen_delim_]-False] PASSED tests/test_url.py::test_bytes PASSED tests/test_url.py::test_clear_fragment_on_getting_parent PASSED tests/test_url.py::test_clear_fragment_on_getting_parent_toplevel PASSED tests/test_url.py::test_clear_query_on_getting_parent PASSED tests/test_url.py::test_clear_query_on_getting_parent_toplevel PASSED tests/test_url.py::test_compressed_ipv6 PASSED tests/test_url.py::test_control_chars_are_removed[ ] PASSED tests/test_url.py::test_control_chars_are_removed[\n] PASSED tests/test_url.py::test_control_chars_are_removed[\r] PASSED tests/test_url.py::test_control_chars_are_removed[\t] PASSED tests/test_url.py::test_control_chars_are_removed[\x00] PASSED tests/test_url.py::test_control_chars_are_removed[\x01] PASSED tests/test_url.py::test_control_chars_are_removed[\x02] PASSED tests/test_url.py::test_control_chars_are_removed[\x03] PASSED tests/test_url.py::test_control_chars_are_removed[\x04] PASSED tests/test_url.py::test_control_chars_are_removed[\x05] PASSED tests/test_url.py::test_control_chars_are_removed[\x06] PASSED tests/test_url.py::test_control_chars_are_removed[\x07] PASSED tests/test_url.py::test_control_chars_are_removed[\x08] PASSED tests/test_url.py::test_control_chars_are_removed[\x0b] PASSED tests/test_url.py::test_control_chars_are_removed[\x0c] PASSED tests/test_url.py::test_control_chars_are_removed[\x0e] PASSED tests/test_url.py::test_control_chars_are_removed[\x0f] PASSED tests/test_url.py::test_control_chars_are_removed[\x10] PASSED tests/test_url.py::test_control_chars_are_removed[\x11] PASSED tests/test_url.py::test_control_chars_are_removed[\x12] PASSED tests/test_url.py::test_control_chars_are_removed[\x13] PASSED tests/test_url.py::test_control_chars_are_removed[\x14] PASSED tests/test_url.py::test_control_chars_are_removed[\x15] PASSED tests/test_url.py::test_control_chars_are_removed[\x16] PASSED tests/test_url.py::test_control_chars_are_removed[\x17] PASSED tests/test_url.py::test_control_chars_are_removed[\x18] PASSED tests/test_url.py::test_control_chars_are_removed[\x19] PASSED tests/test_url.py::test_control_chars_are_removed[\x1a] PASSED tests/test_url.py::test_control_chars_are_removed[\x1b] PASSED tests/test_url.py::test_control_chars_are_removed[\x1c] PASSED tests/test_url.py::test_control_chars_are_removed[\x1d] PASSED tests/test_url.py::test_control_chars_are_removed[\x1e] PASSED tests/test_url.py::test_control_chars_are_removed[\x1f] PASSED tests/test_url.py::test_decode_pct_in_path PASSED tests/test_url.py::test_decode_pct_in_path_lower_case PASSED tests/test_url.py::test_decoding_with_26_and_3D_in_query PASSED tests/test_url.py::test_decoding_with_2F_in_path PASSED tests/test_url.py::test_div PASSED tests/test_url.py::test_div_bad_type PASSED tests/test_url.py::test_div_cleanup_query_and_fragment PASSED tests/test_url.py::test_div_for_empty_url PASSED tests/test_url.py::test_div_for_relative_url PASSED tests/test_url.py::test_div_for_relative_url_started_with_slash PASSED tests/test_url.py::test_div_non_ascii PASSED tests/test_url.py::test_div_path_srting_subclass PASSED tests/test_url.py::test_div_path_starting_from_slash_is_forbidden PASSED tests/test_url.py::test_div_percent_encoded PASSED tests/test_url.py::test_div_root PASSED tests/test_url.py::test_div_root_with_slash PASSED tests/test_url.py::test_div_with_colon_and_at PASSED tests/test_url.py::test_div_with_dots PASSED tests/test_url.py::test_div_with_slash PASSED tests/test_url.py::test_double_parent_raw_path PASSED tests/test_url.py::test_drop_dots PASSED tests/test_url.py::test_empty_authority PASSED tests/test_url.py::test_empty_parent_raw_path PASSED tests/test_url.py::test_empty_parent_raw_path2 PASSED tests/test_url.py::test_empty_password_without_user PASSED tests/test_url.py::test_empty_value_for_query PASSED tests/test_url.py::test_explicit_port_for_explicit_port PASSED tests/test_url.py::test_explicit_port_for_implicit_port PASSED tests/test_url.py::test_explicit_port_for_relative_url PASSED tests/test_url.py::test_explicit_port_for_unknown_scheme PASSED tests/test_url.py::test_explicit_zero_port PASSED tests/test_url.py::test_fragment_non_ascii PASSED tests/test_url.py::test_fragment_only_url PASSED tests/test_url.py::test_from_ascii_fragment PASSED tests/test_url.py::test_from_ascii_login PASSED tests/test_url.py::test_from_ascii_login_and_password PASSED tests/test_url.py::test_from_ascii_path PASSED tests/test_url.py::test_from_ascii_path_lower_case PASSED tests/test_url.py::test_from_ascii_query_parts PASSED tests/test_url.py::test_from_bytes_with_non_ascii_fragment PASSED tests/test_url.py::test_from_idna PASSED tests/test_url.py::test_from_non_allowed PASSED tests/test_url.py::test_from_non_ascii_login PASSED tests/test_url.py::test_from_non_ascii_login_and_password PASSED tests/test_url.py::test_from_non_ascii_path PASSED tests/test_url.py::test_from_non_ascii_query_parts PASSED tests/test_url.py::test_from_non_ascii_query_parts2 PASSED tests/test_url.py::test_handling_port_zero PASSED tests/test_url.py::test_host_non_ascii PASSED tests/test_url.py::test_host_port_subcomponent[/-None] PASSED tests/test_url.py::test_host_port_subcomponent[http://[::1]-[::1]] PASSED tests/test_url.py::test_host_port_subcomponent[http://[::1]:8080-[::1]:8080] PASSED tests/test_url.py::test_host_port_subcomponent[http://example.com-example.com] PASSED tests/test_url.py::test_host_port_subcomponent[http://example.com.-example.com] PASSED tests/test_url.py::test_host_port_subcomponent[http://example.com:80-example.com] PASSED tests/test_url.py::test_host_port_subcomponent[http://example.com:8080-example.com:8080] PASSED tests/test_url.py::test_host_port_subcomponent[http://xn--gnter-4ya.com-xn--gnter-4ya.com] PASSED tests/test_url.py::test_host_port_subcomponent[https://example.com.-example.com] PASSED tests/test_url.py::test_host_subcomponent[[::1]] PASSED tests/test_url.py::test_host_subcomponent[example.com] PASSED tests/test_url.py::test_host_subcomponent[xn--gnter-4ya.com] PASSED tests/test_url.py::test_host_subcomponent_return_idna_encoded_host PASSED tests/test_url.py::test_host_with_underscore PASSED tests/test_url.py::test_human_repr PASSED tests/test_url.py::test_human_repr_default_port PASSED tests/test_url.py::test_human_repr_defaults PASSED tests/test_url.py::test_human_repr_delimiters PASSED tests/test_url.py::test_human_repr_ipv6 PASSED tests/test_url.py::test_human_repr_non_printable PASSED tests/test_url.py::test_inheritance PASSED tests/test_url.py::test_invalid_idna_a_label_encoding PASSED tests/test_url.py::test_invalid_idna_hyphen_encoding PASSED tests/test_url.py::test_ipfuture_brackets_not_allowed PASSED tests/test_url.py::test_ipv4_brackets_not_allowed PASSED tests/test_url.py::test_ipv4_zone PASSED tests/test_url.py::test_ipv6_missing_left_bracket PASSED tests/test_url.py::test_ipv6_missing_right_bracket PASSED tests/test_url.py::test_is PASSED tests/test_url.py::test_is_absolute_for_absolute_url PASSED tests/test_url.py::test_is_absolute_for_relative_url PASSED tests/test_url.py::test_is_absolute_path_starting_from_double_slash PASSED tests/test_url.py::test_is_default_port_for_absolute_url_with_default_port PASSED tests/test_url.py::test_is_default_port_for_absolute_url_with_nondefault_port PASSED tests/test_url.py::test_is_default_port_for_absolute_url_without_port PASSED tests/test_url.py::test_is_default_port_for_relative_url PASSED tests/test_url.py::test_is_default_port_for_unknown_scheme PASSED tests/test_url.py::test_is_non_absolute_for_empty_url PASSED tests/test_url.py::test_is_non_absolute_for_empty_url2 PASSED tests/test_url.py::test_join PASSED tests/test_url.py::test_join_absolute PASSED tests/test_url.py::test_join_cpython_urljoin[-http://a/./g-http://a/./g] PASSED tests/test_url.py::test_join_cpython_urljoin[-http://a/b/c/g?y/./x-http://a/b/c/g?y/./x] PASSED tests/test_url.py::test_join_cpython_urljoin[a-b-b] PASSED tests/test_url.py::test_join_cpython_urljoin[a/-b-a/b] PASSED tests/test_url.py::test_join_cpython_urljoin[a/b-c-a/c] PASSED tests/test_url.py::test_join_cpython_urljoin[a/b/-c-a/b/c] PASSED tests/test_url.py::test_join_cpython_urljoin[http:///-..-http:///] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/-../../f/g/-http://a/f/g/] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/-foo-http://a/b/c/d/foo] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/e-../../f/g/-http://a/b/f/g/] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/e-/../../f/g/-http://a/f/g/] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/e/-../../f/g-http://a/b/c/f/g] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/e/-../../f/g/-http://a/b/c/f/g/] PASSED tests/test_url.py::test_join_cpython_urljoin[http://a/b/c/d/e/-/../../f/g/-http://a/f/g/] PASSED tests/test_url.py::test_join_cpython_urljoin[http://example.com-http://example.com-http://example.com] PASSED tests/test_url.py::test_join_cpython_urljoin[http://x.org-https://x.org#fragment-https://x.org#fragment] PASSED tests/test_url.py::test_join_cpython_urljoin[https://x.org/-/?text=Hello+G%C3%BCnter-https://x.org/?text=Hello+G%C3%BCnter] PASSED tests/test_url.py::test_join_cpython_urljoin[https://x.org/-?text=Hello+G%C3%BCnter-https://x.org/?text=Hello+G%C3%BCnter] PASSED tests/test_url.py::test_join_cpython_urljoin[svn+ssh://pathtorepo/dir1-dir2-svn+ssh://pathtorepo/dir2] PASSED tests/test_url.py::test_join_cpython_urljoin[svn://pathtorepo/dir1-dir2-svn://pathtorepo/dir2] PASSED tests/test_url.py::test_join_cpython_urljoin[ws://a/b-g-ws://a/g] PASSED tests/test_url.py::test_join_cpython_urljoin[wss://a/b-g-wss://a/g] PASSED tests/test_url.py::test_join_empty_segments[https://web.archive.org/web/-./https://github.com/aio-libs/yarl-https://web.archive.org/web/https://github.com/aio-libs/yarl] PASSED tests/test_url.py::test_join_empty_segments[https://web.archive.org/web/https://github.com/-aio-libs/yarl-https://web.archive.org/web/https://github.com/aio-libs/yarl] PASSED tests/test_url.py::test_join_encoded_url PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[../../../../g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[../../../g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[..g-http://a/b/c/..g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[./../g-http://a/b/g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[./g/.-http://a/b/c/g/] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[.g-http://a/b/c/.g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[/../g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[/./g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g#s/../x-http://a/b/c/g#s/../x] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g#s/./x-http://a/b/c/g#s/./x] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g.-http://a/b/c/g.] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g..-http://a/b/c/g..] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g/../h-http://a/b/c/h] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g/./h-http://a/b/c/g/h] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g;x=1/../y-http://a/b/c/y] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g;x=1/./y-http://a/b/c/g;x=1/y] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g?y/../x-http://a/b/c/g?y/../x] PASSED tests/test_url.py::test_join_from_rfc_3986_abnormal[g?y/./x-http://a/b/c/g?y/./x] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[#s-http://a/b/c/d;p?q#s] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[-http://a/b/c/d;p?q] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[.-http://a/b/c/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[..-http://a/b/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[../-http://a/b/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[../..-http://a/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[../../-http://a/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[../../g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[../g-http://a/b/g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[./-http://a/b/c/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[./g-http://a/b/c/g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[//g-http://g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[/g-http://a/g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[;x-http://a/b/c/;x] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[?y-http://a/b/c/d;p?y] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g#s-http://a/b/c/g#s] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g-http://a/b/c/g] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g/-http://a/b/c/g/] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g:h-g:h] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g;x-http://a/b/c/g;x] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g;x?y#s-http://a/b/c/g;x?y#s] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g?y#s-http://a/b/c/g?y#s] PASSED tests/test_url.py::test_join_from_rfc_3986_normal[g?y-http://a/b/c/g?y] PASSED tests/test_url.py::test_join_non_url PASSED tests/test_url.py::test_join_path_normalized[-] PASSED tests/test_url.py::test_join_path_normalized[../path/to-path/to] PASSED tests/test_url.py::test_join_path_normalized[././path/to-path/to] PASSED tests/test_url.py::test_join_path_normalized[\u03bc\u03bf\u03bd\u03bf\u03c0\u03ac\u03c4\u03b9/../../\u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/.-\u03bd\u03b1/\U0001d566\U0001d55f\U0001d55a/\U0001d554\U0001d560\U0001d555\U0001d556/] PASSED tests/test_url.py::test_join_path_normalized[\u03bc\u03bf\u03bd\u03bf\u03c0\u03ac\u03c4\u03b9/../../\u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07-\u03bd\u03b1/\u1d1c\u0274\u026a/\u1d04\u1d0f\u1d05\u1d07] PASSED tests/test_url.py::test_join_path_normalized[path-path] PASSED tests/test_url.py::test_join_path_normalized[path/../../to-to] PASSED tests/test_url.py::test_join_path_normalized[path/../to-to] PASSED tests/test_url.py::test_join_path_normalized[path/././to-path/to] PASSED tests/test_url.py::test_join_path_normalized[path/./to-path/to] PASSED tests/test_url.py::test_join_path_normalized[path/to-path/to] PASSED tests/test_url.py::test_join_path_normalized[path/to/.-path/to/] PASSED tests/test_url.py::test_join_path_normalized[path/to/./.-path/to/] PASSED tests/test_url.py::test_join_preserves_leading_slash PASSED tests/test_url.py::test_join_query_string PASSED tests/test_url.py::test_join_query_string_with_special_chars PASSED tests/test_url.py::test_joinpath[base-slash-duplicate-slash] PASSED tests/test_url.py::test_joinpath[base-slash-empty-segments] PASSED tests/test_url.py::test_joinpath[base-slash-trailing-slash] PASSED tests/test_url.py::test_joinpath[cleanup-query-and-fragment] PASSED tests/test_url.py::test_joinpath[duplicate-slash] PASSED tests/test_url.py::test_joinpath[empty-segments] PASSED tests/test_url.py::test_joinpath[path-add-trailing-slash] PASSED tests/test_url.py::test_joinpath[path-with-slash] PASSED tests/test_url.py::test_joinpath[path] PASSED tests/test_url.py::test_joinpath[root-with-slash] PASSED tests/test_url.py::test_joinpath[root] PASSED tests/test_url.py::test_joinpath[trailing-slash-empty-string] PASSED tests/test_url.py::test_joinpath[trailing-slash] PASSED tests/test_url.py::test_joinpath_backtrack_to_base PASSED tests/test_url.py::test_joinpath_edgecases[with-colon-and-at] PASSED tests/test_url.py::test_joinpath_edgecases[with-dots] PASSED tests/test_url.py::test_joinpath_empty_segments[backtrack-in-both] PASSED tests/test_url.py::test_joinpath_empty_segments[default_default] PASSED tests/test_url.py::test_joinpath_empty_segments[default_embedded-empty-segment] PASSED tests/test_url.py::test_joinpath_empty_segments[default_empty-segment] PASSED tests/test_url.py::test_joinpath_empty_segments[default_relative] PASSED tests/test_url.py::test_joinpath_empty_segments[default_trailing-empty-segment] PASSED tests/test_url.py::test_joinpath_empty_segments[default_trailing-empty-segments] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segment_default] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segment_empty_segment] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segment_relative] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segments_default] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segments_empty-segment] PASSED tests/test_url.py::test_joinpath_empty_segments[empty-segments_relative] PASSED tests/test_url.py::test_joinpath_empty_segments[long-backtrack-with-dots] PASSED tests/test_url.py::test_joinpath_empty_segments[long-backtrack] PASSED tests/test_url.py::test_joinpath_encoding[encoded-percent-encoded] PASSED tests/test_url.py::test_joinpath_encoding[non-ascii] PASSED tests/test_url.py::test_joinpath_encoding[percent-encoded] PASSED tests/test_url.py::test_joinpath_path_starting_from_slash_is_forbidden PASSED tests/test_url.py::test_joinpath_relative[absolute-path] PASSED tests/test_url.py::test_joinpath_relative[duplicate-slash] PASSED tests/test_url.py::test_joinpath_relative[empty-element] PASSED tests/test_url.py::test_joinpath_relative[empty-segments] PASSED tests/test_url.py::test_joinpath_relative[empty-url] PASSED tests/test_url.py::test_joinpath_relative[relative-path] PASSED tests/test_url.py::test_joinpath_relative[trailing-slash] PASSED tests/test_url.py::test_joinpath_single_empty_segments PASSED tests/test_url.py::test_localhost PASSED tests/test_url.py::test_lowercase PASSED tests/test_url.py::test_lowercase_nonascii PASSED tests/test_url.py::test_lowercase_scheme PASSED tests/test_url.py::test_name_for_empty_url PASSED tests/test_url.py::test_name_non_ascii PASSED tests/test_url.py::test_no_scheme PASSED tests/test_url.py::test_no_scheme2 PASSED tests/test_url.py::test_no_user PASSED tests/test_url.py::test_nonascii_in_qs PASSED tests/test_url.py::test_none_value_for_query PASSED tests/test_url.py::test_origin PASSED tests/test_url.py::test_origin_ipv6 PASSED tests/test_url.py::test_origin_is_equal_to_self PASSED tests/test_url.py::test_origin_no_scheme PASSED tests/test_url.py::test_origin_nonascii PASSED tests/test_url.py::test_origin_not_absolute_url PASSED tests/test_url.py::test_origin_with_no_auth PASSED tests/test_url.py::test_parent_for_absolute_url PASSED tests/test_url.py::test_parent_for_empty_url PASSED tests/test_url.py::test_parent_for_no_netloc_url PASSED tests/test_url.py::test_parent_for_relative_url PASSED tests/test_url.py::test_parent_for_relative_url_with_child PASSED tests/test_url.py::test_parent_for_top_level_absolute_url PASSED tests/test_url.py::test_parent_for_top_level_no_netloc_url PASSED tests/test_url.py::test_parent_raw_parts PASSED tests/test_url.py::test_parent_raw_path PASSED tests/test_url.py::test_parsing_populates_cache PASSED tests/test_url.py::test_parsing_populates_cache_for_single_dot PASSED tests/test_url.py::test_parts_for_empty_url PASSED tests/test_url.py::test_parts_non_ascii PASSED tests/test_url.py::test_password_non_ascii PASSED tests/test_url.py::test_password_without_user PASSED tests/test_url.py::test_path_non_ascii PASSED tests/test_url.py::test_path_qs PASSED tests/test_url.py::test_path_safe_only_round_trips[m%252B@bar/baz] PASSED tests/test_url.py::test_path_safe_only_round_trips[m%2B@bar/baz] PASSED tests/test_url.py::test_path_safe_only_round_trips[m%2F@bar/baz] PASSED tests/test_url.py::test_path_safe_only_round_trips[m+@bar/baz] PASSED tests/test_url.py::test_path_safe_with_25 PASSED tests/test_url.py::test_path_safe_with_2F PASSED tests/test_url.py::test_path_safe_with_no_netloc PASSED tests/test_url.py::test_path_with_2F PASSED tests/test_url.py::test_path_with_spaces PASSED tests/test_url.py::test_percent_encoded_in_qs PASSED tests/test_url.py::test_plus_in_path PASSED tests/test_url.py::test_port_for_explicit_port PASSED tests/test_url.py::test_port_for_implicit_port PASSED tests/test_url.py::test_port_for_relative_url PASSED tests/test_url.py::test_port_for_unknown_scheme PASSED tests/test_url.py::test_query_string_non_ascii PASSED tests/test_url.py::test_query_string_spaces PASSED tests/test_url.py::test_raw_fragment PASSED tests/test_url.py::test_raw_fragment_empty PASSED tests/test_url.py::test_raw_fragment_non_ascii PASSED tests/test_url.py::test_raw_fragment_safe PASSED tests/test_url.py::test_raw_host PASSED tests/test_url.py::test_raw_host_from_str_with_ipv4 PASSED tests/test_url.py::test_raw_host_from_str_with_ipv6 PASSED tests/test_url.py::test_raw_host_non_ascii PASSED tests/test_url.py::test_raw_host_when_port_is_specified PASSED tests/test_url.py::test_raw_name PASSED tests/test_url.py::test_raw_name_root PASSED tests/test_url.py::test_raw_name_root2 PASSED tests/test_url.py::test_raw_name_root3 PASSED tests/test_url.py::test_raw_parts PASSED tests/test_url.py::test_raw_parts_empty PASSED tests/test_url.py::test_raw_parts_for_relative_double_path PASSED tests/test_url.py::test_raw_parts_for_relative_path PASSED tests/test_url.py::test_raw_parts_for_relative_path_starting_from_slash PASSED tests/test_url.py::test_raw_parts_non_ascii PASSED tests/test_url.py::test_raw_parts_without_path PASSED tests/test_url.py::test_raw_password PASSED tests/test_url.py::test_raw_password_non_ascii PASSED tests/test_url.py::test_raw_path PASSED tests/test_url.py::test_raw_path_for_colon_and_at PASSED tests/test_url.py::test_raw_path_for_empty_url PASSED tests/test_url.py::test_raw_path_non_ascii PASSED tests/test_url.py::test_raw_path_parts_with_2F_in_path PASSED tests/test_url.py::test_raw_path_parts_with_2f_in_path PASSED tests/test_url.py::test_raw_path_qs PASSED tests/test_url.py::test_raw_path_string_empty PASSED tests/test_url.py::test_raw_query_string PASSED tests/test_url.py::test_raw_query_string_non_ascii PASSED tests/test_url.py::test_raw_suffix PASSED tests/test_url.py::test_raw_suffix_root PASSED tests/test_url.py::test_raw_suffix_root2 PASSED tests/test_url.py::test_raw_suffix_root3 PASSED tests/test_url.py::test_raw_suffixes PASSED tests/test_url.py::test_raw_suffixes_root PASSED tests/test_url.py::test_raw_suffixes_root2 PASSED tests/test_url.py::test_raw_suffixes_root3 PASSED tests/test_url.py::test_raw_user PASSED tests/test_url.py::test_raw_user_non_ascii PASSED tests/test_url.py::test_relative PASSED tests/test_url.py::test_relative_abs_parts_are_removed PASSED tests/test_url.py::test_relative_fails_on_rel_url PASSED tests/test_url.py::test_relative_is_relative PASSED tests/test_url.py::test_relative_raw_name PASSED tests/test_url.py::test_relative_raw_name_slash PASSED tests/test_url.py::test_relative_raw_name_starting_from_slash PASSED tests/test_url.py::test_relative_raw_suffix PASSED tests/test_url.py::test_relative_raw_suffix_dot PASSED tests/test_url.py::test_relative_raw_suffix_starting_from_slash PASSED tests/test_url.py::test_relative_raw_suffixes PASSED tests/test_url.py::test_relative_raw_suffixes_dot PASSED tests/test_url.py::test_relative_raw_suffixes_starting_from_slash PASSED tests/test_url.py::test_relative_url_populates_cache PASSED tests/test_url.py::test_repr PASSED tests/test_url.py::test_requoting PASSED tests/test_url.py::test_scheme PASSED tests/test_url.py::test_slash_and_question_in_fragment PASSED tests/test_url.py::test_slash_and_question_in_query PASSED tests/test_url.py::test_split_result_encoded PASSED tests/test_url.py::test_split_result_non_decoded PASSED tests/test_url.py::test_str PASSED tests/test_url.py::test_str_encoded PASSED tests/test_url.py::test_str_for_empty_url PASSED tests/test_url.py::test_str_subclass PASSED tests/test_url.py::test_subclassed_str_encoded PASSED tests/test_url.py::test_suffix_for_empty_url PASSED tests/test_url.py::test_suffix_multi_dot PASSED tests/test_url.py::test_suffix_non_ascii PASSED tests/test_url.py::test_suffix_with_dot_name PASSED tests/test_url.py::test_suffix_with_empty_name PASSED tests/test_url.py::test_suffixes_for_empty_url PASSED tests/test_url.py::test_suffixes_multi_dot PASSED tests/test_url.py::test_suffixes_non_ascii PASSED tests/test_url.py::test_suffixes_with_dot_name PASSED tests/test_url.py::test_suffixes_with_empty_name PASSED tests/test_url.py::test_to_idna PASSED tests/test_url.py::test_to_str PASSED tests/test_url.py::test_to_str_long PASSED tests/test_url.py::test_unsafe_url_bytes_are_removed[\n] PASSED tests/test_url.py::test_unsafe_url_bytes_are_removed[\r] PASSED tests/test_url.py::test_unsafe_url_bytes_are_removed[\t] PASSED tests/test_url.py::test_url_from_url PASSED tests/test_url.py::test_url_is_not_str PASSED tests/test_url.py::test_url_with_invalid_unicode[\u2100] PASSED tests/test_url.py::test_url_with_invalid_unicode[\ufe13] PASSED tests/test_url.py::test_url_with_invalid_unicode[\uff03] PASSED tests/test_url.py::test_user_empty_password PASSED tests/test_url.py::test_user_non_ascii PASSED tests/test_url.py::test_with_fragment PASSED tests/test_url.py::test_with_fragment_None PASSED tests/test_url.py::test_with_fragment_None_matching PASSED tests/test_url.py::test_with_fragment_bad_type PASSED tests/test_url.py::test_with_fragment_matching PASSED tests/test_url.py::test_with_fragment_non_ascii PASSED tests/test_url.py::test_with_fragment_percent_encoded PASSED tests/test_url.py::test_with_fragment_safe PASSED tests/test_url.py::test_with_name PASSED tests/test_url.py::test_with_name_dot PASSED tests/test_url.py::test_with_name_double_dot PASSED tests/test_url.py::test_with_name_empty PASSED tests/test_url.py::test_with_name_for_naked_path PASSED tests/test_url.py::test_with_name_for_relative_path PASSED tests/test_url.py::test_with_name_for_relative_path2 PASSED tests/test_url.py::test_with_name_for_relative_path_starting_from_slash PASSED tests/test_url.py::test_with_name_for_relative_path_starting_from_slash2 PASSED tests/test_url.py::test_with_name_keep_query_keep_fragment_flags[all] PASSED tests/test_url.py::test_with_name_keep_query_keep_fragment_flags[fragment-only] PASSED tests/test_url.py::test_with_name_keep_query_keep_fragment_flags[none] PASSED tests/test_url.py::test_with_name_keep_query_keep_fragment_flags[query-only] PASSED tests/test_url.py::test_with_name_non_ascii PASSED tests/test_url.py::test_with_name_non_str PASSED tests/test_url.py::test_with_name_percent_encoded PASSED tests/test_url.py::test_with_name_with_slash PASSED tests/test_url.py::test_with_name_within_colon_and_at PASSED tests/test_url.py::test_with_path PASSED tests/test_url.py::test_with_path_dots PASSED tests/test_url.py::test_with_path_empty PASSED tests/test_url.py::test_with_path_encoded PASSED tests/test_url.py::test_with_path_encoded_nonascii PASSED tests/test_url.py::test_with_path_encoded_percent_encoded PASSED tests/test_url.py::test_with_path_fragment PASSED tests/test_url.py::test_with_path_keep_query_keep_fragment_flags[all] PASSED tests/test_url.py::test_with_path_keep_query_keep_fragment_flags[fragment-only] PASSED tests/test_url.py::test_with_path_keep_query_keep_fragment_flags[none] PASSED tests/test_url.py::test_with_path_keep_query_keep_fragment_flags[query-only] PASSED tests/test_url.py::test_with_path_leading_slash PASSED tests/test_url.py::test_with_path_nonascii PASSED tests/test_url.py::test_with_path_percent_encoded PASSED tests/test_url.py::test_with_path_query PASSED tests/test_url.py::test_with_path_relative PASSED tests/test_url.py::test_with_suffix PASSED tests/test_url.py::test_with_suffix_dot PASSED tests/test_url.py::test_with_suffix_empty PASSED tests/test_url.py::test_with_suffix_for_naked_path PASSED tests/test_url.py::test_with_suffix_for_relative_path PASSED tests/test_url.py::test_with_suffix_for_relative_path2 PASSED tests/test_url.py::test_with_suffix_for_relative_path_starting_from_slash PASSED tests/test_url.py::test_with_suffix_for_relative_path_starting_from_slash2 PASSED tests/test_url.py::test_with_suffix_keep_query_keep_fragment_flags[all] PASSED tests/test_url.py::test_with_suffix_keep_query_keep_fragment_flags[fragment-only] PASSED tests/test_url.py::test_with_suffix_keep_query_keep_fragment_flags[none] PASSED tests/test_url.py::test_with_suffix_keep_query_keep_fragment_flags[query-only] PASSED tests/test_url.py::test_with_suffix_non_ascii PASSED tests/test_url.py::test_with_suffix_non_str PASSED tests/test_url.py::test_with_suffix_percent_encoded PASSED tests/test_url.py::test_with_suffix_replace PASSED tests/test_url.py::test_with_suffix_with_slash PASSED tests/test_url.py::test_with_suffix_with_slash2 PASSED tests/test_url.py::test_with_suffix_without_dot PASSED tests/test_url_build.py::test_build_already_encoded PASSED tests/test_url_build.py::test_build_already_encoded_empty_host PASSED tests/test_url_build.py::test_build_already_encoded_username_password PASSED tests/test_url_build.py::test_build_drop_dots PASSED tests/test_url_build.py::test_build_encode PASSED tests/test_url_build.py::test_build_path_quoting PASSED tests/test_url_build.py::test_build_percent_encoded PASSED tests/test_url_build.py::test_build_query_only PASSED tests/test_url_build.py::test_build_query_quoting PASSED tests/test_url_build.py::test_build_simple PASSED tests/test_url_build.py::test_build_uppercase_host PASSED tests/test_url_build.py::test_build_with_all PASSED tests/test_url_build.py::test_build_with_authority PASSED tests/test_url_build.py::test_build_with_authority_and_host PASSED tests/test_url_build.py::test_build_with_authority_and_only_user PASSED tests/test_url_build.py::test_build_with_authority_empty_host_no_scheme PASSED tests/test_url_build.py::test_build_with_authority_no_leading_flash PASSED tests/test_url_build.py::test_build_with_authority_percent_encoded PASSED tests/test_url_build.py::test_build_with_authority_percent_encoded_already_encoded PASSED tests/test_url_build.py::test_build_with_authority_with_empty_path PASSED tests/test_url_build.py::test_build_with_authority_with_ipv6 PASSED tests/test_url_build.py::test_build_with_authority_with_ipv6_and_port PASSED tests/test_url_build.py::test_build_with_authority_with_path_with_leading_slash PASSED tests/test_url_build.py::test_build_with_authority_with_path_without_leading_slash PASSED tests/test_url_build.py::test_build_with_authority_with_port PASSED tests/test_url_build.py::test_build_with_authority_without_encoding PASSED tests/test_url_build.py::test_build_with_host PASSED tests/test_url_build.py::test_build_with_invalid_host[host:com-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[not_percent_encoded%Zf-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[other_gen_delim_#-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[other_gen_delim_/-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[other_gen_delim_?-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[other_gen_delim_[-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[other_gen_delim_]-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[still_not_percent_encoded%fZ-False] PASSED tests/test_url_build.py::test_build_with_invalid_host[user:pass@host.com-True] PASSED tests/test_url_build.py::test_build_with_invalid_host[user@host.com-True] PASSED tests/test_url_build.py::test_build_with_none_fragment PASSED tests/test_url_build.py::test_build_with_none_host PASSED tests/test_url_build.py::test_build_with_none_path PASSED tests/test_url_build.py::test_build_with_none_query_string PASSED tests/test_url_build.py::test_build_with_port[port-only] PASSED tests/test_url_build.py::test_build_with_port[port-str] PASSED tests/test_url_build.py::test_build_with_query_and_query_string PASSED tests/test_url_build.py::test_build_with_scheme PASSED tests/test_url_build.py::test_build_with_scheme_and_host PASSED tests/test_url_build.py::test_build_with_user PASSED tests/test_url_build.py::test_build_with_user_password PASSED tests/test_url_build.py::test_build_without_arguments PASSED tests/test_url_build.py::test_query_dict PASSED tests/test_url_build.py::test_query_str PASSED tests/test_url_build.py::test_url_build_ipv6 PASSED tests/test_url_build.py::test_url_build_ipv6_brackets_encoded PASSED tests/test_url_build.py::test_url_build_ipv6_brackets_not_encoded PASSED tests/test_url_build.py::test_url_ipv4_in_ipv6 PASSED tests/test_url_cmp_and_hash.py::test_eq PASSED tests/test_url_cmp_and_hash.py::test_ge_eq PASSED tests/test_url_cmp_and_hash.py::test_ge_more PASSED tests/test_url_cmp_and_hash.py::test_ge_not_implemented PASSED tests/test_url_cmp_and_hash.py::test_gt PASSED tests/test_url_cmp_and_hash.py::test_gt_not_implemented PASSED tests/test_url_cmp_and_hash.py::test_hash PASSED tests/test_url_cmp_and_hash.py::test_hash_double_call PASSED tests/test_url_cmp_and_hash.py::test_le_eq PASSED tests/test_url_cmp_and_hash.py::test_le_less PASSED tests/test_url_cmp_and_hash.py::test_le_not_implemented PASSED tests/test_url_cmp_and_hash.py::test_lt PASSED tests/test_url_cmp_and_hash.py::test_lt_not_implemented PASSED tests/test_url_cmp_and_hash.py::test_ne_str PASSED tests/test_url_parsing.py::TestFragment::test_complex_frag PASSED tests/test_url_parsing.py::TestFragment::test_host_frag PASSED tests/test_url_parsing.py::TestFragment::test_host_frag_query PASSED tests/test_url_parsing.py::TestFragment::test_scheme_frag PASSED tests/test_url_parsing.py::TestFragment::test_scheme_path_frag PASSED tests/test_url_parsing.py::TestFragment::test_scheme_query_frag PASSED tests/test_url_parsing.py::TestFragment::test_simple PASSED tests/test_url_parsing.py::TestHost::test_absolute_no_scheme PASSED tests/test_url_parsing.py::TestHost::test_absolute_no_scheme_complex_host PASSED tests/test_url_parsing.py::TestHost::test_absolute_no_scheme_simple_host PASSED tests/test_url_parsing.py::TestHost::test_canonical PASSED tests/test_url_parsing.py::TestHost::test_ipv4 PASSED tests/test_url_parsing.py::TestHost::test_ipv6 PASSED tests/test_url_parsing.py::TestHost::test_ipvfuture_address PASSED tests/test_url_parsing.py::TestHost::test_no_scheme_no_host PASSED tests/test_url_parsing.py::TestHost::test_scheme_no_host PASSED tests/test_url_parsing.py::TestHost::test_scheme_no_host2 PASSED tests/test_url_parsing.py::TestHost::test_weird_host PASSED tests/test_url_parsing.py::TestPort::test_another_bad_port PASSED tests/test_url_parsing.py::TestPort::test_bad_port PASSED tests/test_url_parsing.py::TestPort::test_bad_port_again PASSED tests/test_url_parsing.py::TestPort::test_canonical PASSED tests/test_url_parsing.py::TestPort::test_double_port PASSED tests/test_url_parsing.py::TestPort::test_no_host PASSED tests/test_url_parsing.py::TestPort::test_no_path PASSED tests/test_url_parsing.py::TestQuery_String::test_abs_url_path_query PASSED tests/test_url_parsing.py::TestQuery_String::test_abs_url_query PASSED tests/test_url_parsing.py::TestQuery_String::test_complex_query PASSED tests/test_url_parsing.py::TestQuery_String::test_double_question_mark PASSED tests/test_url_parsing.py::TestQuery_String::test_query_in_fragment PASSED tests/test_url_parsing.py::TestQuery_String::test_scheme_query PASSED tests/test_url_parsing.py::TestQuery_String::test_simple PASSED tests/test_url_parsing.py::TestScheme::test_complex_scheme PASSED tests/test_url_parsing.py::TestScheme::test_no_scheme1 PASSED tests/test_url_parsing.py::TestScheme::test_no_scheme2 PASSED tests/test_url_parsing.py::TestScheme::test_not_a_scheme1 PASSED tests/test_url_parsing.py::TestScheme::test_not_a_scheme2 PASSED tests/test_url_parsing.py::TestScheme::test_scheme_only PASSED tests/test_url_parsing.py::TestScheme::test_scheme_path PASSED tests/test_url_parsing.py::TestScheme::test_scheme_path_other PASSED tests/test_url_parsing.py::TestScheme::test_scheme_rel_path1 PASSED tests/test_url_parsing.py::TestScheme::test_scheme_rel_path2 PASSED tests/test_url_parsing.py::TestScheme::test_scheme_weird PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_all_empty PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_all_empty_http PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_path PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_path_only PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_port PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_port_and_path PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query_with_frag PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_query_with_path PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_empty_user PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_path PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_path_empty_frag PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_path_only PASSED tests/test_url_parsing.py::TestStripEmptyParts::test_relative_path_only PASSED tests/test_url_parsing.py::TestUserInfo::test_canonical PASSED tests/test_url_parsing.py::TestUserInfo::test_complex_userinfo PASSED tests/test_url_parsing.py::TestUserInfo::test_no_user PASSED tests/test_url_parsing.py::TestUserInfo::test_user_pass PASSED tests/test_url_parsing.py::TestUserInfo::test_weird_user PASSED tests/test_url_parsing.py::TestUserInfo::test_weird_user2 PASSED tests/test_url_parsing.py::TestUserInfo::test_weird_user3 PASSED tests/test_url_parsing.py::test_schemes_that_require_host[ftp] PASSED tests/test_url_parsing.py::test_schemes_that_require_host[http] PASSED tests/test_url_parsing.py::test_schemes_that_require_host[https] PASSED tests/test_url_parsing.py::test_schemes_that_require_host[ws] PASSED tests/test_url_parsing.py::test_schemes_that_require_host[wss] PASSED tests/test_url_parsing.py::test_url_round_trips[http://127.0.0.1:8080-127.0.0.1-127.0.0.1] PASSED tests/test_url_parsing.py::test_url_round_trips[http://[::1]-[::1]-::1] PASSED tests/test_url_parsing.py::test_url_round_trips[http://[::1]:8080-[::1]-::1] PASSED tests/test_url_parsing.py::test_url_round_trips[http://xn--jxagkqfkduily1i.eu-xn--jxagkqfkduily1i.eu-xn--jxagkqfkduily1i.eu] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url0-expected_query0] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url1-expected_query1] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url2-expected_query2] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url3-expected_query3] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url4-expected_query4] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url5-expected_query5] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url6-expected_query6] PASSED tests/test_url_query.py::test_query_basic_parsing[original_url7-expected_query7] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url0-expected_query0] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url1-expected_query1] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url2-expected_query2] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url3-expected_query3] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url4-expected_query4] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url5-expected_query5] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url6-expected_query6] PASSED tests/test_url_query.py::test_query_basic_update_query[original_url7-expected_query7] PASSED tests/test_url_query.py::test_query_dont_unqoute_twice PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url0-2-10] PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url1-1-10&b=20] PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url2-1-10;b=20] PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url3-1-10;b=20] PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url4-1-10&b=20] PASSED tests/test_url_query.py::test_query_from_empty_update_query[original_url5-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url0-2-10] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url1-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url2-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url3-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url4-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_parsing[original_url5-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url0-2-10] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url1-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url2-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url3-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url4-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_update_query[original_url5-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url0-2-10] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url1-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url2-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url3-1-10;b=20] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url4-1-10&b=20] PASSED tests/test_url_query.py::test_query_separators_from_with_query[original_url5-1-10;b=20] PASSED tests/test_url_query.py::test_skip_dropping_query_params[a=10&b=M%C3%B9a+xu%C3%A2n&c=30-keys_to_drop0] PASSED tests/test_url_query.py::test_skip_dropping_query_params[a=10&b=M%C3%B9a+xu%C3%A2n-keys_to_drop1] PASSED tests/test_url_query.py::test_update_query_rejects_bytearray PASSED tests/test_url_query.py::test_update_query_rejects_bytes PASSED tests/test_url_query.py::test_update_query_rejects_invalid_type PASSED tests/test_url_query.py::test_update_query_rejects_memoryview PASSED tests/test_url_query.py::test_update_query_with_sequence_of_pairs PASSED tests/test_url_query.py::test_without_query_params[a=10&b=M%C3%B9a+xu%C3%A2n&c=30-keys_to_drop2-a=10&c=30] PASSED tests/test_url_query.py::test_without_query_params[a=10&b=M%C3%B9a+xu%C3%A2n&u%E1%BB%91ng=cafe-keys_to_drop0-b=M\xf9a xu\xe2n&u\u1ed1ng=cafe] PASSED tests/test_url_query.py::test_without_query_params[a=10&b=M%C3%B9a+xu%C3%A2n&u%E1%BB%91ng=cafe-keys_to_drop3-a=10&b=M\xf9a xu\xe2n] PASSED tests/test_url_query.py::test_without_query_params[a=10&b=M%C3%B9a+xu%C3%A2n-keys_to_drop1-a=10] PASSED tests/test_url_query.py::test_without_query_params[a=10&b=M%C3%B9a+xu%C3%A2n-keys_to_drop4-] PASSED tests/test_url_update_netloc.py::test_from_str_with_host_ipv4 PASSED tests/test_url_update_netloc.py::test_from_str_with_host_ipv6 PASSED tests/test_url_update_netloc.py::test_with_custom_port_normalization PASSED tests/test_url_update_netloc.py::test_with_default_port_normalization PASSED tests/test_url_update_netloc.py::test_with_explicit_port_normalization PASSED tests/test_url_update_netloc.py::test_with_host PASSED tests/test_url_update_netloc.py::test_with_host_empty PASSED tests/test_url_update_netloc.py::test_with_host_for_relative_url PASSED tests/test_url_update_netloc.py::test_with_host_invalid_type PASSED tests/test_url_update_netloc.py::test_with_host_non_ascii PASSED tests/test_url_update_netloc.py::test_with_host_percent_encoded PASSED tests/test_url_update_netloc.py::test_with_invalid_host[host:com-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[not_percent_encoded%Zf-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[other_gen_delim_#-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[other_gen_delim_/-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[other_gen_delim_?-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[other_gen_delim_[-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[other_gen_delim_]-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[still_not_percent_encoded%fZ-False] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[user:pass@host.com-True] PASSED tests/test_url_update_netloc.py::test_with_invalid_host[user@host.com-True] PASSED tests/test_url_update_netloc.py::test_with_password PASSED tests/test_url_update_netloc.py::test_with_password_None PASSED tests/test_url_update_netloc.py::test_with_password_and_empty_user PASSED tests/test_url_update_netloc.py::test_with_password_for_relative_url PASSED tests/test_url_update_netloc.py::test_with_password_invalid_type PASSED tests/test_url_update_netloc.py::test_with_password_ipv6 PASSED tests/test_url_update_netloc.py::test_with_password_non_ascii PASSED tests/test_url_update_netloc.py::test_with_password_non_ascii_with_colon PASSED tests/test_url_update_netloc.py::test_with_password_percent_encoded PASSED tests/test_url_update_netloc.py::test_with_port PASSED tests/test_url_update_netloc.py::test_with_port_for_relative_url PASSED tests/test_url_update_netloc.py::test_with_port_invalid_range PASSED tests/test_url_update_netloc.py::test_with_port_invalid_type PASSED tests/test_url_update_netloc.py::test_with_port_ipv6 PASSED tests/test_url_update_netloc.py::test_with_port_keeps_query_and_fragment PASSED tests/test_url_update_netloc.py::test_with_port_percent_encoded PASSED tests/test_url_update_netloc.py::test_with_port_with_no_port PASSED tests/test_url_update_netloc.py::test_with_scheme PASSED tests/test_url_update_netloc.py::test_with_scheme_for_relative_file_url PASSED tests/test_url_update_netloc.py::test_with_scheme_for_relative_url[HTTP] PASSED tests/test_url_update_netloc.py::test_with_scheme_for_relative_url[http] PASSED tests/test_url_update_netloc.py::test_with_scheme_for_relative_url[https] PASSED tests/test_url_update_netloc.py::test_with_scheme_invalid_type PASSED tests/test_url_update_netloc.py::test_with_scheme_uppercased PASSED tests/test_url_update_netloc.py::test_with_user PASSED tests/test_url_update_netloc.py::test_with_user_None PASSED tests/test_url_update_netloc.py::test_with_user_None_when_password_present PASSED tests/test_url_update_netloc.py::test_with_user_for_relative_url PASSED tests/test_url_update_netloc.py::test_with_user_invalid_type PASSED tests/test_url_update_netloc.py::test_with_user_ipv6 PASSED tests/test_url_update_netloc.py::test_with_user_non_ascii PASSED tests/test_url_update_netloc.py::test_with_user_percent_encoded PASSED ============================= slowest 10 durations ============================= =========================== short test summary info ============================ ======== 1367 passed, 4 xfailed ======== $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw5/test_static_directory_without_0 : [Errno 17] File exists: 'test_static_directory_without_0' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw5/test_static_directory_without_1 : [Errno 17] File exists: 'test_static_directory_without_1' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw5 : [Errno 17] File exists: 'popen-gw5' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR) : [Errno 17] File exists: '$(TMPDIR) warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw2/test_static_directory_without_0 : [Errno 17] File exists: 'test_static_directory_without_0' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw2/test_static_directory_without_1 : [Errno 17] File exists: 'test_static_directory_without_1' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR)/popen-gw2 : [Errno 17] File exists: 'popen-gw2' warnings.warn( $(PYTHON_DIR)/vendor-packages/_pytest/pathlib.py:91: PytestWarning: (rm_rf) error removing $(TMPDIR) : [Errno 17] File exists: '$(TMPDIR) warnings.warn(