============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON) cachedir: .pytest_cache benchmark: 5.1.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=True warmup_iterations=100000) hypothesis profile 'fast' -> max_examples=2, database=DirectoryBasedExampleDatabase(PosixPath('$(@D)/.hypothesis/examples')) rootdir: $(@D) configfile: pyproject.toml testpaths: tests timeout: 30.0s timeout method: signal timeout func_only: False collecting ... collected 4616 items tests/benchmarks/test_complete_benchmark.py::test_complete_valid PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_invalid PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_lax PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_strict PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_serializer_to_python PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_serializer_to_json PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_error PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_isinstance PASSED tests/benchmarks/test_complete_benchmark.py::test_complete_core_json PASSED tests/benchmarks/test_complete_benchmark.py::test_build_schema PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_python_fs PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkSimpleModel::test_core_json_fs PASSED tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_python PASSED tests/benchmarks/test_micro_benchmarks.py::TestModelLarge::test_core_json_fs PASSED tests/benchmarks/test_micro_benchmarks.py::test_bool_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_small_class_core_dict PASSED tests/benchmarks/test_micro_benchmarks.py::test_small_class_core_model PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_string_lax PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_string_lax_wrong PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict_wrong PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_string_strict_wrong_str_e PASSED tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_lax_true PASSED tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_lax_false PASSED tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_strict_true PASSED tests/benchmarks/test_micro_benchmarks.py::test_isinstance_string_strict_false PASSED tests/benchmarks/test_micro_benchmarks.py::test_definition_model_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_dict_models_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_ints_core_py PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_ints_core_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_py_cached PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_json_cached PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_strs_json_uncached PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_any_core_py PASSED tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_duplicates PASSED tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_length PASSED tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_set_of_ints_core_json_duplicates PASSED tests/benchmarks/test_micro_benchmarks.py::test_frozenset_of_ints_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_frozenset_of_ints_duplicates_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_dict_of_ints_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_dict_of_any_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_dict_of_ints_core_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_many_models_core_dict PASSED tests/benchmarks/test_micro_benchmarks.py::test_many_models_core_model PASSED tests/benchmarks/test_micro_benchmarks.py::test_list_of_nullable_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_bytes_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_python PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_model_core_json PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_raw PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_str PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateTime::test_core_future_str PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_date PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_str PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_date_from_datetime_str PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_core_future PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDateX::test_core_future_str PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_smart_union_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_smart_union_coerce_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_strict_union_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUnion::test_strict_union_error_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_string_pyd PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_uuid_from_uuid_pyd PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_python PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_model_core_json PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_raw PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkUUID::test_core_str PASSED tests/benchmarks/test_micro_benchmarks.py::test_dont_raise_error PASSED tests/benchmarks/test_micro_benchmarks.py::test_dont_raise_error_no_info PASSED tests/benchmarks/test_micro_benchmarks.py::test_raise_error_value_error PASSED tests/benchmarks/test_micro_benchmarks.py::test_raise_error_custom PASSED tests/benchmarks/test_micro_benchmarks.py::test_positional_tuple PASSED tests/benchmarks/test_micro_benchmarks.py::test_variable_tuple PASSED tests/benchmarks/test_micro_benchmarks.py::test_tuple_many_variable PASSED tests/benchmarks/test_micro_benchmarks.py::test_tuple_many_positional PASSED tests/benchmarks/test_micro_benchmarks.py::test_arguments PASSED tests/benchmarks/test_micro_benchmarks.py::test_with_default PASSED tests/benchmarks/test_micro_benchmarks.py::test_chain_list PASSED tests/benchmarks/test_micro_benchmarks.py::test_chain_function PASSED tests/benchmarks/test_micro_benchmarks.py::test_chain_two_functions PASSED tests/benchmarks/test_micro_benchmarks.py::test_chain_nested_functions PASSED tests/benchmarks/test_micro_benchmarks.py::test_generator_python PASSED tests/benchmarks/test_micro_benchmarks.py::test_generator_rust PASSED tests/benchmarks/test_micro_benchmarks.py::test_isinstance_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_int_error PASSED tests/benchmarks/test_micro_benchmarks.py::test_definition_in_tree PASSED tests/benchmarks/test_micro_benchmarks.py::test_definition_out_of_tree PASSED tests/benchmarks/test_micro_benchmarks.py::test_model_instance PASSED tests/benchmarks/test_micro_benchmarks.py::test_model_instance_abc PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_ints] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_small_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_large_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_str_enum] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_ints] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_small_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-many_large_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[python-few_mixed] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_ints] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_small_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_large_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_str_enum] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_ints] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_small_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-many_large_strings] PASSED tests/benchmarks/test_micro_benchmarks.py::test_validate_literal[json-few_mixed] PASSED tests/benchmarks/test_micro_benchmarks.py::test_core_root_model PASSED tests/benchmarks/test_micro_benchmarks.py::test_strict_int PASSED tests/benchmarks/test_micro_benchmarks.py::test_strict_int_fails PASSED tests/benchmarks/test_micro_benchmarks.py::test_int_range PASSED tests/benchmarks/test_micro_benchmarks.py::test_int_range_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_tagged_union_int_keys_python PASSED tests/benchmarks/test_micro_benchmarks.py::test_tagged_union_int_keys_json PASSED tests/benchmarks/test_micro_benchmarks.py::test_field_function_validator PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_core PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_pyd PASSED tests/benchmarks/test_micro_benchmarks.py::TestBenchmarkDecimal::test_decimal_from_string_limit PASSED tests/benchmarks/test_micro_benchmarks.py::test_enum_int_python PASSED tests/benchmarks/test_micro_benchmarks.py::test_enum_int_core PASSED tests/benchmarks/test_micro_benchmarks.py::test_enum_str_python PASSED tests/benchmarks/test_micro_benchmarks.py::test_enum_str_core PASSED tests/benchmarks/test_nested_benchmark.py::test_nested_schema_using_defs PASSED tests/benchmarks/test_nested_benchmark.py::test_nested_schema_inlined PASSED tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict PASSED tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_dict_filter PASSED tests/benchmarks/test_serialization_micro.py::TestBenchmarkSimpleModel::test_core_json PASSED tests/benchmarks/test_serialization_micro.py::test_json_direct_list_str PASSED tests/benchmarks/test_serialization_micro.py::test_python_json_list_str PASSED tests/benchmarks/test_serialization_micro.py::test_json_any_list_str PASSED tests/benchmarks/test_serialization_micro.py::test_json_direct_list_int PASSED tests/benchmarks/test_serialization_micro.py::test_json_any_list_int PASSED tests/benchmarks/test_serialization_micro.py::test_python_json_list_int PASSED tests/benchmarks/test_serialization_micro.py::test_python_json_list_none PASSED tests/benchmarks/test_serialization_micro.py::test_date_format PASSED tests/benchmarks/test_serialization_micro.py::test_date_format_function PASSED tests/benchmarks/test_serialization_micro.py::test_date_format_function_no_info PASSED tests/benchmarks/test_serialization_micro.py::test_core_model_py PASSED tests/benchmarks/test_serialization_micro.py::test_core_model_py_extra PASSED tests/benchmarks/test_serialization_micro.py::test_core_model_json PASSED tests/benchmarks/test_serialization_micro.py::test_core_model_json_extra PASSED tests/benchmarks/test_serialization_micro.py::test_model_exclude_unset_false PASSED tests/benchmarks/test_serialization_micro.py::test_model_exclude_unset_true PASSED tests/benchmarks/test_serialization_micro.py::test_model_list_core_json PASSED tests/benchmarks/test_serialization_micro.py::test_datetime PASSED tests/benchmarks/test_serialization_micro.py::test_uuid PASSED tests/benchmarks/test_serialization_micro.py::test_to_string_format PASSED tests/benchmarks/test_serialization_micro.py::test_to_string_direct PASSED tests/benchmarks/test_serialization_micro.py::test_filter PASSED tests/benchmarks/test_serialization_micro.py::test_to_json_list_of_lists PASSED tests/benchmarks/test_serialization_micro.py::test_ser_list_of_lists PASSED tests/benchmarks/test_serialization_micro.py::test_dataclass_serialization_python PASSED tests/benchmarks/test_serialization_micro.py::test_dataclass_serialization_json PASSED tests/benchmarks/test_serialization_micro.py::test_dataclass_to_json PASSED tests/serializers/test_any.py::test_repr PASSED tests/serializers/test_any.py::test_any_json_round_trip[None] PASSED tests/serializers/test_any.py::test_any_json_round_trip[1] PASSED tests/serializers/test_any.py::test_any_json_round_trip[1.0] PASSED tests/serializers/test_any.py::test_any_json_round_trip[True] PASSED tests/serializers/test_any.py::test_any_json_round_trip[foo] PASSED tests/serializers/test_any.py::test_any_json_round_trip[value5] PASSED tests/serializers/test_any.py::test_any_json_round_trip[value6] PASSED tests/serializers/test_any.py::test_any_python[MyDataclass(a=1, b='foo')-{'a': 1, 'b': 'foo'}-{'a': 1, 'b': 'foo'}] PASSED tests/serializers/test_any.py::test_any_python[MyModel({'a': 1, 'b': 'foo', '__pydantic_serializer__': SchemaSerializer(serializer=Model(\n ModelSerializer {\n class: Py(\n $(POINTER),\n ),\n serializer: Fields(\n GeneralFieldsSerializer {\n fields: {\n "a": SerField {\n key_py: Py(\n $(POINTER),\n ),\n alias: None,\n alias_py: None,\n serializer: Some(\n Any(\n AnySerializer,\n ),\n ),\n required: true,\n },\n "b": SerField {\n key_py: Py(\n $(POINTER),\n ),\n alias: None,\n alias_py: None,\n serializer: Some(\n Any(\n AnySerializer,\n ),\n ),\n required: true,\n },\n },\n computed_fields: None,\n mode: SimpleDict,\n extra_serializer: None,\n filter: SchemaFilter {\n include: None,\n exclude: None,\n },\n required_fields: 2,\n },\n ),\n has_extra: false,\n root_model: false,\n name: "MyModel",\n },\n), definitions=[])})-{'a': 1, 'b': 'foo'}-{'a': 1, 'b': 'foo'}] PASSED tests/serializers/test_any.py::test_any_python[{1, 2, 3}-{1, 2, 3}-IsList(1, 2, 3, check_order=False)] PASSED tests/serializers/test_any.py::test_any_python[{1, '2', b'3'}-{1, '2', b'3'}-IsList(1, '2', '3', check_order=False)] PASSED tests/serializers/test_any.py::test_set_member_db PASSED tests/serializers/test_any.py::test_any_json[None-null] PASSED tests/serializers/test_any.py::test_any_json[1-1] PASSED tests/serializers/test_any.py::test_any_json[value2-"1.123"] PASSED tests/serializers/test_any.py::test_any_json[foobar-"foobar"] PASSED tests/serializers/test_any.py::test_any_json[value4-"foobar"] PASSED tests/serializers/test_any.py::test_any_json[value5-[1,2,3]] PASSED tests/serializers/test_any.py::test_any_json[value6-{"1":2,"a":4}] PASSED tests/serializers/test_any.py::test_any_json[value7-{"1,a,2":3}] PASSED tests/serializers/test_any.py::test_any_json[value8-{"1":3}] PASSED tests/serializers/test_any.py::test_any_json[value9-"2022-12-03T12:30:45"] PASSED tests/serializers/test_any.py::test_any_json[value10-"2032-01-01T01:01:00"] PASSED tests/serializers/test_any.py::test_any_json[value11-"2022-12-03"] PASSED tests/serializers/test_any.py::test_any_json[value12-"12:30:45"] PASSED tests/serializers/test_any.py::test_any_json[value13-"PT2H"] PASSED tests/serializers/test_any.py::test_any_json[value14-{"a":1,"b":"foo"}] PASSED tests/serializers/test_any.py::test_any_json[value15-{"a":1,"b":"foo"}] PASSED tests/serializers/test_any.py::test_any_json[value16-[{"a":1,"b":"a"},{"a":2,"b":"b"}]] PASSED tests/serializers/test_any.py::test_any_json[value17-"/foo/bar/spam.svg"] PASSED tests/serializers/test_any.py::test_any_json[value18-"C:\\foo\\bar\\spam.svg"] SKIPPED tests/serializers/test_any.py::test_any_json[value19-[1,2]] PASSED tests/serializers/test_any.py::test_other_type PASSED tests/serializers/test_any.py::test_any_json_decode_error[\x81] PASSED tests/serializers/test_any.py::test_any_json_decode_error[value1] PASSED tests/serializers/test_any.py::test_any_with_date_serializer PASSED tests/serializers/test_any.py::test_any_with_timedelta_serializer PASSED tests/serializers/test_any.py::test_any_config_timedelta_float PASSED tests/serializers/test_any.py::test_any_config_timedelta_float_faction PASSED tests/serializers/test_any.py::test_recursion PASSED tests/serializers/test_any.py::test_include_list_tuple[as_list] PASSED tests/serializers/test_any.py::test_include_list_tuple[as_tuple] PASSED tests/serializers/test_any.py::test_include_generator PASSED tests/serializers/test_any.py::test_include_dict PASSED tests/serializers/test_any.py::test_exclude_dict PASSED tests/serializers/test_any.py::test_exclude_unset PASSED tests/serializers/test_any.py::test_unknown_type PASSED tests/serializers/test_any.py::test_unknown_type_fallback PASSED tests/serializers/test_any.py::test_fallback_cycle_same PASSED tests/serializers/test_any.py::test_fallback_cycle_change PASSED tests/serializers/test_any.py::test_enum PASSED tests/serializers/test_any.py::test_base64 PASSED tests/serializers/test_any.py::test_encoding[-kwargs0-"2032-01-01T01:01:00"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs1-"2032-01-01T01:01:00Z"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs2-"2032-01-01T01:01:00+02:00"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs3-"2032-01-01T00:00:00"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs4-"12:34:56"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs5-"P12DT34.000056S"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs6-1036834.000056] PASSED tests/serializers/test_any.py::test_encoding[-kwargs7-"-PT1S"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs8--1.0] PASSED tests/serializers/test_any.py::test_encoding[-kwargs9-[1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs10-[1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs11-[0,1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs12-[0,1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs13-[0,1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs14-[0,1,2,3]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs15-"this is bytes"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs16-"dGhpcyBpcyBieXRlcw=="] PASSED tests/serializers/test_any.py::test_encoding[-kwargs17-"this is bytes"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs18-"dGhpcyBpcyBieXRlcw=="] PASSED tests/serializers/test_any.py::test_encoding[-kwargs19-"12.34"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs20-1] PASSED tests/serializers/test_any.py::test_encoding[-kwargs21-"b"] PASSED tests/serializers/test_any.py::test_encoding[-kwargs22-[{"a":1,"b":"a"},{"a":2,"b":"b"}]] PASSED tests/serializers/test_any.py::test_encoding[-kwargs23-"^regex$"] PASSED tests/serializers/test_any.py::test_any_dataclass PASSED tests/serializers/test_any.py::test_any_model PASSED tests/serializers/test_any.py::test_dataclass_classvar PASSED tests/serializers/test_any.py::test_dataclass_slots SKIPPED (slots a...) tests/serializers/test_any.py::test_dataclass_slots_init_vars SKIPPED tests/serializers/test_any.py::test_slots_mixed SKIPPED (slots are o...) tests/serializers/test_any.py::test_numpy_float PASSED tests/serializers/test_any.py::test_ser_json_inf_nan_with_any PASSED tests/serializers/test_any.py::test_ser_json_inf_nan_with_list_of_any PASSED tests/serializers/test_any.py::test_ser_json_int_subclass_value_larger_than_i64 PASSED tests/serializers/test_any.py::test_simple_any_ser_schema_repr PASSED tests/serializers/test_any.py::test_simple_any_ser_schema PASSED tests/serializers/test_bytes.py::test_bytes PASSED tests/serializers/test_bytes.py::test_bytes_invalid_all PASSED tests/serializers/test_bytes.py::test_bytes_invalid_cpython PASSED tests/serializers/test_bytes.py::test_bytes_dict_key PASSED tests/serializers/test_bytes.py::test_bytes_fallback PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-foo0-bytes] PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-foo0-any] PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-foo1-bytes] PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-foo1-any] PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-value-foo-value-bytes] PASSED tests/serializers/test_bytes.py::test_subclass_bytes[foo-value-foo-value-any] PASSED tests/serializers/test_bytes.py::test_bytes_base64 PASSED tests/serializers/test_bytes.py::test_bytes_hex PASSED tests/serializers/test_bytes.py::test_bytes_base64_dict_key PASSED tests/serializers/test_bytes.py::test_any_bytes_base64 PASSED tests/serializers/test_bytes.py::test_bytes_mode_set_via_model_config_not_serializer_config PASSED tests/serializers/test_complex.py::test_complex_json[(-0.000123+567.89j)--0.000123+567.89j] PASSED tests/serializers/test_complex.py::test_complex_json[-1.23j--1.23j] PASSED tests/serializers/test_complex.py::test_complex_json[(1.5+0j)-1.5+0j] PASSED tests/serializers/test_complex.py::test_complex_json[(1+2j)-1+2j] PASSED tests/serializers/test_complex.py::test_complex_json[1j-1j] PASSED tests/serializers/test_complex.py::test_complex_json[0j-0j] PASSED tests/serializers/test_complex.py::test_complex_json[(-inf+2j)--inf+2j] PASSED tests/serializers/test_complex.py::test_complex_json[(inf+2j)-inf+2j] PASSED tests/serializers/test_complex.py::test_complex_json[(nan+2j)-NaN+2j] PASSED tests/serializers/test_complex.py::test_complex_inference PASSED tests/serializers/test_dataclasses.py::test_dataclass PASSED tests/serializers/test_dataclasses.py::test_serialization_exclude PASSED tests/serializers/test_dataclasses.py::test_serialization_alias PASSED tests/serializers/test_dataclasses.py::test_properties PASSED tests/serializers/test_dataclasses.py::test_slots_mixed SKIPPED (slo...) tests/serializers/test_dataclasses.py::test_extra_custom_serializer XFAIL tests/serializers/test_datetime.py::test_datetime PASSED tests/serializers/test_datetime.py::test_datetime_key PASSED tests/serializers/test_datetime.py::test_datetime_json[value0-2022-12-02T12:13:14] PASSED tests/serializers/test_datetime.py::test_datetime_json[value1-2022-12-02T12:00:00Z] PASSED tests/serializers/test_datetime.py::test_datetime_json[value2-2022-12-02T12:00:00+02:00] PASSED tests/serializers/test_datetime.py::test_datetime_json[value3-2022-12-02T12:00:00+02:30] PASSED tests/serializers/test_datetime.py::test_datetime_json[value4-2022-12-02T12:00:00-02:00] PASSED tests/serializers/test_datetime.py::test_datetime_json[value5-2022-12-02T12:00:00-02:30] PASSED tests/serializers/test_datetime.py::test_datetime_json[value6-2022-12-02T12:13:14.123456] PASSED tests/serializers/test_datetime.py::test_datetime_json[value7-2022-12-02T12:13:14.000123] PASSED tests/serializers/test_datetime.py::test_datetime_json[value8-2022-12-02T12:13:14.123000] PASSED tests/serializers/test_datetime.py::test_datetime_json[value9-2022-12-02T12:13:14.123456-02:00] PASSED tests/serializers/test_datetime.py::test_date PASSED tests/serializers/test_datetime.py::test_date_key PASSED tests/serializers/test_datetime.py::test_time PASSED tests/serializers/test_datetime.py::test_time_key PASSED tests/serializers/test_datetime.py::test_any_datetime_key PASSED tests/serializers/test_datetime.py::test_date_datetime_union PASSED tests/serializers/test_decimal.py::test_decimal PASSED tests/serializers/test_decimal.py::test_decimal_key PASSED tests/serializers/test_decimal.py::test_decimal_json[value0-123.456] PASSED tests/serializers/test_decimal.py::test_decimal_json[value1-Infinity] PASSED tests/serializers/test_decimal.py::test_decimal_json[value2--Infinity] PASSED tests/serializers/test_decimal.py::test_decimal_json[value3-NaN] PASSED tests/serializers/test_decimal.py::test_any_decimal_key PASSED tests/serializers/test_definitions.py::test_custom_ser PASSED tests/serializers/test_definitions.py::test_ignored_def PASSED tests/serializers/test_definitions.py::test_def_error PASSED tests/serializers/test_definitions.py::test_repeated_ref PASSED tests/serializers/test_definitions.py::test_repeat_after PASSED tests/serializers/test_definitions.py::test_deep PASSED tests/serializers/test_definitions.py::test_use_after PASSED tests/serializers/test_definitions.py::test_defs_with_dict PASSED tests/serializers/test_definitions_recursive.py::test_branch_nullable PASSED tests/serializers/test_definitions_recursive.py::test_cyclic_recursion PASSED tests/serializers/test_definitions_recursive.py::test_custom_ser PASSED tests/serializers/test_definitions_recursive.py::test_recursive_function PASSED tests/serializers/test_definitions_recursive.py::test_recursive_function_deeper_ref PASSED tests/serializers/test_dict.py::test_dict_str_int PASSED tests/serializers/test_dict.py::test_dict_any_any PASSED tests/serializers/test_dict.py::test_include PASSED tests/serializers/test_dict.py::test_exclude PASSED tests/serializers/test_dict.py::test_filter PASSED tests/serializers/test_dict.py::test_filter_args[params0] PASSED tests/serializers/test_dict.py::test_filter_args[params1] PASSED tests/serializers/test_dict.py::test_filter_args[params2] PASSED tests/serializers/test_dict.py::test_filter_args[params3] PASSED tests/serializers/test_dict.py::test_filter_args[params4] PASSED tests/serializers/test_dict.py::test_filter_args[params5] PASSED tests/serializers/test_dict.py::test_filter_args[params6] PASSED tests/serializers/test_dict.py::test_filter_args[params7] PASSED tests/serializers/test_dict.py::test_filter_args[params8] PASSED tests/serializers/test_dict.py::test_filter_args[params9] PASSED tests/serializers/test_dict.py::test_filter_args[params10] PASSED tests/serializers/test_dict.py::test_filter_args[params11] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params0] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params1] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params2] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params3] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params4] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params5] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params6] PASSED tests/serializers/test_dict.py::test_filter_args_nested[params7] PASSED tests/serializers/test_dict.py::test_filter_int PASSED tests/serializers/test_dict.py::test_filter_runtime PASSED tests/serializers/test_dict.py::test_filter_runtime_int PASSED tests/serializers/test_dict.py::test_include_error[foobar-Input should be a valid set] PASSED tests/serializers/test_dict.py::test_include_error[include_value1-Input should be a valid set] PASSED tests/serializers/test_dict.py::test_include_error[include_value2-Input should be a valid integer, got a number with a fractional part] PASSED tests/serializers/test_enum.py::test_plain_enum PASSED tests/serializers/test_enum.py::test_int_enum PASSED tests/serializers/test_enum.py::test_str_enum PASSED tests/serializers/test_enum.py::test_plain_dict_key PASSED tests/serializers/test_enum.py::test_int_dict_key PASSED tests/serializers/test_format.py::test_format[42.12345-0.4f-42.12345-"42.1234"] PASSED tests/serializers/test_format.py::test_format[42.12-0.4f-42.12-"42.1200"] PASSED tests/serializers/test_format.py::test_format[42.12--42.12-"42.12"] PASSED tests/serializers/test_format.py::test_format[42.1234567--42.1234567-"42.1234567"] PASSED tests/serializers/test_format.py::test_format[value4-%Y-%m-%d-expected_python4-"2022-11-20"] PASSED tests/serializers/test_format.py::test_format[foo-^5s-foo-" foo "] PASSED tests/serializers/test_format.py::test_format[value6--expected_python6-"ebcdab58-6eb8-46fb-a190-d07a33e9eac8"] PASSED tests/serializers/test_format.py::test_format_when_used_unless_none PASSED tests/serializers/test_format.py::test_format_when_used_json PASSED tests/serializers/test_format.py::test_to_string_when_used_always PASSED tests/serializers/test_format.py::test_to_string_when_used_unless_none PASSED tests/serializers/test_format.py::test_format_error PASSED tests/serializers/test_format.py::test_dict_keys PASSED tests/serializers/test_format.py::test_format_fallback PASSED tests/serializers/test_format.py::test_to_string PASSED tests/serializers/test_functions.py::test_function_general[None-None-"None"] PASSED tests/serializers/test_functions.py::test_function_general[1-1-"1"] PASSED tests/serializers/test_functions.py::test_function_general[value2-[1, 2, 3]-"[1, 2, 3]"] PASSED tests/serializers/test_functions.py::test_function_no_info[None-None-"None"] PASSED tests/serializers/test_functions.py::test_function_no_info[1-1-"1"] PASSED tests/serializers/test_functions.py::test_function_no_info[value2-[1, 2, 3]-"[1, 2, 3]"] PASSED tests/serializers/test_functions.py::test_function_args PASSED tests/serializers/test_functions.py::test_function_error PASSED tests/serializers/test_functions.py::test_function_error_keys PASSED tests/serializers/test_functions.py::test_function_known_type PASSED tests/serializers/test_functions.py::test_function_args_str PASSED tests/serializers/test_functions.py::test_dict_keys PASSED tests/serializers/test_functions.py::test_function_as_key PASSED tests/serializers/test_functions.py::test_function_only_json PASSED tests/serializers/test_functions.py::test_function_unless_none PASSED tests/serializers/test_functions.py::test_wrong_return_type PASSED tests/serializers/test_functions.py::test_function_wrap PASSED tests/serializers/test_functions.py::test_function_wrap_return_scheam PASSED tests/serializers/test_functions.py::test_function_wrap_no_info PASSED tests/serializers/test_functions.py::test_function_wrap_custom_schema PASSED tests/serializers/test_functions.py::test_function_wrap_fallback PASSED tests/serializers/test_functions.py::test_deque PASSED tests/serializers/test_functions.py::test_custom_mapping PASSED tests/serializers/test_functions.py::test_function_wrap_model PASSED tests/serializers/test_functions.py::test_function_plain_model PASSED tests/serializers/test_functions.py::test_wrap_return_type PASSED tests/serializers/test_functions.py::test_raise_unexpected PASSED tests/serializers/test_functions.py::test_pydantic_serialization_unexpected_value PASSED tests/serializers/test_functions.py::test_function_after_preserves_wrapped_serialization PASSED tests/serializers/test_functions.py::test_function_wrap_preserves_wrapped_serialization PASSED tests/serializers/test_functions.py::test_recursive_call PASSED tests/serializers/test_functions.py::test_serialize_pattern PASSED tests/serializers/test_generator.py::test_generator_any_iter PASSED tests/serializers/test_generator.py::test_any_iter PASSED tests/serializers/test_generator.py::test_generator_any PASSED tests/serializers/test_generator.py::test_generator_int PASSED tests/serializers/test_generator.py::test_include PASSED tests/serializers/test_generator.py::test_custom_serializer PASSED tests/serializers/test_infer.py::test_infer_to_python PASSED tests/serializers/test_infer.py::test_infer_serialize PASSED tests/serializers/test_infer.py::test_infer_json_key PASSED tests/serializers/test_json.py::test_json_int PASSED tests/serializers/test_json.py::test_list_json PASSED tests/serializers/test_json.py::test_dict_key_json PASSED tests/serializers/test_json.py::test_custom_serializer PASSED tests/serializers/test_json_or_python.py::test_json_or_python PASSED tests/serializers/test_json_or_python.py::test_json_or_python_enum_dict_key PASSED tests/serializers/test_list_tuple.py::test_list_any PASSED tests/serializers/test_list_tuple.py::test_list_fallback PASSED tests/serializers/test_list_tuple.py::test_list_str_fallback PASSED tests/serializers/test_list_tuple.py::test_tuple_any PASSED tests/serializers/test_list_tuple.py::test_include[list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include[tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_negative[list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_negative[tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_dict[list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_dict[tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_exclude[list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_exclude[tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_filter[include0-exclude0] PASSED tests/serializers/test_list_tuple.py::test_filter[include1-exclude1] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime PASSED tests/serializers/test_list_tuple.py::test_include_error[list_schema-foobar-Input should be a valid set] PASSED tests/serializers/test_list_tuple.py::test_include_error[list_schema-include_value1-Input should be a valid set] PASSED tests/serializers/test_list_tuple.py::test_include_error[list_schema-include_value2-Input should be a valid integer, got a number with a fractional part] PASSED tests/serializers/test_list_tuple.py::test_include_error[list_schema-include_value3-Input should be a valid integer, unable to parse string as an integer] PASSED tests/serializers/test_list_tuple.py::test_include_error[tuple_variable_schema-foobar-Input should be a valid set] PASSED tests/serializers/test_list_tuple.py::test_include_error[tuple_variable_schema-include_value1-Input should be a valid set] PASSED tests/serializers/test_list_tuple.py::test_include_error[tuple_variable_schema-include_value2-Input should be a valid integer, got a number with a fractional part] PASSED tests/serializers/test_list_tuple.py::test_include_error[tuple_variable_schema-include_value3-Input should be a valid integer, unable to parse string as an integer] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include0-None-expected0] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include1-exclude1-expected1] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include2-exclude2-expected2] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include3-exclude3-expected3] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include4-exclude4-expected4] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include5-exclude5-expected5] PASSED tests/serializers/test_list_tuple.py::test_filter_runtime_more[include6-exclude6-expected6] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[include0-None-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[include0-None-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[include1-None-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[include1-None-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[1-None-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[1-None-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-exclude3-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-exclude3-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-exclude4-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-exclude4-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-1-list_schema-as_list] PASSED tests/serializers/test_list_tuple.py::test_include_error_call_time[None-1-tuple_variable_schema-as_tuple] PASSED tests/serializers/test_list_tuple.py::test_tuple_fallback PASSED tests/serializers/test_list_tuple.py::test_filter_args[params0] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params1] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params2] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params3] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params4] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params5] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params6] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params7] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params8] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params9] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params10] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params11] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params12] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params13] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params14] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params15] PASSED tests/serializers/test_list_tuple.py::test_filter_args[params16] PASSED tests/serializers/test_list_tuple.py::test_filter_args_nested[params0] PASSED tests/serializers/test_list_tuple.py::test_filter_args_nested[params1] PASSED tests/serializers/test_list_tuple.py::test_filter_args_nested[params2] PASSED tests/serializers/test_list_tuple.py::test_filter_args_nested[params3] PASSED tests/serializers/test_list_tuple.py::test_filter_args_nested[params4] PASSED tests/serializers/test_list_tuple.py::test_filter_list_of_dicts PASSED tests/serializers/test_list_tuple.py::test_positional_tuple PASSED tests/serializers/test_list_tuple.py::test_function_positional_tuple PASSED tests/serializers/test_list_tuple.py::test_list_dict_key PASSED tests/serializers/test_list_tuple.py::test_tuple_var_dict_key PASSED tests/serializers/test_list_tuple.py::test_tuple_pos_dict_key PASSED tests/serializers/test_list_tuple.py::test_tuple_wrong_size_union PASSED tests/serializers/test_literal.py::test_int_literal PASSED tests/serializers/test_literal.py::test_str_literal PASSED tests/serializers/test_literal.py::test_other_literal PASSED tests/serializers/test_literal.py::test_empty_literal PASSED tests/serializers/test_literal.py::test_bool_literal PASSED tests/serializers/test_literal.py::test_literal_with_enum PASSED tests/serializers/test_misc.py::test_invalid_ser_schema[ser_schema0-Unable to extract tag using discriminator 'type'] PASSED tests/serializers/test_misc.py::test_invalid_ser_schema[ser_schema1-Input tag 'unknown' found using 'type' does not match any of the expected tags:] PASSED tests/serializers/test_model.py::test_model PASSED tests/serializers/test_model.py::test_dataclass PASSED tests/serializers/test_model.py::test_model_allow_extra PASSED tests/serializers/test_model.py::test_model_recursive_in_extra PASSED tests/serializers/test_model.py::test_include_exclude_args[params0] PASSED tests/serializers/test_model.py::test_include_exclude_args[params1] PASSED tests/serializers/test_model.py::test_include_exclude_args[params2] PASSED tests/serializers/test_model.py::test_include_exclude_args[params3] PASSED tests/serializers/test_model.py::test_include_exclude_args[params4] PASSED tests/serializers/test_model.py::test_include_exclude_args[params5] PASSED tests/serializers/test_model.py::test_include_exclude_args[params6] PASSED tests/serializers/test_model.py::test_include_exclude_args[params7] PASSED tests/serializers/test_model.py::test_include_exclude_args[params8] PASSED tests/serializers/test_model.py::test_include_exclude_args[params9] PASSED tests/serializers/test_model.py::test_include_exclude_args[params10] PASSED tests/serializers/test_model.py::test_include_exclude_args[params11] PASSED tests/serializers/test_model.py::test_alias PASSED tests/serializers/test_model.py::test_model_wrong_warn PASSED tests/serializers/test_model.py::test_exclude_none PASSED tests/serializers/test_model.py::test_exclude_unset PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Normal nested __all__] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Merge sub dicts 1] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Merge sub sets 2] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Merge sub sets 3] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Merge sub sets 1] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Merge sub dict-set] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Different keys 1] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Different keys 2] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Different keys 3] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Nested different keys 1] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Nested different keys 2] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Nested different keys 3] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Ignore __all__ for index with defined exclude 1] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Ignore __all__ for index with defined exclude 2] PASSED tests/serializers/test_model.py::test_advanced_exclude_nested_lists[Ignore __all__ for index with defined exclude 3] PASSED tests/serializers/test_model.py::test_function_plain_field_serializer_to_python PASSED tests/serializers/test_model.py::test_field_serializer_cached_property PASSED tests/serializers/test_model.py::test_function_wrap_field_serializer_to_python PASSED tests/serializers/test_model.py::test_function_plain_field_serializer_to_json PASSED tests/serializers/test_model.py::test_function_plain_field_serializer_with_computed_field PASSED tests/serializers/test_model.py::test_function_wrap_field_serializer_to_json PASSED tests/serializers/test_model.py::test_property PASSED tests/serializers/test_model.py::test_property_alias PASSED tests/serializers/test_model.py::test_computed_field_exclude_none PASSED tests/serializers/test_model.py::test_computed_field_exclude_none_different_order PASSED tests/serializers/test_model.py::test_cached_property_alias PASSED tests/serializers/test_model.py::test_property_attribute_error PASSED tests/serializers/test_model.py::test_property_other_error PASSED tests/serializers/test_model.py::test_property_include_exclude PASSED tests/serializers/test_model.py::test_property_setter PASSED tests/serializers/test_model.py::test_extra PASSED tests/serializers/test_model.py::test_extra_config PASSED tests/serializers/test_model.py::test_extra_config_nested_model PASSED tests/serializers/test_model.py::test_extra_custom_serializer PASSED tests/serializers/test_model.py::test_no_warn_on_exclude PASSED tests/serializers/test_model.py::test_warn_on_missing_field PASSED tests/serializers/test_model_root.py::test_model_root PASSED tests/serializers/test_model_root.py::test_function_plain_field_serializer_to_python PASSED tests/serializers/test_model_root.py::test_function_wrap_field_serializer_to_python PASSED tests/serializers/test_model_root.py::test_function_plain_field_serializer_to_json PASSED tests/serializers/test_model_root.py::test_function_wrap_field_serializer_to_json PASSED tests/serializers/test_model_root.py::test_root_model_dump_with_base_model[BR] PASSED tests/serializers/test_model_root.py::test_root_model_dump_with_base_model[RB] PASSED tests/serializers/test_model_root.py::test_construct_nested PASSED tests/serializers/test_none.py::test_none_fallback[int] PASSED tests/serializers/test_none.py::test_none_fallback[bool] PASSED tests/serializers/test_none.py::test_none_fallback[float] PASSED tests/serializers/test_none.py::test_none_fallback[none] PASSED tests/serializers/test_none.py::test_none_fallback[str] PASSED tests/serializers/test_none.py::test_none_fallback[bytes] PASSED tests/serializers/test_none.py::test_none_fallback[datetime] PASSED tests/serializers/test_none.py::test_none_fallback[date] PASSED tests/serializers/test_none.py::test_none_fallback[time] PASSED tests/serializers/test_none.py::test_none_fallback[timedelta] PASSED tests/serializers/test_none.py::test_none_fallback[url] PASSED tests/serializers/test_none.py::test_none_fallback[multi-host-url] PASSED tests/serializers/test_none.py::test_none_fallback[list] PASSED tests/serializers/test_none.py::test_none_fallback[dict] PASSED tests/serializers/test_none.py::test_none_fallback[set] PASSED tests/serializers/test_none.py::test_none_fallback[frozenset] PASSED tests/serializers/test_none.py::test_none_fallback_key[int] PASSED tests/serializers/test_none.py::test_none_fallback_key[bool] PASSED tests/serializers/test_none.py::test_none_fallback_key[float] PASSED tests/serializers/test_none.py::test_none_fallback_key[none] PASSED tests/serializers/test_none.py::test_none_fallback_key[str] PASSED tests/serializers/test_none.py::test_none_fallback_key[bytes] PASSED tests/serializers/test_none.py::test_none_fallback_key[datetime] PASSED tests/serializers/test_none.py::test_none_fallback_key[date] PASSED tests/serializers/test_none.py::test_none_fallback_key[time] PASSED tests/serializers/test_none.py::test_none_fallback_key[timedelta] PASSED tests/serializers/test_none.py::test_none_fallback_key[url] PASSED tests/serializers/test_none.py::test_none_fallback_key[multi-host-url] PASSED tests/serializers/test_nullable.py::test_nullable PASSED tests/serializers/test_other.py::test_chain PASSED tests/serializers/test_other.py::test_function_plain PASSED tests/serializers/test_other.py::test_function_before PASSED tests/serializers/test_other.py::test_function_after PASSED tests/serializers/test_other.py::test_lax_or_strict PASSED tests/serializers/test_other.py::test_lax_or_strict_custom_ser PASSED tests/serializers/test_other.py::test_serialize_with_extra_on_superclass PASSED tests/serializers/test_pickling.py::test_basic_schema_serializer PASSED tests/serializers/test_pickling.py::test_schema_serializer_capturing_function[None-None-"None"] PASSED tests/serializers/test_pickling.py::test_schema_serializer_capturing_function[1-1-"1"] PASSED tests/serializers/test_pickling.py::test_schema_serializer_capturing_function[value2-[1, 2, 3]-"[1, 2, 3]"] PASSED tests/serializers/test_pickling.py::test_schema_serializer_containing_config PASSED tests/serializers/test_serialize_as_any.py::test_serialize_as_any_with_models PASSED tests/serializers/test_serialize_as_any.py::test_serialize_as_any_with_dataclass PASSED tests/serializers/test_serialize_as_any.py::test_serialize_as_any_with_typeddict PASSED tests/serializers/test_serialize_as_any.py::test_serialize_as_any_with_unrelated_models PASSED tests/serializers/test_set_frozenset.py::test_set_any PASSED tests/serializers/test_set_frozenset.py::test_frozenset_any PASSED tests/serializers/test_set_frozenset.py::test_set_fallback[apple-apple-`set\\[int\\]` but got `str` with value `'apple'`] PASSED tests/serializers/test_set_frozenset.py::test_set_fallback[input_value1-json_output1-`set\\[int\\]` but got `list` with value `\\[1, 2, 3\\]`] PASSED tests/serializers/test_set_frozenset.py::test_set_fallback[input_value2-json_output2-`set\\[int\\]` but got `tuple` with value `\\(1, 2, 3\\)`] PASSED tests/serializers/test_set_frozenset.py::test_set_fallback[input_value3-json_output3-`set\\[int\\]` but got `frozenset` with value `frozenset\\({1, 2, 3}\\)`] PASSED tests/serializers/test_set_frozenset.py::test_set_fallback[input_value4-json_output4-`int` but got `str` with value `'a'`] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-1-1-1-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-1-1-1-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-10000000000000000000000000000000000000000-10000000000000000000000000000000000000000-10000000000000000000000000000000000000000-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-10000000000000000000000000000000000000000-10000000000000000000000000000000000000000-10000000000000000000000000000000000000000-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[bool-True-True-true-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[bool-True-True-true-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[bool-False-False-false-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[bool-False-False-false-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-1.0-1.0-1.0-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-1.0-1.0-1.0-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-42.31415-42.31415-42.31415-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-42.31415-42.31415-42.31415-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[none-None-None-null-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[none-None-None-null-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-42-42-42-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-42-42-42-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-MyIntEnum.one-MyIntEnum.one-1-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[int-MyIntEnum.one-MyIntEnum.one-1-any] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-42.0-42.0-42.0-None] PASSED tests/serializers/test_simple.py::test_simple_serializers[float-42.0-42.0-42.0-any] PASSED tests/serializers/test_simple.py::test_int_to_float PASSED tests/serializers/test_simple.py::test_int_to_float_key PASSED tests/serializers/test_simple.py::test_simple_serializers_fallback[int] PASSED tests/serializers/test_simple.py::test_simple_serializers_fallback[bool] PASSED tests/serializers/test_simple.py::test_simple_serializers_fallback[float] PASSED tests/serializers/test_simple.py::test_simple_serializers_fallback[none] PASSED tests/serializers/test_simple.py::test_numpy PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[inf-null-config0] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[-inf-null-config1] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[nan-null-config2] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[inf-null-config3] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[-inf-null-config4] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[nan-null-config5] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[inf-Infinity-config6] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[-inf--Infinity-config7] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[nan-NaN-config8] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[inf-"Infinity"-config9] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[-inf-"-Infinity"-config10] PASSED tests/serializers/test_simple.py::test_float_inf_and_nan_serializers[nan-"NaN"-config11] PASSED tests/serializers/test_string.py::test_str PASSED tests/serializers/test_string.py::test_huge_str PASSED tests/serializers/test_string.py::test_str_fallback PASSED tests/serializers/test_string.py::test_str_no_warnings PASSED tests/serializers/test_string.py::test_str_errors PASSED tests/serializers/test_string.py::test_subclass_str[foo-foo0-str] PASSED tests/serializers/test_string.py::test_subclass_str[foo-foo0-any] PASSED tests/serializers/test_string.py::test_subclass_str[foo-foo1-str] PASSED tests/serializers/test_string.py::test_subclass_str[foo-foo1-any] PASSED tests/serializers/test_string.py::test_subclass_str[foo-value-foo-value-str] PASSED tests/serializers/test_string.py::test_subclass_str[foo-value-foo-value-any] PASSED tests/serializers/test_timedelta.py::test_timedelta PASSED tests/serializers/test_timedelta.py::test_timedelta_float PASSED tests/serializers/test_timedelta.py::test_timedelta_key PASSED tests/serializers/test_timedelta.py::test_pandas SKIPPED (pandas not...) tests/serializers/test_typed_dict.py::test_typed_dict[extra_behavior_kw0] PASSED tests/serializers/test_typed_dict.py::test_typed_dict[extra_behavior_kw1] PASSED tests/serializers/test_typed_dict.py::test_typed_dict[extra_behavior_kw2] PASSED tests/serializers/test_typed_dict.py::test_typed_dict_fields_has_type PASSED tests/serializers/test_typed_dict.py::test_typed_dict_allow_extra PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params0] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params1] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params2] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params3] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params4] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params5] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params6] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params7] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params8] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params9] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_args[params10] PASSED tests/serializers/test_typed_dict.py::test_include_exclude_schema PASSED tests/serializers/test_typed_dict.py::test_alias PASSED tests/serializers/test_typed_dict.py::test_exclude_none PASSED tests/serializers/test_typed_dict.py::test_exclude_default PASSED tests/serializers/test_typed_dict.py::test_function_plain_field_serializer_to_python PASSED tests/serializers/test_typed_dict.py::test_function_wrap_field_serializer_to_python PASSED tests/serializers/test_typed_dict.py::test_function_plain_field_serializer_to_json PASSED tests/serializers/test_typed_dict.py::test_function_plain_field_serializer_to_json_no_info PASSED tests/serializers/test_typed_dict.py::test_function_wrap_field_serializer_to_json PASSED tests/serializers/test_typed_dict.py::test_function_wrap_field_serializer_to_json_no_info PASSED tests/serializers/test_typed_dict.py::test_extra_custom_serializer PASSED tests/serializers/test_union.py::test_union_bool_int[True-True-False-False] PASSED tests/serializers/test_union.py::test_union_bool_int[True-True-False-True] PASSED tests/serializers/test_union.py::test_union_bool_int[True-True-True-False] PASSED tests/serializers/test_union.py::test_union_bool_int[True-True-True-True] PASSED tests/serializers/test_union.py::test_union_bool_int[False-False-False-False] PASSED tests/serializers/test_union.py::test_union_bool_int[False-False-False-True] PASSED tests/serializers/test_union.py::test_union_bool_int[False-False-True-False] PASSED tests/serializers/test_union.py::test_union_bool_int[False-False-True-True] PASSED tests/serializers/test_union.py::test_union_bool_int[1-1-False-False] PASSED tests/serializers/test_union.py::test_union_bool_int[1-1-False-True] PASSED tests/serializers/test_union.py::test_union_bool_int[1-1-True-False] PASSED tests/serializers/test_union.py::test_union_bool_int[1-1-True-True] PASSED tests/serializers/test_union.py::test_union_bool_int[123-123-False-False] PASSED tests/serializers/test_union.py::test_union_bool_int[123-123-False-True] PASSED tests/serializers/test_union.py::test_union_bool_int[123-123-True-False] PASSED tests/serializers/test_union.py::test_union_bool_int[123-123-True-True] PASSED tests/serializers/test_union.py::test_union_bool_int[-42--42-False-False] PASSED tests/serializers/test_union.py::test_union_bool_int[-42--42-False-True] PASSED tests/serializers/test_union.py::test_union_bool_int[-42--42-True-False] PASSED tests/serializers/test_union.py::test_union_bool_int[-42--42-True-True] PASSED tests/serializers/test_union.py::test_union_error PASSED tests/serializers/test_union.py::test_model_a[input_value0] PASSED tests/serializers/test_union.py::test_model_a[input_value1] PASSED tests/serializers/test_union.py::test_model_b[input_value0] PASSED tests/serializers/test_union.py::test_model_b[input_value1] PASSED tests/serializers/test_union.py::test_keys PASSED tests/serializers/test_union.py::test_union_of_functions PASSED tests/serializers/test_union.py::test_typed_dict_literal PASSED tests/serializers/test_union.py::test_typed_dict_missing PASSED tests/serializers/test_union.py::test_typed_dict_extra PASSED tests/serializers/test_union.py::test_typed_dict_different_fields PASSED tests/serializers/test_union.py::test_dataclass_union PASSED tests/serializers/test_union.py::test_model_union PASSED tests/serializers/test_union.py::test_union_literal_with_other_type[False-false] PASSED tests/serializers/test_union.py::test_union_literal_with_other_type[abc-"abc"] PASSED tests/serializers/test_union.py::test_union_serializes_model_subclass_from_definition PASSED tests/serializers/test_union.py::test_union_serializes_list_of_model_subclass_from_definition PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left0-core_schema_right0-True-True-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left0-core_schema_right0-True-True-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left1-core_schema_right1-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left1-core_schema_right1-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left2-core_schema_right2-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left2-core_schema_right2-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left3-core_schema_right3-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left3-core_schema_right3-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left4-core_schema_right4-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left4-core_schema_right4-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left5-core_schema_right5-input_value5-expected_value5-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left5-core_schema_right5-input_value5-expected_value5-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left6-core_schema_right6-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left6-core_schema_right6-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left7-core_schema_right7-input_value7-expected_value7-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left7-core_schema_right7-input_value7-expected_value7-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left8-core_schema_right8-input_value8-expected_value8-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left8-core_schema_right8-input_value8-expected_value8-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left9-core_schema_right9-_1-_1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left9-core_schema_right9-_1-_1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left10-core_schema_right10-input_value10-expected_value10-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left10-core_schema_right10-input_value10-expected_value10-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left11-core_schema_right11-$(UUID)-$(UUID)-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass[core_schema_left11-core_schema_right11-$(UUID)-$(UUID)-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left0-core_schema_right0-True-True-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left0-core_schema_right0-True-True-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left1-core_schema_right1-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left1-core_schema_right1-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left2-core_schema_right2-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left2-core_schema_right2-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left3-core_schema_right3-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left3-core_schema_right3-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left4-core_schema_right4-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left4-core_schema_right4-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left5-core_schema_right5-input_value5-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left5-core_schema_right5-input_value5-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left6-core_schema_right6-1-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left6-core_schema_right6-1-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left7-core_schema_right7-input_value7-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left7-core_schema_right7-input_value7-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left8-core_schema_right8-input_value8-1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left8-core_schema_right8-input_value8-1-True] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left9-core_schema_right9-_1-_1-False] PASSED tests/serializers/test_union.py::test_union_serializer_picks_exact_type_over_subclass_json[core_schema_left9-core_schema_right9-_1-_1-True] PASSED tests/serializers/test_union.py::test_tagged_union PASSED tests/serializers/test_union.py::test_union_float_int PASSED tests/serializers/test_union.py::test_custom_serializer PASSED tests/serializers/test_union.py::test_tagged_union_with_aliases PASSED tests/serializers/test_union.py::test_union_model_wrap_serializer PASSED tests/serializers/test_union.py::test_union_of_unions_of_models[input0-expected0] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models[input1-expected1] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models[input2-expected2] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models[input3-expected3] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_invalid_variant PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union[input0-expected0] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union[input1-expected1] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union[input2-expected2] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union[input3-expected3] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_invalid_variant PASSED tests/serializers/test_union.py::test_mixed_union_models_and_other_types PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_key_serialization[input0-{"true":"1"}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_key_serialization[input1-{"1":"1"}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_key_serialization[input2-{"2.3":"1"}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_key_serialization[input3-{"a":"b"}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_serialization[input0-{"key":true}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_serialization[input1-{"key":1}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_serialization[input2-{"key":2.3}] PASSED tests/serializers/test_union.py::test_union_of_unions_of_models_with_tagged_union_json_serialization[input3-{"key":"a"}] PASSED tests/serializers/test_union.py::test_discriminated_union_ser_with_typed_dict PASSED tests/serializers/test_url.py::test_url PASSED tests/serializers/test_url.py::test_multi_host_url PASSED tests/serializers/test_url.py::test_url_dict_keys PASSED tests/serializers/test_url.py::test_multi_host_url_dict_keys PASSED tests/serializers/test_url.py::test_any PASSED tests/serializers/test_url.py::test_custom_serializer PASSED tests/serializers/test_url.py::test_url_subclass[Url] PASSED tests/serializers/test_url.py::test_url_subclass[MultiHostUrl] PASSED tests/serializers/test_url.py::test_url_pickle[value0] PASSED tests/serializers/test_url.py::test_url_pickle[value1] PASSED tests/serializers/test_uuid.py::test_uuid PASSED tests/serializers/test_uuid.py::test_uuid_key PASSED tests/serializers/test_uuid.py::test_uuid_json[value0-12345678-1234-5678-1234-567812345678] PASSED tests/serializers/test_uuid.py::test_uuid_json[value1-550e8400-e29b-41d4-a716-446655440000] PASSED tests/serializers/test_uuid.py::test_uuid_json[value2-123e4567-e89b-12d3-a456-426655440000] PASSED tests/serializers/test_uuid.py::test_uuid_json[value3-00000000-0000-0000-0000-000000000000] PASSED tests/serializers/test_uuid.py::test_any_uuid_key PASSED tests/test_build.py::test_build_error_type PASSED tests/test_build.py::test_build_error_internal PASSED tests/test_build.py::test_build_error_deep PASSED tests/test_build.py::test_schema_as_string PASSED tests/test_build.py::test_schema_wrong_type PASSED tests/test_build.py::test_pickle[1] PASSED tests/test_build.py::test_pickle[2] PASSED tests/test_build.py::test_pickle[3] PASSED tests/test_build.py::test_pickle[4] PASSED tests/test_build.py::test_pickle[5] PASSED tests/test_build.py::test_schema_definition_error SKIPPED (unconditi...) tests/test_build.py::test_not_schema_definition_error PASSED tests/test_build.py::test_no_type PASSED tests/test_build.py::test_wrong_type PASSED tests/test_build.py::test_function_no_mode PASSED tests/test_build.py::test_try_self_schema_discriminator PASSED tests/test_build.py::test_build_recursive_schema_from_defs PASSED tests/test_config.py::test_on_field PASSED tests/test_config.py::test_on_config PASSED tests/test_config.py::test_field_priority_arg PASSED tests/test_config.py::test_on_model_class PASSED tests/test_config.py::test_field_priority_model PASSED tests/test_config.py::test_allow_inf_nan[{}-{'type': 'float'}-{'x': 'nan'}-IsInstance() & HasAttributes(x=FunctionCheck(isnan))] PASSED tests/test_config.py::test_allow_inf_nan[{'allow_inf_nan': True}-{'type': 'float'}-{'x': 'nan'}-IsInstance() & HasAttributes(x=FunctionCheck(isnan))] PASSED tests/test_config.py::test_allow_inf_nan[{'allow_inf_nan': False}-{'type': 'float'}-{'x': 'nan'}-Err('Input should be a finite number [type=finite_number,')] PASSED tests/test_config.py::test_allow_inf_nan[{'allow_inf_nan': True}-{'type': 'float', 'allow_inf_nan': False}-{'x': 'nan'}-Err('Input should be a finite number [type=finite_number,')] PASSED tests/test_config.py::test_allow_inf_nan[{'allow_inf_nan': False}-{'type': 'float', 'allow_inf_nan': True}-{'x': 'nan'}-IsInstance() & HasAttributes(x=FunctionCheck(isnan))] PASSED tests/test_config.py::test_hide_input_in_errors[config0-type=string_type, input_value=123, input_type=int] PASSED tests/test_config.py::test_hide_input_in_errors[config1-type=string_type, input_value=123, input_type=int] PASSED tests/test_config.py::test_hide_input_in_errors[config2-type=string_type] PASSED tests/test_config.py::test_cache_strings PASSED tests/test_custom_errors.py::test_validation_error_subclassable PASSED tests/test_custom_errors.py::test_validation_error_loc_overrides PASSED tests/test_custom_errors.py::test_custom_pydantic_error_subclassable PASSED tests/test_custom_errors.py::test_custom_pydantic_error_overrides PASSED tests/test_docstrings.py::test_docstrings[NotSetType.token] SKIPPED tests/test_docstrings.py::test_readme[NotSetType.token] SKIPPED (Onl...) tests/test_errors.py::test_pydantic_value_error PASSED tests/test_errors.py::test_pydantic_value_error_nested_ctx[my custom error-my custom error] PASSED tests/test_errors.py::test_pydantic_value_error_nested_ctx[my custom error {foo}-my custom error {'bar': []}] PASSED tests/test_errors.py::test_pydantic_value_error_none PASSED tests/test_errors.py::test_pydantic_value_error_usage PASSED tests/test_errors.py::test_pydantic_value_error_invalid_dict PASSED tests/test_errors.py::test_pydantic_value_error_invalid_type PASSED tests/test_errors.py::test_validator_instance_plain PASSED tests/test_errors.py::test_validator_instance_after PASSED tests/test_errors.py::test_pydantic_error_type PASSED tests/test_errors.py::test_pydantic_error_type_nested_ctx PASSED tests/test_errors.py::test_pydantic_error_type_raise_no_ctx PASSED tests/test_errors.py::test_pydantic_error_type_raise_ctx[extra0] PASSED tests/test_errors.py::test_pydantic_error_type_raise_ctx[extra1] PASSED tests/test_errors.py::test_pydantic_error_type_raise_ctx[extra2] PASSED tests/test_errors.py::test_pydantic_error_type_raise_ctx[extra3] PASSED tests/test_errors.py::test_pydantic_error_type_raise_ctx[extra4] PASSED tests/test_errors.py::test_pydantic_error_type_raise_custom_no_ctx[None] PASSED tests/test_errors.py::test_pydantic_error_type_raise_custom_no_ctx[ctx1] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_ctx[extra0] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_ctx[extra1] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_ctx[extra2] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_ctx[extra3] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_ctx[extra4] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_no_ctx[None] PASSED tests/test_errors.py::test_pydantic_custom_error_type_raise_custom_no_ctx[ctx1] PASSED tests/test_errors.py::test_error_type[no_such_attribute-Object has no attribute 'wrong_name'-context0] PASSED tests/test_errors.py::test_error_type[json_invalid-Invalid JSON: foobar-context1] PASSED tests/test_errors.py::test_error_type[json_type-JSON input should be string, bytes or bytearray-None] PASSED tests/test_errors.py::test_error_type[needs_python_object-Cannot check `isinstance` when validating from json, use a JsonOrPython validator instead-context3] PASSED tests/test_errors.py::test_error_type[recursion_loop-Recursion error - cyclic reference detected-None] PASSED tests/test_errors.py::test_error_type[model_type-Input should be a valid dictionary or instance of Foobar-context5] PASSED tests/test_errors.py::test_error_type[model_attributes_type-Input should be a valid dictionary or object to extract fields from-None] PASSED tests/test_errors.py::test_error_type[dataclass_exact_type-Input should be an instance of Foobar-context7] PASSED tests/test_errors.py::test_error_type[dataclass_type-Input should be a dictionary or an instance of Foobar-context8] PASSED tests/test_errors.py::test_error_type[missing-Field required-None] PASSED tests/test_errors.py::test_error_type[frozen_field-Field is frozen-None] PASSED tests/test_errors.py::test_error_type[frozen_instance-Instance is frozen-None] PASSED tests/test_errors.py::test_error_type[extra_forbidden-Extra inputs are not permitted-None] PASSED tests/test_errors.py::test_error_type[invalid_key-Keys should be strings-None] PASSED tests/test_errors.py::test_error_type[get_attribute_error-Error extracting attribute: foo-context14] PASSED tests/test_errors.py::test_error_type[none_required-Input should be None-None] PASSED tests/test_errors.py::test_error_type[enum-Input should be foo-context16] PASSED tests/test_errors.py::test_error_type[greater_than-Input should be greater than 42.1-context17] PASSED tests/test_errors.py::test_error_type[greater_than-Input should be greater than 42.1-context18] PASSED tests/test_errors.py::test_error_type[greater_than-Input should be greater than 2020-01-01-context19] PASSED tests/test_errors.py::test_error_type[greater_than_equal-Input should be greater than or equal to 42.1-context20] PASSED tests/test_errors.py::test_error_type[less_than-Input should be less than 42.1-context21] PASSED tests/test_errors.py::test_error_type[less_than_equal-Input should be less than or equal to 42.1-context22] PASSED tests/test_errors.py::test_error_type[finite_number-Input should be a finite number-None] PASSED tests/test_errors.py::test_error_type[too_short-Foobar should have at least 42 items after validation, not 40-context24] PASSED tests/test_errors.py::test_error_type[too_long-Foobar should have at most 42 items after validation, not 50-context25] PASSED tests/test_errors.py::test_error_type[string_type-Input should be a valid string-None] PASSED tests/test_errors.py::test_error_type[string_sub_type-Input should be a string, not an instance of a subclass of str-None] PASSED tests/test_errors.py::test_error_type[string_unicode-Input should be a valid string, unable to parse raw data as a unicode string-None] PASSED tests/test_errors.py::test_error_type[string_pattern_mismatch-String should match pattern 'foo'-context29] PASSED tests/test_errors.py::test_error_type[string_too_short-String should have at least 42 characters-context30] PASSED tests/test_errors.py::test_error_type[string_too_short-String should have at least 1 character-context31] PASSED tests/test_errors.py::test_error_type[string_too_long-String should have at most 42 characters-context32] PASSED tests/test_errors.py::test_error_type[string_too_long-String should have at most 1 character-context33] PASSED tests/test_errors.py::test_error_type[dict_type-Input should be a valid dictionary-None] PASSED tests/test_errors.py::test_error_type[mapping_type-Input should be a valid mapping, error: foobar-context35] PASSED tests/test_errors.py::test_error_type[iterable_type-Input should be iterable-None] PASSED tests/test_errors.py::test_error_type[iteration_error-Error iterating over object, error: foobar-context37] PASSED tests/test_errors.py::test_error_type[list_type-Input should be a valid list-None] PASSED tests/test_errors.py::test_error_type[tuple_type-Input should be a valid tuple-None] PASSED tests/test_errors.py::test_error_type[set_type-Input should be a valid set-None] PASSED tests/test_errors.py::test_error_type[bool_type-Input should be a valid boolean-None] PASSED tests/test_errors.py::test_error_type[bool_parsing-Input should be a valid boolean, unable to interpret input-None] PASSED tests/test_errors.py::test_error_type[int_type-Input should be a valid integer-None] PASSED tests/test_errors.py::test_error_type[int_parsing-Input should be a valid integer, unable to parse string as an integer-None] PASSED tests/test_errors.py::test_error_type[int_parsing_size-Unable to parse input string as an integer, exceeded maximum size-None] PASSED tests/test_errors.py::test_error_type[int_from_float-Input should be a valid integer, got a number with a fractional part-None] PASSED tests/test_errors.py::test_error_type[multiple_of-Input should be a multiple of 42.1-context47] PASSED tests/test_errors.py::test_error_type[greater_than-Input should be greater than 42.1-context48] PASSED tests/test_errors.py::test_error_type[greater_than_equal-Input should be greater than or equal to 42.1-context49] PASSED tests/test_errors.py::test_error_type[less_than-Input should be less than 42.1-context50] PASSED tests/test_errors.py::test_error_type[less_than_equal-Input should be less than or equal to 42.1-context51] PASSED tests/test_errors.py::test_error_type[float_type-Input should be a valid number-None] PASSED tests/test_errors.py::test_error_type[float_parsing-Input should be a valid number, unable to parse string as a number-None] PASSED tests/test_errors.py::test_error_type[bytes_type-Input should be a valid bytes-None] PASSED tests/test_errors.py::test_error_type[bytes_too_short-Data should have at least 42 bytes-context55] PASSED tests/test_errors.py::test_error_type[bytes_too_short-Data should have at least 1 byte-context56] PASSED tests/test_errors.py::test_error_type[bytes_too_long-Data should have at most 42 bytes-context57] PASSED tests/test_errors.py::test_error_type[bytes_too_long-Data should have at most 1 byte-context58] PASSED tests/test_errors.py::test_error_type[bytes_invalid_encoding-Data should be valid base64: Invalid byte 1, offset 1-context59] PASSED tests/test_errors.py::test_error_type[bytes_invalid_encoding-Data should be valid hex: Odd number of digits-context60] PASSED tests/test_errors.py::test_error_type[value_error-Value error, foobar-context61] PASSED tests/test_errors.py::test_error_type[assertion_error-Assertion failed, foobar-context62] PASSED tests/test_errors.py::test_error_type[literal_error-Input should be foo-context63] PASSED tests/test_errors.py::test_error_type[literal_error-Input should be foo or bar-context64] PASSED tests/test_errors.py::test_error_type[date_type-Input should be a valid date-None] PASSED tests/test_errors.py::test_error_type[date_parsing-Input should be a valid date in the format YYYY-MM-DD, foobar-context66] PASSED tests/test_errors.py::test_error_type[date_from_datetime_parsing-Input should be a valid date or datetime, foobar-context67] PASSED tests/test_errors.py::test_error_type[date_from_datetime_inexact-Datetimes provided to dates should have zero time - e.g. be exact dates-None] PASSED tests/test_errors.py::test_error_type[date_past-Date should be in the past-None] PASSED tests/test_errors.py::test_error_type[date_future-Date should be in the future-None] PASSED tests/test_errors.py::test_error_type[time_type-Input should be a valid time-None] PASSED tests/test_errors.py::test_error_type[time_parsing-Input should be in a valid time format, foobar-context72] PASSED tests/test_errors.py::test_error_type[datetime_type-Input should be a valid datetime-None] PASSED tests/test_errors.py::test_error_type[datetime_parsing-Input should be a valid datetime, foobar-context74] PASSED tests/test_errors.py::test_error_type[datetime_from_date_parsing-Input should be a valid datetime or date, foobar-context75] PASSED tests/test_errors.py::test_error_type[datetime_object_invalid-Invalid datetime object, got foobar-context76] PASSED tests/test_errors.py::test_error_type[datetime_past-Input should be in the past-None] PASSED tests/test_errors.py::test_error_type[datetime_future-Input should be in the future-None] PASSED tests/test_errors.py::test_error_type[timezone_naive-Input should not have timezone info-None] PASSED tests/test_errors.py::test_error_type[timezone_aware-Input should have timezone info-None] PASSED tests/test_errors.py::test_error_type[timezone_offset-Timezone offset of 0 required, got 60-context81] PASSED tests/test_errors.py::test_error_type[time_delta_type-Input should be a valid timedelta-None] PASSED tests/test_errors.py::test_error_type[time_delta_parsing-Input should be a valid timedelta, foobar-context83] PASSED tests/test_errors.py::test_error_type[frozen_set_type-Input should be a valid frozenset-None] PASSED tests/test_errors.py::test_error_type[is_instance_of-Input should be an instance of Foo-context85] PASSED tests/test_errors.py::test_error_type[is_subclass_of-Input should be a subclass of Foo-context86] PASSED tests/test_errors.py::test_error_type[callable_type-Input should be callable-None] PASSED tests/test_errors.py::test_error_type[union_tag_invalid-Input tag 'foo' found using bar does not match any of the expected tags: baz-context88] PASSED tests/test_errors.py::test_error_type[union_tag_not_found-Unable to extract tag using discriminator foo-context89] PASSED tests/test_errors.py::test_error_type[arguments_type-Arguments must be a tuple, list or a dictionary-None] PASSED tests/test_errors.py::test_error_type[missing_argument-Missing required argument-None] PASSED tests/test_errors.py::test_error_type[unexpected_keyword_argument-Unexpected keyword argument-None] PASSED tests/test_errors.py::test_error_type[missing_keyword_only_argument-Missing required keyword only argument-None] PASSED tests/test_errors.py::test_error_type[unexpected_positional_argument-Unexpected positional argument-None] PASSED tests/test_errors.py::test_error_type[missing_positional_only_argument-Missing required positional only argument-None] PASSED tests/test_errors.py::test_error_type[multiple_argument_values-Got multiple values for argument-None] PASSED tests/test_errors.py::test_error_type[url_type-URL input should be a string or URL-None] PASSED tests/test_errors.py::test_error_type[url_parsing-Input should be a valid URL, Foobar-context98] PASSED tests/test_errors.py::test_error_type[url_syntax_violation-Input violated strict URL syntax rules, Foobar-context99] PASSED tests/test_errors.py::test_error_type[url_too_long-URL should have at most 42 characters-context100] PASSED tests/test_errors.py::test_error_type[url_too_long-URL should have at most 1 character-context101] PASSED tests/test_errors.py::test_error_type[url_scheme-URL scheme should be "foo", "bar" or "spam"-context102] PASSED tests/test_errors.py::test_error_type[uuid_type-UUID input should be a string, bytes or UUID object-None] PASSED tests/test_errors.py::test_error_type[uuid_parsing-Input should be a valid UUID, Foobar-context104] PASSED tests/test_errors.py::test_error_type[uuid_version-UUID version 42 expected-context105] PASSED tests/test_errors.py::test_error_type[decimal_type-Decimal input should be an integer, float, string or Decimal object-None] PASSED tests/test_errors.py::test_error_type[decimal_parsing-Input should be a valid decimal-None] PASSED tests/test_errors.py::test_error_type[decimal_max_digits-Decimal input should have no more than 42 digits in total-context108] PASSED tests/test_errors.py::test_error_type[decimal_max_digits-Decimal input should have no more than 1 digit in total-context109] PASSED tests/test_errors.py::test_error_type[decimal_max_places-Decimal input should have no more than 42 decimal places-context110] PASSED tests/test_errors.py::test_error_type[decimal_max_places-Decimal input should have no more than 1 decimal place-context111] PASSED tests/test_errors.py::test_error_type[decimal_whole_digits-Decimal input should have no more than 42 digits before the decimal point-context112] PASSED tests/test_errors.py::test_error_type[decimal_whole_digits-Decimal input should have no more than 1 digit before the decimal point-context113] PASSED tests/test_errors.py::test_error_type[complex_type-Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex-None] PASSED tests/test_errors.py::test_error_type[complex_str_parsing-Input should be a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex-None] PASSED tests/test_errors.py::test_all_errors_covered PASSED tests/test_errors.py::test_error_decimal PASSED tests/test_errors.py::test_custom_error_decimal PASSED tests/test_errors.py::test_pydantic_value_error_plain[python] PASSED tests/test_errors.py::test_pydantic_value_error_plain[json] PASSED tests/test_errors.py::test_list_omit_exception[python-exception0] PASSED tests/test_errors.py::test_list_omit_exception[python-PydanticOmit] PASSED tests/test_errors.py::test_list_omit_exception[json-exception0] PASSED tests/test_errors.py::test_list_omit_exception[json-PydanticOmit] PASSED tests/test_errors.py::test_omit_exc_repr PASSED tests/test_errors.py::test_type_error_error[greater_than-ctx0-GreaterThan: 'gt' context value must be a Number] PASSED tests/test_errors.py::test_type_error_error[model_type-ctx1-ModelType: 'class_name' context value must be a String] PASSED tests/test_errors.py::test_type_error_error[date_parsing-ctx2-DateParsing: 'error' context value must be a String] PASSED tests/test_errors.py::test_type_error_error[string_too_short-ctx3-StringTooShort: 'min_length' context value must be a usize] PASSED tests/test_errors.py::test_custom_context_for_simple_error PASSED tests/test_errors.py::test_all_errors PASSED tests/test_errors.py::test_validation_error_cause_contents SKIPPED (...) tests/test_errors.py::test_validation_error_cause_contents_legacy PASSED tests/test_errors.py::test_validation_error_cause_config_variants[Enabled-config0-CauseResult.IMPORT_ERROR] PASSED tests/test_errors.py::test_validation_error_cause_config_variants[Disabled specifically-config1-CauseResult.NO_CAUSE] PASSED tests/test_errors.py::test_validation_error_cause_config_variants[Disabled implicitly-config2-CauseResult.NO_CAUSE] PASSED tests/test_errors.py::test_validation_error_cause_traceback_preserved PASSED tests/test_errors.py::test_error_on_repr PASSED tests/test_errors.py::test_error_json PASSED tests/test_errors.py::test_error_json_python_error PASSED tests/test_errors.py::test_error_json_cycle PASSED tests/test_errors.py::test_error_json_unknown PASSED tests/test_errors.py::test_error_json_loc PASSED tests/test_errors.py::test_raise_validation_error PASSED tests/test_errors.py::test_raise_validation_error_hide_input[False-type=greater_than, input_value=4, input_type=int] PASSED tests/test_errors.py::test_raise_validation_error_hide_input[True-type=greater_than] PASSED tests/test_errors.py::test_raise_validation_error_json PASSED tests/test_errors.py::test_raise_validation_error_custom PASSED tests/test_errors.py::test_raise_validation_error_custom_nested_ctx[my custom error-my custom error] PASSED tests/test_errors.py::test_raise_validation_error_custom_nested_ctx[my custom error {foo}-my custom error {'bar': []}] PASSED tests/test_errors.py::test_raise_validation_error_known_class_ctx PASSED tests/test_errors.py::test_raise_validation_error_custom_class_ctx PASSED tests/test_errors.py::test_loc_with_dots PASSED tests/test_errors.py::test_hide_input_in_error PASSED tests/test_errors.py::test_hide_input_in_json PASSED tests/test_errors.py::test_validation_error_pickle PASSED tests/test_errors.py::test_errors_include_url PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_INCLUDE_URL-None-True] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_INCLUDE_URL-1-True] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_INCLUDE_URL-True-True] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_INCLUDE_URL-no-False] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_INCLUDE_URL-0-False] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_OMIT_URL-1-False] PASSED tests/test_errors.py::test_errors_include_url_envvar[PYDANTIC_ERRORS_OMIT_URL-None-True] PASSED tests/test_garbage_collection.py::test_gc_schema_serializer PASSED tests/test_garbage_collection.py::test_gc_schema_validator PASSED tests/test_garbage_collection.py::test_gc_validator_iterator PASSED tests/test_hypothesis.py::test_datetime_datetime PASSED tests/test_hypothesis.py::test_datetime_int PASSED tests/test_hypothesis.py::test_datetime_binary PASSED tests/test_hypothesis.py::test_definition_simple PASSED tests/test_hypothesis.py::test_recursive PASSED tests/test_hypothesis.py::test_definition_cycles PASSED tests/test_hypothesis.py::test_definition_broken PASSED tests/test_hypothesis.py::test_pytimedelta_as_timedelta PASSED tests/test_hypothesis.py::test_urls_text PASSED tests/test_hypothesis.py::test_multi_host_urls_text PASSED tests/test_hypothesis.py::test_serialize_string PASSED tests/test_isinstance.py::test_isinstance PASSED tests/test_isinstance.py::test_isinstance_strict PASSED tests/test_isinstance.py::test_internal_error PASSED tests/test_isinstance.py::test_omit[python] PASSED tests/test_isinstance.py::test_omit[json] PASSED tests/test_json.py::test_bool[false-False] PASSED tests/test_json.py::test_bool[true-True] PASSED tests/test_json.py::test_bool[0-False] PASSED tests/test_json.py::test_bool[1-True] PASSED tests/test_json.py::test_bool["yes"-True] PASSED tests/test_json.py::test_bool["no"-False] PASSED tests/test_json.py::test_input_types[[1, 2, 3]0] PASSED tests/test_json.py::test_input_types[[1, 2, 3]1] PASSED tests/test_json.py::test_input_types[input_value2] PASSED tests/test_json.py::test_input_type_invalid PASSED tests/test_json.py::test_null PASSED tests/test_json.py::test_str PASSED tests/test_json.py::test_bytes PASSED tests/test_json.py::test_int[123-123] PASSED tests/test_json.py::test_int["123"-123] PASSED tests/test_json.py::test_int[123.0-123] PASSED tests/test_json.py::test_int["123.0"-123] PASSED tests/test_json.py::test_int[10000000000000000000000000000000000000000-10000000000000000000000000000000000000000] PASSED tests/test_json.py::test_int[123.4-expected5] PASSED tests/test_json.py::test_int["123.4"-expected6] PASSED tests/test_json.py::test_int["string"-expected7] PASSED tests/test_json.py::test_float[123.4-123.4] PASSED tests/test_json.py::test_float[123.0-123.0] PASSED tests/test_json.py::test_float[123-123.0] PASSED tests/test_json.py::test_float["123.4"-123.4] PASSED tests/test_json.py::test_float["123.0"-123.0] PASSED tests/test_json.py::test_float["123"-123.0] PASSED tests/test_json.py::test_float["string"-expected6] PASSED tests/test_json.py::test_typed_dict PASSED tests/test_json.py::test_float_no_remainder PASSED tests/test_json.py::test_error_loc PASSED tests/test_json.py::test_dict PASSED tests/test_json.py::test_dict_any_value PASSED tests/test_json.py::test_json_invalid PASSED tests/test_json.py::test_to_json PASSED tests/test_json.py::test_to_json_fallback PASSED tests/test_json.py::test_to_jsonable_python PASSED tests/test_json.py::test_to_jsonable_python_fallback PASSED tests/test_json.py::test_to_jsonable_python_schema_serializer PASSED tests/test_json.py::test_cycle_same PASSED tests/test_json.py::test_cycle_change PASSED tests/test_json.py::test_json_key_fallback PASSED tests/test_json.py::test_bad_repr PASSED tests/test_json.py::test_inf_nan_allow PASSED tests/test_json.py::test_partial_parse PASSED tests/test_json.py::test_json_bytes_base64_round_trip PASSED tests/test_json.py::test_json_bytes_base64_no_padding PASSED tests/test_json.py::test_json_bytes_base64_invalid PASSED tests/test_json.py::test_json_bytes_hex_round_trip PASSED tests/test_json.py::test_json_bytes_hex_invalid PASSED tests/test_misc.py::test_module[ValidationError] PASSED tests/test_misc.py::test_module[SchemaValidator] PASSED tests/test_misc.py::test_module[SchemaError] PASSED tests/test_misc.py::test_version PASSED tests/test_misc.py::test_build_profile PASSED tests/test_misc.py::test_build_info PASSED tests/test_misc.py::test_schema_error PASSED tests/test_misc.py::test_validation_error PASSED tests/test_misc.py::test_validation_error_include_context PASSED tests/test_misc.py::test_custom_title PASSED tests/test_misc.py::test_validation_error_multiple PASSED tests/test_misc.py::test_core_schema_type_literal PASSED tests/test_misc.py::test_undefined PASSED tests/test_misc.py::test_unicode_error_input_repr PASSED tests/test_misc.py::test_core_schema_import_field_validation_info PASSED tests/test_misc.py::test_core_schema_import_missing PASSED tests/test_schema_functions.py::test_schema_functions[any_schema-()-{'type': 'any'}] PASSED tests/test_schema_functions.py::test_schema_functions[any_schema-(metadata=['foot', 'spa'])-{'type': 'any', 'metadata': ['foot', 'spa']}] PASSED tests/test_schema_functions.py::test_schema_functions[none_schema-()-{'type': 'none'}] PASSED tests/test_schema_functions.py::test_schema_functions[bool_schema-()-{'type': 'bool'}] PASSED tests/test_schema_functions.py::test_schema_functions[bool_schema-(strict=True)-{'type': 'bool', 'strict': True}] PASSED tests/test_schema_functions.py::test_schema_functions[int_schema-()-{'type': 'int'}] PASSED tests/test_schema_functions.py::test_schema_functions[int_schema-(metadata={'fred'})-{'type': 'int', 'metadata': {'fred'}}] PASSED tests/test_schema_functions.py::test_schema_functions[int_schema-(multiple_of=5, gt=10, lt=20)-{'type': 'int', 'multiple_of': 5, 'gt': 10, 'lt': 20}] PASSED tests/test_schema_functions.py::test_schema_functions[float_schema-()-{'type': 'float'}] PASSED tests/test_schema_functions.py::test_schema_functions[float_schema-(multiple_of=5, gt=1.2)-{'type': 'float', 'multiple_of': 5, 'gt': 1.2}] PASSED tests/test_schema_functions.py::test_schema_functions[str_schema-()-{'type': 'str'}] PASSED tests/test_schema_functions.py::test_schema_functions[str_schema-(min_length=5, max_length=10)-{'type': 'str', 'min_length': 5, 'max_length': 10}] PASSED tests/test_schema_functions.py::test_schema_functions[bytes_schema-()-{'type': 'bytes'}] PASSED tests/test_schema_functions.py::test_schema_functions[bytes_schema-(min_length=5, ref='xx')-{'type': 'bytes', 'min_length': 5, 'ref': 'xx'}] PASSED tests/test_schema_functions.py::test_schema_functions[date_schema-()-{'type': 'date'}] PASSED tests/test_schema_functions.py::test_schema_functions[date_schema-(gt=datetime.date(2020, 1, 1))-{'type': 'date', 'gt': datetime.date(2020, 1, 1)}] PASSED tests/test_schema_functions.py::test_schema_functions[time_schema-()-{'type': 'time', 'microseconds_precision': 'truncate'}] PASSED tests/test_schema_functions.py::test_schema_functions[datetime_schema-()-{'type': 'datetime', 'microseconds_precision': 'truncate'}] PASSED tests/test_schema_functions.py::test_schema_functions[timedelta_schema-()-{'type': 'timedelta', 'microseconds_precision': 'truncate'}] PASSED tests/test_schema_functions.py::test_schema_functions[time_schema-(microseconds_precision='error')-{'type': 'time', 'microseconds_precision': 'error'}] PASSED tests/test_schema_functions.py::test_schema_functions[datetime_schema-(microseconds_precision='error')-{'type': 'datetime', 'microseconds_precision': 'error'}] PASSED tests/test_schema_functions.py::test_schema_functions[timedelta_schema-(microseconds_precision='error')-{'type': 'timedelta', 'microseconds_precision': 'error'}] PASSED tests/test_schema_functions.py::test_schema_functions[literal_schema-(['a', 'b'])-{'type': 'literal', 'expected': ['a', 'b']}] PASSED tests/test_schema_functions.py::test_schema_functions[enum_schema-(, [, ])-{'type': 'enum', 'cls': , 'members': [, ]}] PASSED tests/test_schema_functions.py::test_schema_functions[is_instance_schema-()-{'type': 'is-instance', 'cls': }] PASSED tests/test_schema_functions.py::test_schema_functions[callable_schema-()-{'type': 'callable'}] PASSED tests/test_schema_functions.py::test_schema_functions[list_schema-()-{'type': 'list'}] PASSED tests/test_schema_functions.py::test_schema_functions[list_schema-({'type': 'int'})-{'type': 'list', 'items_schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[tuple_schema-([])-{'type': 'tuple', 'items_schema': []}] PASSED tests/test_schema_functions.py::test_schema_functions[set_schema-({'type': 'int'}, min_length=4)-{'type': 'set', 'items_schema': {'type': 'int'}, 'min_length': 4}] PASSED tests/test_schema_functions.py::test_schema_functions[frozenset_schema-({'type': 'int'}, max_length=5)-{'type': 'frozenset', 'items_schema': {'type': 'int'}, 'max_length': 5}] PASSED tests/test_schema_functions.py::test_schema_functions[generator_schema-({'type': 'int'})-{'type': 'generator', 'items_schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[dict_schema-()-{'type': 'dict'}] PASSED tests/test_schema_functions.py::test_schema_functions[dict_schema-({'type': 'str'}, {'type': 'int'})-{'type': 'dict', 'keys_schema': {'type': 'str'}, 'values_schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[with_info_before_validator_function-(, {'type': 'int'})-{'type': 'function-before', 'function': {'type': 'with-info', 'function': }, 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[with_info_after_validator_function-(, {'type': 'int'})-{'type': 'function-after', 'function': {'type': 'with-info', 'function': }, 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[with_info_wrap_validator_function-(, {'type': 'int'})-{'type': 'function-wrap', 'function': {'type': 'with-info', 'function': }, 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[with_info_plain_validator_function-()-{'type': 'function-plain', 'function': {'type': 'with-info', 'function': }}] PASSED tests/test_schema_functions.py::test_schema_functions[with_default_schema-({'type': 'int'}, default=5)-{'type': 'default', 'schema': {'type': 'int'}, 'default': 5}] PASSED tests/test_schema_functions.py::test_schema_functions[with_default_schema-({'type': 'int'}, default=None)-{'type': 'default', 'schema': {'type': 'int'}, 'default': None}] PASSED tests/test_schema_functions.py::test_schema_functions[with_default_schema-({'type': 'int'}, default_factory=)-{'type': 'default', 'schema': {'type': 'int'}, 'default_factory': }] PASSED tests/test_schema_functions.py::test_schema_functions[nullable_schema-({'type': 'int'})-{'type': 'nullable', 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[union_schema-([{'type': 'int'}, {'type': 'str'}])-{'type': 'union', 'choices': [{'type': 'int'}, {'type': 'str'}]}] PASSED tests/test_schema_functions.py::test_schema_functions[union_schema-([{'type': 'int'}, {'type': 'str'}], custom_error_type='foobar', custom_error_message='This is Foobar')-{'type': 'union', 'choices': [{'type': 'int'}, {'type': 'str'}], 'custom_error_type': 'foobar', 'custom_error_message': 'This is Foobar'}] PASSED tests/test_schema_functions.py::test_schema_functions[tagged_union_schema-({'foo': {'type': 'int'}, 'bar': {'type': 'str'}}, 'foo')-{'type': 'tagged-union', 'choices': {'foo': {'type': 'int'}, 'bar': {'type': 'str'}}, 'discriminator': 'foo'}] PASSED tests/test_schema_functions.py::test_schema_functions[chain_schema-([{'type': 'int'}, {'type': 'str'}])-{'type': 'chain', 'steps': [{'type': 'int'}, {'type': 'str'}]}] PASSED tests/test_schema_functions.py::test_schema_functions[typed_dict_field-({'type': 'int'}, required=True)-{'type': 'typed-dict-field', 'schema': {'type': 'int'}, 'required': True}] PASSED tests/test_schema_functions.py::test_schema_functions[typed_dict_schema-({'foo': {'type': 'typed-dict-field', 'schema': {'type': 'int'}}})-{'type': 'typed-dict', 'fields': {'foo': {'type': 'typed-dict-field', 'schema': {'type': 'int'}}}}] PASSED tests/test_schema_functions.py::test_schema_functions[model_field-({'type': 'int'}, validation_alias='foobar')-{'type': 'model-field', 'schema': {'type': 'int'}, 'validation_alias': 'foobar'}] PASSED tests/test_schema_functions.py::test_schema_functions[model_fields_schema-({'foo': {'type': 'model-field', 'schema': {'type': 'int'}}})-{'type': 'model-fields', 'fields': {'foo': {'type': 'model-field', 'schema': {'type': 'int'}}}}] PASSED tests/test_schema_functions.py::test_schema_functions[model_schema-(, {'type': 'int'})-{'type': 'model', 'cls': , 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[arguments_parameter-('foo', {'type': 'int'})-{'name': 'foo', 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[arguments_schema-([{'name': 'foo', 'schema': {'type': 'int'}}, {'name': 'bar', 'schema': {'type': 'str'}}], serialization={'type': 'format', 'formatting_string': 'd'})-{'type': 'arguments', 'arguments_schema': [{'name': 'foo', 'schema': {'type': 'int'}}, {'name': 'bar', 'schema': {'type': 'str'}}], 'serialization': {'type': 'format', 'formatting_string': 'd'}}] PASSED tests/test_schema_functions.py::test_schema_functions[call_schema-({'type': 'arguments', 'arguments_schema': [{'name': 'foo', 'schema': {'type': 'int'}}]}, )-{'type': 'call', 'function': , 'arguments_schema': {'type': 'arguments', 'arguments_schema': [{'name': 'foo', 'schema': {'type': 'int'}}]}}] PASSED tests/test_schema_functions.py::test_schema_functions[custom_error_schema-({'type': 'int'}, 'foobar', custom_error_message='Hello')-{'type': 'custom-error', 'schema': {'type': 'int'}, 'custom_error_type': 'foobar', 'custom_error_message': 'Hello'}] PASSED tests/test_schema_functions.py::test_schema_functions[json_schema-({'type': 'int'})-{'type': 'json', 'schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[url_schema-()-{'type': 'url'}] PASSED tests/test_schema_functions.py::test_schema_functions[multi_host_url_schema-()-{'type': 'multi-host-url'}] PASSED tests/test_schema_functions.py::test_schema_functions[lax_or_strict_schema-({'type': 'int'}, {'type': 'int'})-{'type': 'lax-or-strict', 'lax_schema': {'type': 'int'}, 'strict_schema': {'type': 'int'}}] PASSED tests/test_schema_functions.py::test_schema_functions[json_or_python_schema-({'type': 'int'}, {'type': 'str'})-{'type': 'json-or-python', 'json_schema': {'type': 'int'}, 'python_schema': {'type': 'str'}}] PASSED tests/test_schema_functions.py::test_schema_functions[is_subclass_schema-()-{'type': 'is-subclass', 'cls': }] PASSED tests/test_schema_functions.py::test_schema_functions[definitions_schema-({'type': 'definition-ref', 'schema_ref': 'an-int'}, [{'type': 'int', 'ref': 'an-int'}])-{'type': 'definitions', 'schema': {'type': 'definition-ref', 'schema_ref': 'an-int'}, 'definitions': [{'type': 'int', 'ref': 'an-int'}]}] PASSED tests/test_schema_functions.py::test_schema_functions[definition_reference_schema-('foo')-{'type': 'definition-ref', 'schema_ref': 'foo'}] PASSED tests/test_schema_functions.py::test_schema_functions[dataclass_args_schema-('Foo', [{'name': 'foo', 'type': 'dataclass-field', 'schema': {'type': 'int'}}])-{'type': 'dataclass-args', 'dataclass_name': 'Foo', 'fields': [{'name': 'foo', 'type': 'dataclass-field', 'schema': {'type': 'int'}}]}] PASSED tests/test_schema_functions.py::test_schema_functions[dataclass_schema-(, {'type': 'int'}, ['foobar'])-{'type': 'dataclass', 'schema': {'type': 'int'}, 'fields': ['foobar'], 'cls': }] PASSED tests/test_schema_functions.py::test_schema_functions[dataclass_schema-(, {'type': 'int'}, ['foobar'], slots=True)-{'type': 'dataclass', 'schema': {'type': 'int'}, 'fields': ['foobar'], 'cls': , 'slots': True}] PASSED tests/test_schema_functions.py::test_schema_functions[uuid_schema-()-{'type': 'uuid'}] PASSED tests/test_schema_functions.py::test_schema_functions[decimal_schema-()-{'type': 'decimal'}] PASSED tests/test_schema_functions.py::test_schema_functions[decimal_schema-(multiple_of=5, gt=1.2)-{'type': 'decimal', 'multiple_of': 5, 'gt': 1.2}] PASSED tests/test_schema_functions.py::test_schema_functions[complex_schema-()-{'type': 'complex'}] PASSED tests/test_schema_functions.py::test_schema_functions[invalid_schema-()-{'type': 'invalid'}] PASSED tests/test_schema_functions.py::test_all_schema_functions_used PASSED tests/test_schema_functions.py::test_invalid_custom_error PASSED tests/test_schema_functions.py::test_invalid_custom_error_type PASSED tests/test_schema_functions.py::test_expected_serialization_types[return_schema0] PASSED tests/test_schema_functions.py::test_expected_serialization_types[return_schema1] PASSED tests/test_schema_functions.py::test_err_on_invalid PASSED tests/test_strict.py::test_int_strict_argument[python-False-False-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[python-False-False-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[python-None-False-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[python-None-False-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[python-True-False-123-123] PASSED tests/test_strict.py::test_int_strict_argument[python-True-False-123-expected5] PASSED tests/test_strict.py::test_int_strict_argument[python-False-True-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[python-False-True-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[python-None-True-123-123] PASSED tests/test_strict.py::test_int_strict_argument[python-None-True-123-expected9] PASSED tests/test_strict.py::test_int_strict_argument[python-True-True-123-123] PASSED tests/test_strict.py::test_int_strict_argument[python-True-True-123-expected11] PASSED tests/test_strict.py::test_int_strict_argument[python-False-None-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[python-False-None-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[python-None-None-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[python-None-None-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[python-True-None-123-123] PASSED tests/test_strict.py::test_int_strict_argument[python-True-None-123-expected17] PASSED tests/test_strict.py::test_int_strict_argument[json-False-False-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[json-False-False-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[json-None-False-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[json-None-False-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[json-True-False-123-123] PASSED tests/test_strict.py::test_int_strict_argument[json-True-False-123-expected5] PASSED tests/test_strict.py::test_int_strict_argument[json-False-True-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[json-False-True-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[json-None-True-123-123] PASSED tests/test_strict.py::test_int_strict_argument[json-None-True-123-expected9] PASSED tests/test_strict.py::test_int_strict_argument[json-True-True-123-123] PASSED tests/test_strict.py::test_int_strict_argument[json-True-True-123-expected11] PASSED tests/test_strict.py::test_int_strict_argument[json-False-None-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[json-False-None-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[json-None-None-123-123_0] PASSED tests/test_strict.py::test_int_strict_argument[json-None-None-123-123_1] PASSED tests/test_strict.py::test_int_strict_argument[json-True-None-123-123] PASSED tests/test_strict.py::test_int_strict_argument[json-True-None-123-expected17] PASSED tests/test_typing.py::test_schema_typing PASSED tests/test_typing.py::test_schema_typing_error PASSED tests/test_typing.py::test_schema_validator PASSED tests/test_typing.py::test_schema_validator_wrong PASSED tests/test_typing.py::test_correct_function_signature PASSED tests/test_typing.py::test_wrong_function_signature PASSED tests/test_typing.py::test_type_error PASSED tests/test_typing.py::test_ser_function_plain PASSED tests/test_typing.py::test_ser_function_wrap PASSED tests/test_typing.py::test_error_details PASSED tests/test_tzinfo.py::TestTzInfo::test_comparison PASSED tests/test_tzinfo.py::TestTzInfo::test_constructor PASSED tests/test_tzinfo.py::TestTzInfo::test_copy PASSED tests/test_tzinfo.py::TestTzInfo::test_deepcopy PASSED tests/test_tzinfo.py::TestTzInfo::test_dst PASSED tests/test_tzinfo.py::TestTzInfo::test_fromutc PASSED tests/test_tzinfo.py::TestTzInfo::test_inheritance PASSED tests/test_tzinfo.py::TestTzInfo::test_offset_boundaries PASSED tests/test_tzinfo.py::TestTzInfo::test_str PASSED tests/test_tzinfo.py::TestTzInfo::test_tzname PASSED tests/test_tzinfo.py::TestTzInfo::test_utcoffset PASSED tests/test_tzinfo.py::test_tzinfo_could_be_reused PASSED tests/test_validate_strings.py::test_bool PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'int'}-'1'-1-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'int'}-'1'-1-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'int'}-'xxx'-Err('type=int_parsing')-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'float'}-'1.1'-1.1-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'float'}-'1.10'-1.1-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'float'}-'1.1'-1.1-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'float'}-'1.10'-1.1-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01'-datetime.date(2017, 1, 1)-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01'-datetime.date(2017, 1, 1)-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'datetime', 'microseconds_precision': 'truncate'}-'2017-01-01T12:13:14.567'-datetime.datetime(2017, 1, 1, 12, 13, 14, 567000)-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'datetime', 'microseconds_precision': 'truncate'}-'2017-01-01T12:13:14.567'-datetime.datetime(2017, 1, 1, 12, 13, 14, 567000)-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01T12:13:14.567'-Err('type=date_from_datetime_inexact')-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01T12:13:14.567'-Err('type=date_parsing')-True] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01T00:00:00'-datetime.date(2017, 1, 1)-False] PASSED tests/test_validate_strings.py::test_validate_strings[{'type': 'date'}-'2017-01-01T00:00:00'-Err('type=date_parsing')-True] PASSED tests/test_validate_strings.py::test_dict PASSED tests/test_validate_strings.py::test_model PASSED tests/test_validate_strings.py::test_dataclass PASSED tests/test_validate_strings.py::test_typed_dict PASSED tests/test_validation_context.py::test_after[python] PASSED tests/test_validation_context.py::test_after[json] PASSED tests/test_validation_context.py::test_mutable_context[python] PASSED tests/test_validation_context.py::test_mutable_context[json] PASSED tests/test_validation_context.py::test_typed_dict[python] PASSED tests/test_validation_context.py::test_typed_dict[json] PASSED tests/test_validation_context.py::test_wrap[python] PASSED tests/test_validation_context.py::test_wrap[json] PASSED tests/test_validation_context.py::test_isinstance[python] PASSED tests/test_validation_context.py::test_isinstance[json] PASSED tests/test_validation_context.py::test_validate_assignment_with_context PASSED tests/validators/test_allow_partial.py::test_list PASSED tests/validators/test_allow_partial.py::test_set_frozenset[set_schema] PASSED tests/validators/test_allow_partial.py::test_set_frozenset[frozenset_schema] PASSED tests/validators/test_allow_partial.py::test_dict PASSED tests/validators/test_allow_partial.py::test_dict_list PASSED tests/validators/test_allow_partial.py::test_partial_typed_dict PASSED tests/validators/test_allow_partial.py::test_non_partial_typed_dict PASSED tests/validators/test_allow_partial.py::test_double_nested PASSED tests/validators/test_allow_partial.py::test_tuple_list PASSED tests/validators/test_allow_partial.py::test_dataclass PASSED tests/validators/test_allow_partial.py::test_nullable PASSED tests/validators/test_allow_partial.py::test_json[None] PASSED tests/validators/test_allow_partial.py::test_json[json_nested_type1] PASSED tests/validators/test_allow_partial.py::test_json_trailing_strings PASSED tests/validators/test_arguments.py::test_args_kwargs PASSED tests/validators/test_arguments.py::test_positional_args[python-(1, 'a', True)-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[python-[1, 'a', True]-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[python-ArgsKwargs((1, 'a', True))-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[python-(1, 'a', 'true')-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[python-'x'-Err('type=arguments_type,')] PASSED tests/validators/test_arguments.py::test_positional_args[python-ArgsKwargs((1, 'a', True), {'x': 1})-Err('', errors=[{'type': 'unexpected_keyword_argument', 'loc': ('x',), 'msg': 'Unexpected keyword argument', 'input': 1}])] PASSED tests/validators/test_arguments.py::test_positional_args[python-[1]-Err('', errors=[{'type': 'missing_positional_only_argument', 'loc': (1,), 'msg': 'Missing required positional only argument', 'input': [1]}, {'type': 'missing_positional_only_argument', 'loc': (2,), 'msg': 'Missing required positional only argument', 'input': [1]}])] PASSED tests/validators/test_arguments.py::test_positional_args[python-[1, 'a', True, 4]-Err('', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}])] PASSED tests/validators/test_arguments.py::test_positional_args[python-[1, 'a', True, 4, 5]-Err('', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}, {'type': 'unexpected_positional_argument', 'loc': (4,), 'msg': 'Unexpected positional argument', 'input': 5}])] PASSED tests/validators/test_arguments.py::test_positional_args[python-('x', 'a', 'wrong')-Err('', errors=[{'type': 'int_parsing', 'loc': (0,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'bool_parsing', 'loc': (2,), 'msg': 'Input should be a valid boolean, unable to interpret input', 'input': 'wrong'}])] PASSED tests/validators/test_arguments.py::test_positional_args[python-ArgsKwargs(())-Err('3 validation errors for arguments', errors=[{'type': 'missing_positional_only_argument', 'loc': (0,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}, {'type': 'missing_positional_only_argument', 'loc': (1,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}, {'type': 'missing_positional_only_argument', 'loc': (2,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}])] PASSED tests/validators/test_arguments.py::test_positional_args[json-(1, 'a', True)-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[json-[1, 'a', True]-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[json-ArgsKwargs((1, 'a', True))-((1, 'a', True), {})] SKIPPED tests/validators/test_arguments.py::test_positional_args[json-(1, 'a', 'true')-((1, 'a', True), {})] PASSED tests/validators/test_arguments.py::test_positional_args[json-'x'-Err('type=arguments_type,')] PASSED tests/validators/test_arguments.py::test_positional_args[json-ArgsKwargs((1, 'a', True), {'x': 1})-Err('', errors=[{'type': 'unexpected_keyword_argument', 'loc': ('x',), 'msg': 'Unexpected keyword argument', 'input': 1}])] SKIPPED tests/validators/test_arguments.py::test_positional_args[json-[1]-Err('', errors=[{'type': 'missing_positional_only_argument', 'loc': (1,), 'msg': 'Missing required positional only argument', 'input': [1]}, {'type': 'missing_positional_only_argument', 'loc': (2,), 'msg': 'Missing required positional only argument', 'input': [1]}])] PASSED tests/validators/test_arguments.py::test_positional_args[json-[1, 'a', True, 4]-Err('', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}])] PASSED tests/validators/test_arguments.py::test_positional_args[json-[1, 'a', True, 4, 5]-Err('', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}, {'type': 'unexpected_positional_argument', 'loc': (4,), 'msg': 'Unexpected positional argument', 'input': 5}])] PASSED tests/validators/test_arguments.py::test_positional_args[json-('x', 'a', 'wrong')-Err('', errors=[{'type': 'int_parsing', 'loc': (0,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'bool_parsing', 'loc': (2,), 'msg': 'Input should be a valid boolean, unable to interpret input', 'input': 'wrong'}])] PASSED tests/validators/test_arguments.py::test_positional_args[json-ArgsKwargs(())-Err('3 validation errors for arguments', errors=[{'type': 'missing_positional_only_argument', 'loc': (0,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}, {'type': 'missing_positional_only_argument', 'loc': (1,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}, {'type': 'missing_positional_only_argument', 'loc': (2,), 'msg': 'Missing required positional only argument', 'input': ArgsKwargs(())}])] SKIPPED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True})-((), {'a': 1, 'b': 'a', 'c': True})0] PASSED tests/validators/test_arguments.py::test_keyword_args[python-{'a': 1, 'b': 'a', 'c': True}-((), {'a': 1, 'b': 'a', 'c': True})] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': '1', 'b': 'a', 'c': 'True'})-((), {'a': 1, 'b': 'a', 'c': True})] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True})-((), {'a': 1, 'b': 'a', 'c': True})1] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((1,), {'a': 1, 'b': 'a', 'c': True})-Err('type=unexpected_positional_argument,')] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True, 'd': 'wrong'})-Err('type=unexpected_keyword_argument,', errors=[{'type': 'unexpected_keyword_argument', 'loc': ('d',), 'msg': 'Unexpected keyword argument', 'input': 'wrong'}])] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': 1, 'b': 'a'})-Err('type=missing_keyword_only_argument,', errors=[{'type': 'missing_keyword_only_argument', 'loc': ('c',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs((), {'a': 1, 'b': 'a'})}])] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs((), {'a': 'x', 'b': 'a', 'c': 'wrong'})-Err('', errors=[{'type': 'int_parsing', 'loc': ('a',), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'bool_parsing', 'loc': ('c',), 'msg': 'Input should be a valid boolean, unable to interpret input', 'input': 'wrong'}])] PASSED tests/validators/test_arguments.py::test_keyword_args[python-ArgsKwargs(())-Err('', errors=[{'type': 'missing_keyword_only_argument', 'loc': ('a',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}, {'type': 'missing_keyword_only_argument', 'loc': ('b',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}, {'type': 'missing_keyword_only_argument', 'loc': ('c',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}])] PASSED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True})-((), {'a': 1, 'b': 'a', 'c': True})0] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-{'a': 1, 'b': 'a', 'c': True}-((), {'a': 1, 'b': 'a', 'c': True})] PASSED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': '1', 'b': 'a', 'c': 'True'})-((), {'a': 1, 'b': 'a', 'c': True})] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True})-((), {'a': 1, 'b': 'a', 'c': True})1] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((1,), {'a': 1, 'b': 'a', 'c': True})-Err('type=unexpected_positional_argument,')] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': 1, 'b': 'a', 'c': True, 'd': 'wrong'})-Err('type=unexpected_keyword_argument,', errors=[{'type': 'unexpected_keyword_argument', 'loc': ('d',), 'msg': 'Unexpected keyword argument', 'input': 'wrong'}])] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': 1, 'b': 'a'})-Err('type=missing_keyword_only_argument,', errors=[{'type': 'missing_keyword_only_argument', 'loc': ('c',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs((), {'a': 1, 'b': 'a'})}])] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs((), {'a': 'x', 'b': 'a', 'c': 'wrong'})-Err('', errors=[{'type': 'int_parsing', 'loc': ('a',), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'bool_parsing', 'loc': ('c',), 'msg': 'Input should be a valid boolean, unable to interpret input', 'input': 'wrong'}])] SKIPPED tests/validators/test_arguments.py::test_keyword_args[json-ArgsKwargs(())-Err('', errors=[{'type': 'missing_keyword_only_argument', 'loc': ('a',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}, {'type': 'missing_keyword_only_argument', 'loc': ('b',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}, {'type': 'missing_keyword_only_argument', 'loc': ('c',), 'msg': 'Missing required keyword only argument', 'input': ArgsKwargs(())}])] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[python-{'a': 1, 'b': 'bb', 'c': True}-((), {'a': 1, 'b': 'bb', 'c': True})] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((), {'a': 1, 'b': 'bb', 'c': True})-((), {'a': 1, 'b': 'bb', 'c': True})] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((1, 'bb'), {'c': True})-((1, 'bb'), {'c': True})] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((1,), {'b': 'bb', 'c': True})-((1,), {'b': 'bb', 'c': True})] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((1,), {'a': 11, 'b': 'bb', 'c': True})-Err('type=multiple_argument_values,', errors=[{'type': 'multiple_argument_values', 'loc': ('a',), 'msg': 'Got multiple values for argument', 'input': 11}])] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((1, 'bb', 'cc'), {'b': 'bb', 'c': True})-Err('type=unexpected_positional_argument,', errors=[{'type': 'multiple_argument_values', 'loc': ('b',), 'msg': 'Got multiple values for argument', 'input': 'bb'}, {'type': 'unexpected_positional_argument', 'loc': (2,), 'msg': 'Unexpected positional argument', 'input': 'cc'}])] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[python-ArgsKwargs((1, 'b1'), {'a': 11, 'b': 'b2', 'c': True})-Err('type=multiple_argument_values,', errors=[{'type': 'multiple_argument_values', 'loc': ('a',), 'msg': 'Got multiple values for argument', 'input': 11}, {'type': 'multiple_argument_values', 'loc': ('b',), 'msg': 'Got multiple values for argument', 'input': 'b2'}])] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[json-{'a': 1, 'b': 'bb', 'c': True}-((), {'a': 1, 'b': 'bb', 'c': True})] PASSED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((), {'a': 1, 'b': 'bb', 'c': True})-((), {'a': 1, 'b': 'bb', 'c': True})] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((1, 'bb'), {'c': True})-((1, 'bb'), {'c': True})] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((1,), {'b': 'bb', 'c': True})-((1,), {'b': 'bb', 'c': True})] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((1,), {'a': 11, 'b': 'bb', 'c': True})-Err('type=multiple_argument_values,', errors=[{'type': 'multiple_argument_values', 'loc': ('a',), 'msg': 'Got multiple values for argument', 'input': 11}])] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((1, 'bb', 'cc'), {'b': 'bb', 'c': True})-Err('type=unexpected_positional_argument,', errors=[{'type': 'multiple_argument_values', 'loc': ('b',), 'msg': 'Got multiple values for argument', 'input': 'bb'}, {'type': 'unexpected_positional_argument', 'loc': (2,), 'msg': 'Unexpected positional argument', 'input': 'cc'}])] SKIPPED tests/validators/test_arguments.py::test_positional_or_keyword[json-ArgsKwargs((1, 'b1'), {'a': 11, 'b': 'b2', 'c': True})-Err('type=multiple_argument_values,', errors=[{'type': 'multiple_argument_values', 'loc': ('a',), 'msg': 'Got multiple values for argument', 'input': 11}, {'type': 'multiple_argument_values', 'loc': ('b',), 'msg': 'Got multiple values for argument', 'input': 'b2'}])] SKIPPED tests/validators/test_arguments.py::test_keyword_only_non_default[python-input_value0-expected0-arguments_schema0] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[python-input_value1-expected1-arguments_schema1] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[python-input_value2-expected2-arguments_schema2] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[python-input_value3-expected3-arguments_schema3] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[json-input_value0-expected0-arguments_schema0] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[json-input_value1-expected1-arguments_schema1] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[json-input_value2-expected2-arguments_schema2] PASSED tests/validators/test_arguments.py::test_keyword_only_non_default[json-input_value3-expected3-arguments_schema3] PASSED tests/validators/test_arguments.py::test_positional_optional[python-(1,)-((1,), {})] PASSED tests/validators/test_arguments.py::test_positional_optional[python-()-((42,), {})] PASSED tests/validators/test_arguments.py::test_positional_optional[json-(1,)-((1,), {})] PASSED tests/validators/test_arguments.py::test_positional_optional[json-()-((42,), {})] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[python-{'a': 1}-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[python-ArgsKwargs((), {'a': 1})-((), {'a': 1})0] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[python-ArgsKwargs((), {'a': 1})-((), {'a': 1})1] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[python-ArgsKwargs(())-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[json-{'a': 1}-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_p_or_k_optional[json-ArgsKwargs((), {'a': 1})-((), {'a': 1})0] SKIPPED tests/validators/test_arguments.py::test_p_or_k_optional[json-ArgsKwargs((), {'a': 1})-((), {'a': 1})1] SKIPPED tests/validators/test_arguments.py::test_p_or_k_optional[json-ArgsKwargs(())-((), {'a': 1})] SKIPPED tests/validators/test_arguments.py::test_var_args_only[python-[1, 2, 3]-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[python-ArgsKwargs((1, 2, 3))-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[python-[1]-((1,), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[python-[]-((), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[python-ArgsKwargs((1, 2, 3), {'a': 1})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_var_args_only[json-[1, 2, 3]-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[json-ArgsKwargs((1, 2, 3))-((1, 2, 3), {})] SKIPPED tests/validators/test_arguments.py::test_var_args_only[json-[1]-((1,), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[json-[]-((), {})] PASSED tests/validators/test_arguments.py::test_var_args_only[json-ArgsKwargs((1, 2, 3), {'a': 1})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] SKIPPED tests/validators/test_arguments.py::test_args_var_args_only[python-[1, 2, 3]-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-['1', '2', '3']-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-[1]-((1,), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-[]-Err('0\\n Missing required positional only argument')] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-['x']-Err('type=int_parsing,', errors=[{'type': 'int_parsing', 'loc': (0,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}])] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-[1, 'x', 'y']-Err('type=int_parsing,', errors=[{'type': 'int_parsing', 'loc': (1,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'int_parsing', 'loc': (2,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'y'}])] PASSED tests/validators/test_arguments.py::test_args_var_args_only[python-ArgsKwargs((1, 2, 3), {'a': 1})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-[1, 2, 3]-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-['1', '2', '3']-((1, 2, 3), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-[1]-((1,), {})] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-[]-Err('0\\n Missing required positional only argument')] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-['x']-Err('type=int_parsing,', errors=[{'type': 'int_parsing', 'loc': (0,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}])] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-[1, 'x', 'y']-Err('type=int_parsing,', errors=[{'type': 'int_parsing', 'loc': (1,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'x'}, {'type': 'int_parsing', 'loc': (2,), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'y'}])] PASSED tests/validators/test_arguments.py::test_args_var_args_only[json-ArgsKwargs((1, 2, 3), {'a': 1})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] SKIPPED tests/validators/test_arguments.py::test_both[python-ArgsKwargs((1, 'a', 'true'), {'b': 'bb', 'c': 3})-((1, 'a', True), {'b': 'bb', 'c': 3})] PASSED tests/validators/test_arguments.py::test_both[python-ArgsKwargs((1, 'a'), {'a': 'true', 'b': 'bb', 'c': 3})-((1, 'a'), {'a': True, 'b': 'bb', 'c': 3})] PASSED tests/validators/test_arguments.py::test_both[python-ArgsKwargs((1, 'a', 'true', 4, 5), {'b': 'bb', 'c': 3})-Err('type=unexpected_positional_argument,', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}, {'type': 'unexpected_positional_argument', 'loc': (4,), 'msg': 'Unexpected positional argument', 'input': 5}])] PASSED tests/validators/test_arguments.py::test_both[json-ArgsKwargs((1, 'a', 'true'), {'b': 'bb', 'c': 3})-((1, 'a', True), {'b': 'bb', 'c': 3})] SKIPPED tests/validators/test_arguments.py::test_both[json-ArgsKwargs((1, 'a'), {'a': 'true', 'b': 'bb', 'c': 3})-((1, 'a'), {'a': True, 'b': 'bb', 'c': 3})] SKIPPED tests/validators/test_arguments.py::test_both[json-ArgsKwargs((1, 'a', 'true', 4, 5), {'b': 'bb', 'c': 3})-Err('type=unexpected_positional_argument,', errors=[{'type': 'unexpected_positional_argument', 'loc': (3,), 'msg': 'Unexpected positional argument', 'input': 4}, {'type': 'unexpected_positional_argument', 'loc': (4,), 'msg': 'Unexpected positional argument', 'input': 5}])] SKIPPED tests/validators/test_arguments.py::test_no_args[python-ArgsKwargs(())-((), {})] PASSED tests/validators/test_arguments.py::test_no_args[python-[]-((), {})] PASSED tests/validators/test_arguments.py::test_no_args[python-[1]-Err('0\\n Unexpected positional argument [type=unexpected_positional_argument,')] PASSED tests/validators/test_arguments.py::test_no_args[python-{'a': 1}-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_no_args[python-ArgsKwargs((1,), {'a': 2})-Err('[type=unexpected_keyword_argument,', errors=[{'type': 'unexpected_positional_argument', 'loc': (0,), 'msg': 'Unexpected positional argument', 'input': 1}, {'type': 'unexpected_keyword_argument', 'loc': ('a',), 'msg': 'Unexpected keyword argument', 'input': 2}])] PASSED tests/validators/test_arguments.py::test_no_args[json-ArgsKwargs(())-((), {})] SKIPPED tests/validators/test_arguments.py::test_no_args[json-[]-((), {})] PASSED tests/validators/test_arguments.py::test_no_args[json-[1]-Err('0\\n Unexpected positional argument [type=unexpected_positional_argument,')] PASSED tests/validators/test_arguments.py::test_no_args[json-{'a': 1}-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_no_args[json-ArgsKwargs((1,), {'a': 2})-Err('[type=unexpected_keyword_argument,', errors=[{'type': 'unexpected_positional_argument', 'loc': (0,), 'msg': 'Unexpected positional argument', 'input': 1}, {'type': 'unexpected_keyword_argument', 'loc': ('a',), 'msg': 'Unexpected keyword argument', 'input': 2}])] SKIPPED tests/validators/test_arguments.py::test_internal_error[python] PASSED tests/validators/test_arguments.py::test_internal_error[json] PASSED tests/validators/test_arguments.py::test_default_factory[python-ArgsKwargs((1, 2))-((1, 2), {})] PASSED tests/validators/test_arguments.py::test_default_factory[python-ArgsKwargs((1,))-((1,), {'b': 42})] PASSED tests/validators/test_arguments.py::test_default_factory[python-ArgsKwargs((1,), {'b': 3})-((1,), {'b': 3})] PASSED tests/validators/test_arguments.py::test_default_factory[python-ArgsKwargs((), {'a': 1})-((), {'a': 1, 'b': 42})] PASSED tests/validators/test_arguments.py::test_default_factory[json-ArgsKwargs((1, 2))-((1, 2), {})] SKIPPED tests/validators/test_arguments.py::test_default_factory[json-ArgsKwargs((1,))-((1,), {'b': 42})] SKIPPED tests/validators/test_arguments.py::test_default_factory[json-ArgsKwargs((1,), {'b': 3})-((1,), {'b': 3})] SKIPPED tests/validators/test_arguments.py::test_default_factory[json-ArgsKwargs((), {'a': 1})-((), {'a': 1, 'b': 42})] SKIPPED tests/validators/test_arguments.py::test_repr PASSED tests/validators/test_arguments.py::test_build_non_default_follows PASSED tests/validators/test_arguments.py::test_build_missing_var_kwargs PASSED tests/validators/test_arguments.py::test_kwargs_uniform[python-ArgsKwargs((1, 2))-((1, 2), {})] PASSED tests/validators/test_arguments.py::test_kwargs_uniform[python-ArgsKwargs((1,), {'b': '4', 'c': 'a'})-((1,), {'b': 4, 'c': 'a'})] PASSED tests/validators/test_arguments.py::test_kwargs_uniform[python-ArgsKwargs((1, 2), {'x': 'abc'})-((1, 2), {'x': 'abc'})] PASSED tests/validators/test_arguments.py::test_kwargs_uniform[json-ArgsKwargs((1, 2))-((1, 2), {})] SKIPPED tests/validators/test_arguments.py::test_kwargs_uniform[json-ArgsKwargs((1,), {'b': '4', 'c': 'a'})-((1,), {'b': 4, 'c': 'a'})] SKIPPED tests/validators/test_arguments.py::test_kwargs_uniform[json-ArgsKwargs((1, 2), {'x': 'abc'})-((1, 2), {'x': 'abc'})] SKIPPED tests/validators/test_arguments.py::test_kwargs_typed_dict[python-input_value0-expected0] PASSED tests/validators/test_arguments.py::test_kwargs_typed_dict[python-input_value1-expected1] PASSED tests/validators/test_arguments.py::test_kwargs_typed_dict[python-input_value2-expected2] PASSED tests/validators/test_arguments.py::test_kwargs_typed_dict[python-input_value3-expected3] PASSED tests/validators/test_arguments.py::test_kwargs_typed_dict[json-input_value0-expected0] SKIPPED tests/validators/test_arguments.py::test_kwargs_typed_dict[json-input_value1-expected1] SKIPPED tests/validators/test_arguments.py::test_kwargs_typed_dict[json-input_value2-expected2] SKIPPED tests/validators/test_arguments.py::test_kwargs_typed_dict[json-input_value3-expected3] SKIPPED tests/validators/test_arguments.py::test_alias[python-ArgsKwargs((1,))-((1,), {})] PASSED tests/validators/test_arguments.py::test_alias[python-ArgsKwargs((), {'Foo': 1})-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_alias[python-ArgsKwargs((), {'a': 1})-Err('Foo\\n Missing required argument [type=missing_argument,')] PASSED tests/validators/test_arguments.py::test_alias[json-ArgsKwargs((1,))-((1,), {})] SKIPPED tests/validators/test_arguments.py::test_alias[json-ArgsKwargs((), {'Foo': 1})-((), {'a': 1})] SKIPPED tests/validators/test_arguments.py::test_alias[json-ArgsKwargs((), {'a': 1})-Err('Foo\\n Missing required argument [type=missing_argument,')] SKIPPED tests/validators/test_arguments.py::test_alias_populate_by_name[python-ArgsKwargs((1,))-((1,), {})] PASSED tests/validators/test_arguments.py::test_alias_populate_by_name[python-ArgsKwargs((), {'Foo': 1})-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_alias_populate_by_name[python-ArgsKwargs((), {'a': 1})-((), {'a': 1})] PASSED tests/validators/test_arguments.py::test_alias_populate_by_name[python-ArgsKwargs((), {'a': 1, 'b': 2})-Err('b\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_alias_populate_by_name[python-ArgsKwargs((), {'a': 1, 'Foo': 2})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] PASSED tests/validators/test_arguments.py::test_alias_populate_by_name[json-ArgsKwargs((1,))-((1,), {})] SKIPPED tests/validators/test_arguments.py::test_alias_populate_by_name[json-ArgsKwargs((), {'Foo': 1})-((), {'a': 1})] SKIPPED tests/validators/test_arguments.py::test_alias_populate_by_name[json-ArgsKwargs((), {'a': 1})-((), {'a': 1})] SKIPPED tests/validators/test_arguments.py::test_alias_populate_by_name[json-ArgsKwargs((), {'a': 1, 'b': 2})-Err('b\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] SKIPPED tests/validators/test_arguments.py::test_alias_populate_by_name[json-ArgsKwargs((), {'a': 1, 'Foo': 2})-Err('a\\n Unexpected keyword argument [type=unexpected_keyword_argument,')] SKIPPED tests/validators/test_arguments.py::test_function_any PASSED tests/validators/test_arguments.py::test_function_types PASSED tests/validators/test_arguments.py::test_function_positional_only SKIPPED tests/validators/test_arguments.py::test_function_positional_only_default SKIPPED tests/validators/test_arguments.py::test_function_positional_kwargs SKIPPED tests/validators/test_arguments.py::test_function_args_kwargs PASSED tests/validators/test_arguments.py::test_invalid_schema PASSED tests/validators/test_arguments.py::test_error_display PASSED tests/validators/test_bool.py::test_bool[python-False-False] PASSED tests/validators/test_bool.py::test_bool[python-True-True] PASSED tests/validators/test_bool.py::test_bool[python-0-False] PASSED tests/validators/test_bool.py::test_bool[python-0.0-False] PASSED tests/validators/test_bool.py::test_bool[python-1-True] PASSED tests/validators/test_bool.py::test_bool[python-1.0-True] PASSED tests/validators/test_bool.py::test_bool[python-yes-True] PASSED tests/validators/test_bool.py::test_bool[python-no-False] PASSED tests/validators/test_bool.py::test_bool[python-true-True] PASSED tests/validators/test_bool.py::test_bool[python-false-False] PASSED tests/validators/test_bool.py::test_bool[python-cheese-expected10] PASSED tests/validators/test_bool.py::test_bool[python-2-expected11] PASSED tests/validators/test_bool.py::test_bool[python-input_value12-expected12] PASSED tests/validators/test_bool.py::test_bool[python-1.1-expected13] PASSED tests/validators/test_bool.py::test_bool[python-2-expected14] PASSED tests/validators/test_bool.py::test_bool[python-2.0-expected15] PASSED tests/validators/test_bool.py::test_bool[json-False-False] PASSED tests/validators/test_bool.py::test_bool[json-True-True] PASSED tests/validators/test_bool.py::test_bool[json-0-False] PASSED tests/validators/test_bool.py::test_bool[json-0.0-False] PASSED tests/validators/test_bool.py::test_bool[json-1-True] PASSED tests/validators/test_bool.py::test_bool[json-1.0-True] PASSED tests/validators/test_bool.py::test_bool[json-yes-True] PASSED tests/validators/test_bool.py::test_bool[json-no-False] PASSED tests/validators/test_bool.py::test_bool[json-true-True] PASSED tests/validators/test_bool.py::test_bool[json-false-False] PASSED tests/validators/test_bool.py::test_bool[json-cheese-expected10] PASSED tests/validators/test_bool.py::test_bool[json-2-expected11] PASSED tests/validators/test_bool.py::test_bool[json-input_value12-expected12] PASSED tests/validators/test_bool.py::test_bool[json-1.1-expected13] PASSED tests/validators/test_bool.py::test_bool[json-2-expected14] PASSED tests/validators/test_bool.py::test_bool[json-2.0-expected15] PASSED tests/validators/test_bool.py::test_bool_strict[python] PASSED tests/validators/test_bool.py::test_bool_strict[json] PASSED tests/validators/test_bool.py::test_bool_error PASSED tests/validators/test_bool.py::test_bool_repr PASSED tests/validators/test_bool.py::test_bool_key[python] PASSED tests/validators/test_bool.py::test_bool_key[json] PASSED tests/validators/test_bool.py::test_validate_assignment_not_supported PASSED tests/validators/test_bytes.py::test_strict_bytes_validator PASSED tests/validators/test_bytes.py::test_lax_bytes_validator PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts0-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts1-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts2-foobar-expected2] PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts3-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts4-f-expected4] PASSED tests/validators/test_bytes.py::test_constrained_bytes_python_bytes[opts5-bytes?-bytes?] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts0-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts1-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts2-foobar-expected2] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts3-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts4-f-expected4] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts5-1-expected5] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts6-1.0-expected6] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts7-input7-expected7] PASSED tests/validators/test_bytes.py::test_constrained_bytes[python-opts8-input8-expected8] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts0-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts1-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts2-foobar-expected2] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts3-foo-foo] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts4-f-expected4] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts5-1-expected5] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts6-1.0-expected6] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts7-input7-expected7] PASSED tests/validators/test_bytes.py::test_constrained_bytes[json-opts8-input8-expected8] PASSED tests/validators/test_bytes.py::test_union PASSED tests/validators/test_bytes.py::test_length_ctx PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value0-6] PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value1-3] PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value2-3] PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value3-expected3] PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value4-10] PASSED tests/validators/test_call.py::test_function_call_arguments[python-input_value5-expected5] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value0-6] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value1-3] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value2-3] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value3-expected3] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value4-10] PASSED tests/validators/test_call.py::test_function_call_arguments[json-input_value5-expected5] PASSED tests/validators/test_call.py::test_function_args_any[input_value0-6] PASSED tests/validators/test_call.py::test_function_args_any[input_value1-6] PASSED tests/validators/test_call.py::test_function_args_any[input_value2-3] PASSED tests/validators/test_call.py::test_function_args_any[x-expected3] PASSED tests/validators/test_call.py::test_function_args_any[input_value4-expected4] PASSED tests/validators/test_call.py::test_function_args_any[input_value5-expected5] PASSED tests/validators/test_call.py::test_function_args_any[input_value6-expected6] PASSED tests/validators/test_call.py::test_function_return_any[input_value0-1] PASSED tests/validators/test_call.py::test_function_return_any[input_value1-abc] PASSED tests/validators/test_call.py::test_in_union PASSED tests/validators/test_call.py::test_dataclass PASSED tests/validators/test_call.py::test_named_tuple PASSED tests/validators/test_call.py::test_function_call_partial PASSED tests/validators/test_call.py::test_custom_name PASSED tests/validators/test_callable.py::test_callable PASSED tests/validators/test_callable.py::test_callable_cases[func-True] PASSED tests/validators/test_callable.py::test_callable_cases[-True0] PASSED tests/validators/test_callable.py::test_callable_cases[-True1] PASSED tests/validators/test_callable.py::test_callable_cases[dict-True] PASSED tests/validators/test_callable.py::test_callable_cases[Foo-True] PASSED tests/validators/test_callable.py::test_callable_cases[input_value5-False] PASSED tests/validators/test_callable.py::test_callable_cases[4-False] PASSED tests/validators/test_callable.py::test_callable_cases[ddd-False] PASSED tests/validators/test_callable.py::test_callable_cases[input_value8-False] PASSED tests/validators/test_callable.py::test_callable_cases[input_value9-False] PASSED tests/validators/test_callable.py::test_callable_cases[CallableClass-True] PASSED tests/validators/test_callable.py::test_callable_cases[input_value11-True] PASSED tests/validators/test_callable.py::test_repr PASSED tests/validators/test_chain.py::test_chain PASSED tests/validators/test_chain.py::test_chain_many PASSED tests/validators/test_chain.py::test_chain_error PASSED tests/validators/test_chain.py::test_json[python-1.44-expected0] PASSED tests/validators/test_chain.py::test_json[python-1-expected1] PASSED tests/validators/test_chain.py::test_json[python-1.44-expected2] PASSED tests/validators/test_chain.py::test_json[json-1.44-expected0] PASSED tests/validators/test_chain.py::test_json[json-1-expected1] PASSED tests/validators/test_chain.py::test_json[json-1.44-expected2] PASSED tests/validators/test_chain.py::test_flatten PASSED tests/validators/test_chain.py::test_chain_empty PASSED tests/validators/test_chain.py::test_chain_one PASSED tests/validators/test_complex.py::test_complex_cases[(2+4j)-(2+4j)] PASSED tests/validators/test_complex.py::test_complex_cases['2'-(2+0j)] PASSED tests/validators/test_complex.py::test_complex_cases['2j'-2j] PASSED tests/validators/test_complex.py::test_complex_cases['+1.23e-4-5.67e+8J'-(0.000123-567000000j)] PASSED tests/validators/test_complex.py::test_complex_cases['1.5-j'-(1.5-1j)] PASSED tests/validators/test_complex.py::test_complex_cases['-j'--1j] PASSED tests/validators/test_complex.py::test_complex_cases['j'-1j] PASSED tests/validators/test_complex.py::test_complex_cases[3-(3+0j)] PASSED tests/validators/test_complex.py::test_complex_cases[2.0-(2+0j)] PASSED tests/validators/test_complex.py::test_complex_cases['1e-700j'-0j] PASSED tests/validators/test_complex.py::test_complex_cases[''-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases['\\t( -1.23+4.5J \\n'-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[{'real': 2, 'imag': 4}-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[{'real': 'test', 'imag': 1}-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[{'real': True, 'imag': 1}-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases['foobar'-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[[]-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[[('x', 'y')]-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[()-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[(('x', 'y'),)-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_cases[-Err('Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex')] PASSED tests/validators/test_complex.py::test_complex_strict[(2+4j)-(2+4j)] PASSED tests/validators/test_complex.py::test_complex_strict['2'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['2j'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['+1.23e-4-5.67e+8J'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['1.5-j'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['-j'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['j'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[3-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[2.0-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['1e-700j'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[''-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['\\t( -1.23+4.5J \\n'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[{'real': 2, 'imag': 4}-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[{'real': 'test', 'imag': 1}-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict[{'real': True, 'imag': 1}-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_complex_strict['foobar'-Err('Input should be an instance of complex')] PASSED tests/validators/test_complex.py::test_valid_complex_string_with_space PASSED tests/validators/test_complex.py::test_nan_inf_complex PASSED tests/validators/test_complex.py::test_overflow_complex PASSED tests/validators/test_complex.py::test_json_complex PASSED tests/validators/test_complex.py::test_json_complex_strict PASSED tests/validators/test_complex.py::test_string_complex PASSED tests/validators/test_custom_error.py::test_custom_error[python] PASSED tests/validators/test_custom_error.py::test_custom_error[json] PASSED tests/validators/test_custom_error.py::test_custom_error_type[python] PASSED tests/validators/test_custom_error.py::test_custom_error_type[json] PASSED tests/validators/test_custom_error.py::test_custom_error_error PASSED tests/validators/test_custom_error.py::test_custom_error_invalid PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value3-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value4-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value5-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[python-input_value6-expected6] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value0-expected0] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value3-expected3] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value4-expected4] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value5-expected5] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args[json-input_value6-expected6] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value3-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value4-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value5-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[python-input_value6-expected6] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value0-expected0] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value1-expected1] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value2-expected2] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value3-expected3] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value4-expected4] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value5-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only[json-input_value6-expected6] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[python-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[python-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[python-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[json-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[json-input_value1-expected1] SKIPPED tests/validators/test_dataclasses.py::test_dataclass_args_init_only_no_fields[json-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_aliases[python] PASSED tests/validators/test_dataclasses.py::test_aliases[json] PASSED tests/validators/test_dataclasses.py::test_dataclass PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value3-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value4-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[always-input_value5-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value6-expected6] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value7-expected7] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value8-expected8] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value9-expected9] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value10-expected10] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value11-expected11] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value12-expected12] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[subclass-instances-input_value13-expected13] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value14-expected14] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value15-expected15] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value16-expected16] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value17-expected17] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value18-expected18] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass[never-input_value19-expected19] PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass_strict_never_revalidate PASSED tests/validators/test_dataclasses.py::test_dataclass_subclass_subclass_revalidate PASSED tests/validators/test_dataclasses.py::test_dataclass_post_init PASSED tests/validators/test_dataclasses.py::test_dataclass_post_init_args PASSED tests/validators/test_dataclasses.py::test_dataclass_post_init_args_multiple PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[always-input_value0-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[always-input_value1-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[always-input_value2-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[never-input_value3-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[never-input_value4-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_exact_validation[never-input_value5-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_field_after_validator PASSED tests/validators/test_dataclasses.py::test_dataclass_field_plain_validator PASSED tests/validators/test_dataclasses.py::test_dataclass_field_before_validator PASSED tests/validators/test_dataclasses.py::test_dataclass_field_wrap_validator1 PASSED tests/validators/test_dataclasses.py::test_dataclass_field_wrap_validator2 PASSED tests/validators/test_dataclasses.py::test_dataclass_self_init PASSED tests/validators/test_dataclasses.py::test_dataclass_self_init_alias PASSED tests/validators/test_dataclasses.py::test_dataclass_self_init_alias_field_name PASSED tests/validators/test_dataclasses.py::test_dataclass_self_init_post_init PASSED tests/validators/test_dataclasses.py::test_dataclass_validate_assignment PASSED tests/validators/test_dataclasses.py::test_validate_assignment_function PASSED tests/validators/test_dataclasses.py::test_frozen PASSED tests/validators/test_dataclasses.py::test_frozen_field PASSED tests/validators/test_dataclasses.py::test_extra_behavior_ignore[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_ignore[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_ignore[config2-schema_extra_behavior_kw2] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_ignore[None-schema_extra_behavior_kw3] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_ignore[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_forbid[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_forbid[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_forbid[config2-schema_extra_behavior_kw2] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_forbid[None-schema_extra_behavior_kw3] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_forbid[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_allow[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_allow[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_allow[config2-schema_extra_behavior_kw2] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_allow[None-schema_extra_behavior_kw3] PASSED tests/validators/test_dataclasses.py::test_extra_behavior_allow[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_dataclasses.py::test_function_validator_wrapping_args_schema_after PASSED tests/validators/test_dataclasses.py::test_function_validator_wrapping_args_schema_before PASSED tests/validators/test_dataclasses.py::test_function_validator_wrapping_args_schema_wrap PASSED tests/validators/test_dataclasses.py::test_custom_dataclass_names PASSED tests/validators/test_dataclasses.py::test_slots SKIPPED (slots are ...) tests/validators/test_dataclasses.py::test_dataclass_slots_field_before_validator SKIPPED tests/validators/test_dataclasses.py::test_dataclass_slots_field_after_validator SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[always-input_value0-expected0] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[always-input_value1-expected1] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[always-input_value2-expected2] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[always-input_value3-expected3] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[always-input_value4-expected4] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value5-expected5] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value6-expected6] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value7-expected7] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value8-expected8] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value9-expected9] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value10-expected10] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value11-expected11] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[subclass-instances-input_value12-expected12] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value13-expected13] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value14-expected14] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value15-expected15] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value16-expected16] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value17-expected17] SKIPPED tests/validators/test_dataclasses.py::test_slots_dataclass_subclass[never-input_value18-expected18] SKIPPED tests/validators/test_dataclasses.py::test_slots_mixed SKIPPED (slot...) tests/validators/test_dataclasses.py::test_dataclass_json PASSED tests/validators/test_dataclasses.py::test_dataclass_wrap_json PASSED tests/validators/test_dataclasses.py::test_leak_dataclass[None] PASSED tests/validators/test_dataclasses.py::test_leak_dataclass[field] PASSED tests/validators/test_dataclasses.py::test_leak_dataclass[dataclass] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value0-ignore-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value1-ignore-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value2-allow-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value3-forbid-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value4-forbid-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init[input_value5-allow-expected5] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value0-ignore-expected0] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value1-ignore-expected1] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value2-allow-expected2] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value3-forbid-expected3] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value4-forbid-expected4] PASSED tests/validators/test_dataclasses.py::test_dataclass_args_init_with_default[input_value5-allow-expected5] PASSED tests/validators/test_date.py::test_date[date] PASSED tests/validators/test_date.py::test_date[str] PASSED tests/validators/test_date.py::test_date[bytes] PASSED tests/validators/test_date.py::test_date[tuple] PASSED tests/validators/test_date.py::test_date[int] PASSED tests/validators/test_date.py::test_date[int-as-str] PASSED tests/validators/test_date.py::test_date[float] PASSED tests/validators/test_date.py::test_date[float-as-str] PASSED tests/validators/test_date.py::test_date[decimal] PASSED tests/validators/test_date.py::test_date[int-too-high] PASSED tests/validators/test_date.py::test_date[int-too-low] PASSED tests/validators/test_date.py::test_date[datetime-exact] PASSED tests/validators/test_date.py::test_date[datetime-inexact] PASSED tests/validators/test_date.py::test_date[int-inexact] PASSED tests/validators/test_date.py::test_date[float-inexact] PASSED tests/validators/test_date.py::test_date[int-str-inexact] PASSED tests/validators/test_date.py::test_date[float-str-inexact] PASSED tests/validators/test_date.py::test_date[bool] PASSED tests/validators/test_date.py::test_date[time] PASSED tests/validators/test_date.py::test_date[nan] PASSED tests/validators/test_date.py::test_date[inf] PASSED tests/validators/test_date.py::test_date[-inf] PASSED tests/validators/test_date.py::test_date[minus] PASSED tests/validators/test_date.py::test_date[pus] PASSED tests/validators/test_date.py::test_date_json[python-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_json[python-1453-01-28-expected1] PASSED tests/validators/test_date.py::test_date_json[python-1654646400-expected2] PASSED tests/validators/test_date.py::test_date_json[python-1654646400.0-expected3] PASSED tests/validators/test_date.py::test_date_json[python-1654646401-expected4] PASSED tests/validators/test_date.py::test_date_json[python-wrong-expected5] PASSED tests/validators/test_date.py::test_date_json[python-2000-02-29-expected6] PASSED tests/validators/test_date.py::test_date_json[python-2001-02-29-expected7] PASSED tests/validators/test_date.py::test_date_json[python-input_value8-expected8] PASSED tests/validators/test_date.py::test_date_json[json-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_json[json-1453-01-28-expected1] PASSED tests/validators/test_date.py::test_date_json[json-1654646400-expected2] PASSED tests/validators/test_date.py::test_date_json[json-1654646400.0-expected3] PASSED tests/validators/test_date.py::test_date_json[json-1654646401-expected4] PASSED tests/validators/test_date.py::test_date_json[json-wrong-expected5] PASSED tests/validators/test_date.py::test_date_json[json-2000-02-29-expected6] PASSED tests/validators/test_date.py::test_date_json[json-2001-02-29-expected7] PASSED tests/validators/test_date.py::test_date_json[json-input_value8-expected8] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-datetime.date(2022, 6, 8)-datetime.date(2022, 6, 8)] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-b'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-1654646400-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-True-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-schema-datetime.datetime(2022, 6, 8, 0, 0)-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-datetime.date(2022, 6, 8)-datetime.date(2022, 6, 8)] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-b'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-1654646400-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-True-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-extra-datetime.datetime(2022, 6, 8, 0, 0)-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-both-datetime.date(2022, 6, 8)-datetime.date(2022, 6, 8)] PASSED tests/validators/test_date.py::test_date_strict[strict-both-'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-both-b'2022-06-08'-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-both-1654646400-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-both-True-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict[strict-both-datetime.datetime(2022, 6, 8, 0, 0)-Err('Input should be a valid date [type=date_type')] PASSED tests/validators/test_date.py::test_date_strict_json[strict-schema-"2022-06-08"-expected0] PASSED tests/validators/test_date.py::test_date_strict_json[strict-schema-"foobar"-expected1] PASSED tests/validators/test_date.py::test_date_strict_json[strict-schema-1654646400-expected2] PASSED tests/validators/test_date.py::test_date_strict_json[strict-extra-"2022-06-08"-expected0] PASSED tests/validators/test_date.py::test_date_strict_json[strict-extra-"foobar"-expected1] PASSED tests/validators/test_date.py::test_date_strict_json[strict-extra-1654646400-expected2] PASSED tests/validators/test_date.py::test_date_strict_json[strict-both-"2022-06-08"-expected0] PASSED tests/validators/test_date.py::test_date_strict_json[strict-both-"foobar"-expected1] PASSED tests/validators/test_date.py::test_date_strict_json[strict-both-1654646400-expected2] PASSED tests/validators/test_date.py::test_date_strict_json_ctx PASSED tests/validators/test_date.py::test_date_kwargs[kwargs0-2000-01-01-expected0] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs1-2000-01-01-expected1] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs2-2000-01-02-expected2] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs3-1999-12-31-expected3] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs4-2000-01-01-expected4] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs5-2000-01-01-expected5] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs6-1999-12-31-expected6] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs7-2000-01-02-expected7] PASSED tests/validators/test_date.py::test_date_kwargs[kwargs8-2000-01-01-expected8] PASSED tests/validators/test_date.py::test_invalid_constraint PASSED tests/validators/test_date.py::test_dict_py PASSED tests/validators/test_date.py::test_dict[python] PASSED tests/validators/test_date.py::test_dict[json] PASSED tests/validators/test_date.py::test_union PASSED tests/validators/test_date.py::test_date_past[python-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_past[python-1654646400-expected1] PASSED tests/validators/test_date.py::test_date_past[python-2068-06-08-expected2] PASSED tests/validators/test_date.py::test_date_past[python-3105734400-expected3] PASSED tests/validators/test_date.py::test_date_past[json-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_past[json-1654646400-expected1] PASSED tests/validators/test_date.py::test_date_past[json-2068-06-08-expected2] PASSED tests/validators/test_date.py::test_date_past[json-3105734400-expected3] PASSED tests/validators/test_date.py::test_date_future[python-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_future[python-1654646400-expected1] PASSED tests/validators/test_date.py::test_date_future[python-2068-06-08-expected2] PASSED tests/validators/test_date.py::test_date_future[python-3105734400-expected3] PASSED tests/validators/test_date.py::test_date_future[json-2022-06-08-expected0] PASSED tests/validators/test_date.py::test_date_future[json-1654646400-expected1] PASSED tests/validators/test_date.py::test_date_future[json-2068-06-08-expected2] PASSED tests/validators/test_date.py::test_date_future[json-3105734400-expected3] PASSED tests/validators/test_date.py::test_date_past_future_today PASSED tests/validators/test_date.py::test_offset_too_large PASSED tests/validators/test_datetime.py::test_datetime[input_value0-expected0] PASSED tests/validators/test_datetime.py::test_datetime[input_value1-expected1] PASSED tests/validators/test_datetime.py::test_datetime[2022-01-01-expected2] PASSED tests/validators/test_datetime.py::test_datetime[2022-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime[1000000000000-expected4] PASSED tests/validators/test_datetime.py::test_datetime[2022-06-08T12:13:14-expected5] PASSED tests/validators/test_datetime.py::test_datetime[2022-06-08T12:13:14Z-expected6] PASSED tests/validators/test_datetime.py::test_datetime[input_value7-expected7] PASSED tests/validators/test_datetime.py::test_datetime[input_value8-expected8] PASSED tests/validators/test_datetime.py::test_datetime[input_value9-expected9] PASSED tests/validators/test_datetime.py::test_datetime[1654646400-expected10] PASSED tests/validators/test_datetime.py::test_datetime[input_value11-expected11] PASSED tests/validators/test_datetime.py::test_datetime[input_value12-expected12] PASSED tests/validators/test_datetime.py::test_datetime[input_value13-expected13] PASSED tests/validators/test_datetime.py::test_datetime[1654646400.1234568-expected14] PASSED tests/validators/test_datetime.py::test_datetime[253402300800000-expected15] PASSED tests/validators/test_datetime.py::test_datetime[-80000000000000-expected16] PASSED tests/validators/test_datetime.py::test_datetime[nan-expected17] PASSED tests/validators/test_datetime.py::test_datetime[inf-expected18] PASSED tests/validators/test_datetime.py::test_datetime[-inf-expected19] PASSED tests/validators/test_datetime.py::test_datetime[--expected20] PASSED tests/validators/test_datetime.py::test_datetime[+-expected21] PASSED tests/validators/test_datetime.py::test_datetime[2022-02-30-expected22] PASSED tests/validators/test_datetime.py::test_datetime_strict[input_value0-expected0] PASSED tests/validators/test_datetime.py::test_datetime_strict[input_value1-expected1] PASSED tests/validators/test_datetime.py::test_datetime_strict[2022-06-08T12:13:14-expected2] PASSED tests/validators/test_datetime.py::test_datetime_strict[2022-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime_strict[input_value4-expected4] PASSED tests/validators/test_datetime.py::test_datetime_strict[1654646400-expected5] PASSED tests/validators/test_datetime.py::test_datetime_strict[input_value6-expected6] PASSED tests/validators/test_datetime.py::test_keep_tz PASSED tests/validators/test_datetime.py::test_keep_tz_bound PASSED tests/validators/test_datetime.py::test_datetime_json[python-2022-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_json[python-2022-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_json[python-2022-06-08T12:13:14+12:15-expected2] PASSED tests/validators/test_datetime.py::test_datetime_json[python-2022-06-08T12:13:14+23:59-expected3] PASSED tests/validators/test_datetime.py::test_datetime_json[python-1655205632-expected4] PASSED tests/validators/test_datetime.py::test_datetime_json[python-1655205632.331557-expected5] PASSED tests/validators/test_datetime.py::test_datetime_json[python-2022-06-08T12:13:14+24:00-expected6] PASSED tests/validators/test_datetime.py::test_datetime_json[python-True-expected7] PASSED tests/validators/test_datetime.py::test_datetime_json[python-None-expected8] PASSED tests/validators/test_datetime.py::test_datetime_json[python-input_value9-expected9] PASSED tests/validators/test_datetime.py::test_datetime_json[json-2022-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_json[json-2022-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_json[json-2022-06-08T12:13:14+12:15-expected2] PASSED tests/validators/test_datetime.py::test_datetime_json[json-2022-06-08T12:13:14+23:59-expected3] PASSED tests/validators/test_datetime.py::test_datetime_json[json-1655205632-expected4] PASSED tests/validators/test_datetime.py::test_datetime_json[json-1655205632.331557-expected5] PASSED tests/validators/test_datetime.py::test_datetime_json[json-2022-06-08T12:13:14+24:00-expected6] PASSED tests/validators/test_datetime.py::test_datetime_json[json-True-expected7] PASSED tests/validators/test_datetime.py::test_datetime_json[json-None-expected8] PASSED tests/validators/test_datetime.py::test_datetime_json[json-input_value9-expected9] PASSED tests/validators/test_datetime.py::test_datetime_strict_json[2022-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_strict_json[2022-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_strict_json[123-expected2] PASSED tests/validators/test_datetime.py::test_datetime_strict_json[123.4-expected3] PASSED tests/validators/test_datetime.py::test_datetime_strict_json[True-expected4] PASSED tests/validators/test_datetime.py::test_custom_timezone_repr PASSED tests/validators/test_datetime.py::test_custom_timezone_utc_repr PASSED tests/validators/test_datetime.py::test_tz_comparison PASSED tests/validators/test_datetime.py::test_tz_info_deepcopy PASSED tests/validators/test_datetime.py::test_tz_info_copy PASSED tests/validators/test_datetime.py::test_custom_tz PASSED tests/validators/test_datetime.py::test_custom_invalid_tz PASSED tests/validators/test_datetime.py::test_dict_py PASSED tests/validators/test_datetime.py::test_dict[python] PASSED tests/validators/test_datetime.py::test_dict[json] PASSED tests/validators/test_datetime.py::test_union PASSED tests/validators/test_datetime.py::test_invalid_constraint PASSED tests/validators/test_datetime.py::test_datetime_past[python-2022-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_past[python-2022-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_past[python-1655205632-expected2] PASSED tests/validators/test_datetime.py::test_datetime_past[python-2068-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime_past[python-3105730800-expected4] PASSED tests/validators/test_datetime.py::test_datetime_past[json-2022-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_past[json-2022-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_past[json-1655205632-expected2] PASSED tests/validators/test_datetime.py::test_datetime_past[json-2068-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime_past[json-3105730800-expected4] PASSED tests/validators/test_datetime.py::test_datetime_past_timezone PASSED tests/validators/test_datetime.py::test_datetime_future[python-2068-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_future[python-2068-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_future[python-3105730800-expected2] PASSED tests/validators/test_datetime.py::test_datetime_future[python-2022-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime_future[python-1655205632-expected4] PASSED tests/validators/test_datetime.py::test_datetime_future[json-2068-06-08T12:13:14-expected0] PASSED tests/validators/test_datetime.py::test_datetime_future[json-2068-06-08T12:13:14Z-expected1] PASSED tests/validators/test_datetime.py::test_datetime_future[json-3105730800-expected2] PASSED tests/validators/test_datetime.py::test_datetime_future[json-2022-06-08T12:13:14-expected3] PASSED tests/validators/test_datetime.py::test_datetime_future[json-1655205632-expected4] PASSED tests/validators/test_datetime.py::test_datetime_future_timezone PASSED tests/validators/test_datetime.py::test_mock_utc_offset_8_hours PASSED tests/validators/test_datetime.py::test_offset_too_large PASSED tests/validators/test_datetime.py::test_raises_schema_error_for_unknown_constraint_kind PASSED tests/validators/test_datetime.py::test_aware PASSED tests/validators/test_datetime.py::test_naive PASSED tests/validators/test_datetime.py::test_aware_specific PASSED tests/validators/test_datetime.py::test_neg_7200 PASSED tests/validators/test_datetime.py::test_tz_constraint_too_high PASSED tests/validators/test_datetime.py::test_tz_constraint_wrong PASSED tests/validators/test_datetime.py::test_tz_hash PASSED tests/validators/test_datetime.py::test_tz_cmp PASSED tests/validators/test_decimal.py::test_decimal[python-0-expected0] PASSED tests/validators/test_decimal.py::test_decimal[python-1-expected1] PASSED tests/validators/test_decimal.py::test_decimal[python-42-expected2] PASSED tests/validators/test_decimal.py::test_decimal[python-42-expected3] PASSED tests/validators/test_decimal.py::test_decimal[python-42.123-expected4] PASSED tests/validators/test_decimal.py::test_decimal[python-42.0-expected5] PASSED tests/validators/test_decimal.py::test_decimal[python-42.5-expected6] PASSED tests/validators/test_decimal.py::test_decimal[python-10000000000.0-expected7] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value8-expected8] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value9-expected9] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value10-expected10] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value11-expected11] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value12-expected12] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value13-expected13] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value14-expected14] PASSED tests/validators/test_decimal.py::test_decimal[python-True-expected15] PASSED tests/validators/test_decimal.py::test_decimal[python-False-expected16] PASSED tests/validators/test_decimal.py::test_decimal[python-wrong-expected17] PASSED tests/validators/test_decimal.py::test_decimal[python-input_value18-expected18] PASSED tests/validators/test_decimal.py::test_decimal[json-0-expected0] PASSED tests/validators/test_decimal.py::test_decimal[json-1-expected1] PASSED tests/validators/test_decimal.py::test_decimal[json-42-expected2] PASSED tests/validators/test_decimal.py::test_decimal[json-42-expected3] PASSED tests/validators/test_decimal.py::test_decimal[json-42.123-expected4] PASSED tests/validators/test_decimal.py::test_decimal[json-42.0-expected5] PASSED tests/validators/test_decimal.py::test_decimal[json-42.5-expected6] PASSED tests/validators/test_decimal.py::test_decimal[json-10000000000.0-expected7] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value8-expected8] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value9-expected9] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value10-expected10] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value11-expected11] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value12-expected12] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value13-expected13] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value14-expected14] PASSED tests/validators/test_decimal.py::test_decimal[json-True-expected15] PASSED tests/validators/test_decimal.py::test_decimal[json-False-expected16] PASSED tests/validators/test_decimal.py::test_decimal[json-wrong-expected17] PASSED tests/validators/test_decimal.py::test_decimal[json-input_value18-expected18] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[Decimal('0')-Decimal('0')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[Decimal('1')-Decimal('1')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[Decimal('42')-Decimal('42')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[Decimal('42.0')-Decimal('42.0')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[Decimal('42.5')-Decimal('42.5')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[42.0-Err('Input should be an instance of Decimal [type=is_instance_of, input_value=42.0, input_type=float]')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py['42'-Err("Input should be an instance of Decimal [type=is_instance_of, input_value='42', input_type=str]")] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[42-Err('Input should be an instance of Decimal [type=is_instance_of, input_value=42, input_type=int]')] PASSED tests/validators/test_decimal.py::test_decimal_strict_py[True-Err('Input should be an instance of Decimal [type=is_instance_of, input_value=True, input_type=bool]')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json[0-Decimal('0')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json[1-Decimal('1')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json[42-Decimal('42')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json['42.0'-Decimal('42.0')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json['42.5'-Decimal('42.5')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json[42.0-Decimal('42.0')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json['42'-Decimal('42')] PASSED tests/validators/test_decimal.py::test_decimal_strict_json[True-Err('Decimal input should be an integer, float, string or Decimal object [type=decimal_type, input_value=True, input_type=bool]')] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs0-0-expected0] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs1-123.456-expected1] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs2-0-expected2] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs3--0.1-expected3] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs4-0.1-expected4] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs5-0-expected5] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs6-0-expected6] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs7--1-expected7] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs8-0.1-expected8] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs9-nan-expected9] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs10-inf-expected10] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs11--inf-expected11] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs12-nan-expected12] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs13-0-expected13] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[python-kwargs14-1-expected14] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs0-0-expected0] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs1-123.456-expected1] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs2-0-expected2] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs3--0.1-expected3] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs4-0.1-expected4] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs5-0-expected5] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs6-0-expected6] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs7--1-expected7] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs8-0.1-expected8] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs9-nan-expected9] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs10-inf-expected10] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs11--inf-expected11] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs12-nan-expected12] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs13-0-expected13] PASSED tests/validators/test_decimal.py::test_decimal_kwargs[json-kwargs14-1-expected14] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-0.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-1-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-0.6-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-0.51-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-0.501-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-1000000.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.5-1000000.49-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.2-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.3-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.4-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-0.5001-Err('Input should be a multiple of 0.1')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-1-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-1.0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-0.1-50000000000-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[python-2.0--2.0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-0.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-1-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-0.6-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-0.51-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-0.501-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-1000000.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.5-1000000.49-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.2-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.3-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.4-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.5-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-0.5001-Err('Input should be a multiple of 0.1')] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-1-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-1.0-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-0.1-50000000000-None] PASSED tests/validators/test_decimal.py::test_decimal_multiple_of[json-2.0--2.0-None] PASSED tests/validators/test_decimal.py::test_union_decimal_py PASSED tests/validators/test_decimal.py::test_union_decimal_json PASSED tests/validators/test_decimal.py::test_union_decimal_simple[python] PASSED tests/validators/test_decimal.py::test_union_decimal_simple[json] PASSED tests/validators/test_decimal.py::test_decimal_repr PASSED tests/validators/test_decimal.py::test_decimal_not_json[input_value0-expected0] PASSED tests/validators/test_decimal.py::test_decimal_not_json[input_value1-expected1] PASSED tests/validators/test_decimal.py::test_decimal_nan[python] PASSED tests/validators/test_decimal.py::test_decimal_nan[json] PASSED tests/validators/test_decimal.py::test_decimal_key[python] PASSED tests/validators/test_decimal.py::test_decimal_key[json] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-NaN-True-expected0] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-NaN-False-expected1] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-+inf-True-expected2] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-+inf-False-expected3] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-+infinity-True-expected4] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-+infinity-False-expected5] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python--inf-True-expected6] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python--inf-False-expected7] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python--infinity-True-expected8] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python--infinity-False-expected9] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-0.7-True-expected10] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-0.7-False-expected11] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-pika-True-expected12] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[python-pika-False-expected13] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-NaN-True-expected0] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-NaN-False-expected1] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-+inf-True-expected2] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-+inf-False-expected3] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-+infinity-True-expected4] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-+infinity-False-expected5] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json--inf-True-expected6] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json--inf-False-expected7] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json--infinity-True-expected8] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json--infinity-False-expected9] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-0.7-True-expected10] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-0.7-False-expected11] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-pika-True-expected12] PASSED tests/validators/test_decimal.py::test_non_finite_json_values[json-pika-False-expected13] PASSED tests/validators/test_decimal.py::test_non_finite_decimal_values[input_value0-True-expected0-True] PASSED tests/validators/test_decimal.py::test_non_finite_decimal_values[input_value0-True-expected0-False] PASSED tests/validators/test_decimal.py::test_non_finite_decimal_values[input_value1-False-expected1-True] PASSED tests/validators/test_decimal.py::test_non_finite_decimal_values[input_value1-False-expected1-False] PASSED tests/validators/test_decimal.py::test_non_finite_constrained_decimal_values[input_value0-True-expected0] PASSED tests/validators/test_decimal.py::test_non_finite_constrained_decimal_values[input_value1-False-expected1] PASSED tests/validators/test_decimal.py::test_non_finite_constrained_decimal_values[input_value2-True-expected2] PASSED tests/validators/test_decimal.py::test_non_finite_constrained_decimal_values[input_value3-False-expected3] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0e-12-expected0] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1e-12-expected1] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12e-1-expected2] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0E-12-expected3] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1E-12-expected4] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12E-1-expected5] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0e+12-expected6] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1e+12-expected7] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12e+1-expected8] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0E+12-expected9] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1E+12-expected10] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12E+1-expected11] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0e12-expected12] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1e12-expected13] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12e1-expected14] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1.0E12-expected15] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[1E12-expected16] PASSED tests/validators/test_decimal.py::test_validate_scientific_notation_from_json[12E1-expected17] PASSED tests/validators/test_decimal.py::test_validate_max_digits_and_decimal_places PASSED tests/validators/test_decimal.py::test_validate_max_digits_and_decimal_places_edge_case PASSED tests/validators/test_decimal.py::test_str_validation_w_strict PASSED tests/validators/test_decimal.py::test_str_validation_w_lax PASSED tests/validators/test_decimal.py::test_union_with_str_prefers_str PASSED tests/validators/test_definitions.py::test_list_with_def PASSED tests/validators/test_definitions.py::test_ignored_def PASSED tests/validators/test_definitions.py::test_extract_used_refs_ignores_metadata PASSED tests/validators/test_definitions.py::test_check_ref_used_ignores_metadata PASSED tests/validators/test_definitions.py::test_def_error PASSED tests/validators/test_definitions.py::test_dict_repeat PASSED tests/validators/test_definitions.py::test_repeated_ref PASSED tests/validators/test_definitions.py::test_repeat_after PASSED tests/validators/test_definitions.py::test_deep PASSED tests/validators/test_definitions.py::test_use_after PASSED tests/validators/test_definitions.py::test_definition_chain PASSED tests/validators/test_definitions_recursive.py::test_branch_nullable PASSED tests/validators/test_definitions_recursive.py::test_unused_ref PASSED tests/validators/test_definitions_recursive.py::test_nullable_error PASSED tests/validators/test_definitions_recursive.py::test_list PASSED tests/validators/test_definitions_recursive.py::test_multiple_intertwined PASSED tests/validators/test_definitions_recursive.py::test_model_class PASSED tests/validators/test_definitions_recursive.py::test_invalid_schema PASSED tests/validators/test_definitions_recursive.py::test_outside_parent PASSED tests/validators/test_definitions_recursive.py::test_recursion_branch PASSED tests/validators/test_definitions_recursive.py::test_recursion_branch_from_attributes PASSED tests/validators/test_definitions_recursive.py::test_definition_list PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_param[input_value0-expected0] PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_param[input_value1-expected1] PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_param[input_value2-expected2] PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_param[input_value3-expected3] PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_param[input_value4-expected4] PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_repeat PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_recursion PASSED tests/validators/test_definitions_recursive.py::test_multiple_tuple_recursion_once PASSED tests/validators/test_definitions_recursive.py::test_definition_wrap PASSED tests/validators/test_definitions_recursive.py::test_union_ref_strictness PASSED tests/validators/test_definitions_recursive.py::test_union_container_strictness PASSED tests/validators/test_definitions_recursive.py::test_union_cycle[strict=True] PASSED tests/validators/test_definitions_recursive.py::test_union_cycle[strict=False] PASSED tests/validators/test_definitions_recursive.py::test_function_name PASSED tests/validators/test_definitions_recursive.py::test_function_change_id[strict=True] PASSED tests/validators/test_definitions_recursive.py::test_function_change_id[strict=False] PASSED tests/validators/test_definitions_recursive.py::test_many_uses_of_ref PASSED tests/validators/test_definitions_recursive.py::test_error_inside_definition_wrapper PASSED tests/validators/test_definitions_recursive.py::test_recursive_definitions_schema PASSED tests/validators/test_definitions_recursive.py::test_unsorted_definitions_schema PASSED tests/validators/test_definitions_recursive.py::test_validate_assignment PASSED tests/validators/test_definitions_recursive.py::test_cyclic_data PASSED tests/validators/test_definitions_recursive.py::test_cyclic_data_threeway PASSED tests/validators/test_definitions_recursive.py::test_complex_recursive_type PASSED tests/validators/test_definitions_recursive.py::test_no_exponential_blowup PASSED tests/validators/test_dict.py::test_dict[python] PASSED tests/validators/test_dict.py::test_dict[json] PASSED tests/validators/test_dict.py::test_dict_cases[{'1': b'1', '2': b'2'}-{'1': '1', '2': '2'}] PASSED tests/validators/test_dict.py::test_dict_cases[OrderedDict([('a', b'1'), ('b', '2')])-{'a': '1', 'b': '2'}] PASSED tests/validators/test_dict.py::test_dict_cases[{}-{}] PASSED tests/validators/test_dict.py::test_dict_cases['foobar'-Err("Input should be a valid dictionary [type=dict_type, input_value='foobar', input_type=str]")] PASSED tests/validators/test_dict.py::test_dict_cases[[]-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_cases[[('x', 'y')]-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_cases[[('x', 'y'), ('z', 'z')]-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_cases[()-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_cases[(('x', 'y'),)-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_cases[-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_dict.py::test_dict_value_error[python] PASSED tests/validators/test_dict.py::test_dict_value_error[json] PASSED tests/validators/test_dict.py::test_dict_error_key_int PASSED tests/validators/test_dict.py::test_dict_error_key_other PASSED tests/validators/test_dict.py::test_dict_any_value PASSED tests/validators/test_dict.py::test_mapping PASSED tests/validators/test_dict.py::test_key_error PASSED tests/validators/test_dict.py::test_mapping_error PASSED tests/validators/test_dict.py::test_mapping_error_yield_1[mapping_items0] PASSED tests/validators/test_dict.py::test_mapping_error_yield_1[mapping_items1] PASSED tests/validators/test_dict.py::test_mapping_error_yield_1[mapping_items2] PASSED tests/validators/test_dict.py::test_mapping_error_yield_1[not list] PASSED tests/validators/test_dict.py::test_dict_length_constraints[kwargs0-input_value0-expected0] PASSED tests/validators/test_dict.py::test_dict_length_constraints[kwargs1-input_value1-expected1] PASSED tests/validators/test_dict.py::test_dict_length_constraints[kwargs2-input_value2-expected2] PASSED tests/validators/test_dict.py::test_dict_length_constraints[kwargs3-input_value3-expected3] PASSED tests/validators/test_dict.py::test_dict_length_constraints[kwargs4-input_value4-expected4] PASSED tests/validators/test_dict.py::test_json_dict PASSED tests/validators/test_dict.py::test_dict_complex_key PASSED tests/validators/test_dict.py::test_json_dict_complex_key PASSED tests/validators/test_enums.py::test_plain_enum PASSED tests/validators/test_enums.py::test_int_enum PASSED tests/validators/test_enums.py::test_str_enum PASSED tests/validators/test_enums.py::test_float_enum PASSED tests/validators/test_enums.py::test_enum_missing PASSED tests/validators/test_enums.py::test_enum_missing_none PASSED tests/validators/test_enums.py::test_enum_missing_wrong PASSED tests/validators/test_enums.py::test_enum_exactness PASSED tests/validators/test_enums.py::test_plain_enum_lists PASSED tests/validators/test_enums.py::test_plain_enum_empty PASSED tests/validators/test_enums.py::test_enum_with_str_subclass PASSED tests/validators/test_enums.py::test_enum_with_int_subclass PASSED tests/validators/test_enums.py::test_validate_float_for_int_enum PASSED tests/validators/test_enums.py::test_missing_error_converted_to_val_error PASSED tests/validators/test_enums.py::test_big_int PASSED tests/validators/test_enums.py::test_enum_int_validation_should_succeed_for_decimal[-1] PASSED tests/validators/test_enums.py::test_enum_int_validation_should_succeed_for_decimal[0] PASSED tests/validators/test_enums.py::test_enum_int_validation_should_succeed_for_decimal[1] PASSED tests/validators/test_enums.py::test_enum_int_validation_should_succeed_for_custom_type PASSED tests/validators/test_enums.py::test_enum_str_validation_should_fail_for_decimal_when_expecting_str_value PASSED tests/validators/test_enums.py::test_enum_int_validation_should_fail_for_incorrect_decimal_value PASSED tests/validators/test_enums.py::test_enum_int_validation_should_fail_for_plain_type_without_eq_checking PASSED tests/validators/test_float.py::test_float[python-0-0] PASSED tests/validators/test_float.py::test_float[python-1-1] PASSED tests/validators/test_float.py::test_float[python-42-42_0] PASSED tests/validators/test_float.py::test_float[python-42-42_1] PASSED tests/validators/test_float.py::test_float[python- 42.1 -42.1] PASSED tests/validators/test_float.py::test_float[python-42.123-42.123] PASSED tests/validators/test_float.py::test_float[python-42.0-42] PASSED tests/validators/test_float.py::test_float[python-42.5-42.5] PASSED tests/validators/test_float.py::test_float[python-10000000000.0-10000000000.0] PASSED tests/validators/test_float.py::test_float[python-True-1] PASSED tests/validators/test_float.py::test_float[python-False-0] PASSED tests/validators/test_float.py::test_float[python-wrong-expected11] PASSED tests/validators/test_float.py::test_float[python-input_value12-expected12] PASSED tests/validators/test_float.py::test_float[json-0-0] PASSED tests/validators/test_float.py::test_float[json-1-1] PASSED tests/validators/test_float.py::test_float[json-42-42_0] PASSED tests/validators/test_float.py::test_float[json-42-42_1] PASSED tests/validators/test_float.py::test_float[json- 42.1 -42.1] PASSED tests/validators/test_float.py::test_float[json-42.123-42.123] PASSED tests/validators/test_float.py::test_float[json-42.0-42] PASSED tests/validators/test_float.py::test_float[json-42.5-42.5] PASSED tests/validators/test_float.py::test_float[json-10000000000.0-10000000000.0] PASSED tests/validators/test_float.py::test_float[json-True-1] PASSED tests/validators/test_float.py::test_float[json-False-0] PASSED tests/validators/test_float.py::test_float[json-wrong-expected11] PASSED tests/validators/test_float.py::test_float[json-input_value12-expected12] PASSED tests/validators/test_float.py::test_float_strict[python-0-0] PASSED tests/validators/test_float.py::test_float_strict[python-1-1] PASSED tests/validators/test_float.py::test_float_strict[python-42-42] PASSED tests/validators/test_float.py::test_float_strict[python-42.0-42.0] PASSED tests/validators/test_float.py::test_float_strict[python-42.5-42.5] PASSED tests/validators/test_float.py::test_float_strict[python-'42'-Err("Input should be a valid number [type=float_type, input_value='42', input_type=str]")] PASSED tests/validators/test_float.py::test_float_strict[python-True-Err('Input should be a valid number [type=float_type, input_value=True, input_type=bool]')] PASSED tests/validators/test_float.py::test_float_strict[json-0-0] PASSED tests/validators/test_float.py::test_float_strict[json-1-1] PASSED tests/validators/test_float.py::test_float_strict[json-42-42] PASSED tests/validators/test_float.py::test_float_strict[json-42.0-42.0] PASSED tests/validators/test_float.py::test_float_strict[json-42.5-42.5] PASSED tests/validators/test_float.py::test_float_strict[json-'42'-Err("Input should be a valid number [type=float_type, input_value='42', input_type=str]")] PASSED tests/validators/test_float.py::test_float_strict[json-True-Err('Input should be a valid number [type=float_type, input_value=True, input_type=bool]')] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs0-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs1-123.456-123.456] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs2-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs3--0.1-expected3] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs4-0.1-0.1] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs5-0-expected5] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs6-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs7--1--1] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs8-0.1-expected8] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs9-0-expected9] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs10-1-expected10] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs11-nan-expected11] PASSED tests/validators/test_float.py::test_float_kwargs[python-kwargs12-inf-inf] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs0-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs1-123.456-123.456] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs2-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs3--0.1-expected3] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs4-0.1-0.1] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs5-0-expected5] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs6-0-0] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs7--1--1] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs8-0.1-expected8] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs9-0-expected9] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs10-1-expected10] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs11-nan-expected11] PASSED tests/validators/test_float.py::test_float_kwargs[json-kwargs12-inf-inf] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-0.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-1-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-0.6-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-0.51-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-0.501-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-1000000.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.5-1000000.49-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.2-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.3-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.4-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-0.5001-Err('Input should be a multiple of 0.1')] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-1-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-1.0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-0.1-50000000000-None] PASSED tests/validators/test_float.py::test_float_multiple_of[python-2.0--2.0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-0.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-1-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-0.6-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-0.51-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-0.501-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-1000000.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.5-1000000.49-Err('Input should be a multiple of 0.5')] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.2-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.3-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.4-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.5-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-0.5001-Err('Input should be a multiple of 0.1')] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-1-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-1.0-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-0.1-50000000000-None] PASSED tests/validators/test_float.py::test_float_multiple_of[json-2.0--2.0-None] PASSED tests/validators/test_float.py::test_union_float[python] PASSED tests/validators/test_float.py::test_union_float[json] PASSED tests/validators/test_float.py::test_union_float_simple[python] PASSED tests/validators/test_float.py::test_union_float_simple[json] PASSED tests/validators/test_float.py::test_float_repr PASSED tests/validators/test_float.py::test_float_not_json[input_value0-1.23] PASSED tests/validators/test_float.py::test_float_not_json[input_value1-1.0] PASSED tests/validators/test_float.py::test_float_nan[python] PASSED tests/validators/test_float.py::test_float_nan[json] PASSED tests/validators/test_float.py::test_float_key[python] PASSED tests/validators/test_float.py::test_float_key[json] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-NaN-True-expected0] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-NaN-False-expected1] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-+inf-True-expected2] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-inf-True-expected3] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-+inf-False-expected4] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-+infinity-True-expected5] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-+infinity-False-expected6] PASSED tests/validators/test_float.py::test_non_finite_json_values[python--inf-True-expected7] PASSED tests/validators/test_float.py::test_non_finite_json_values[python--inf-False-expected8] PASSED tests/validators/test_float.py::test_non_finite_json_values[python--infinity-True-expected9] PASSED tests/validators/test_float.py::test_non_finite_json_values[python--infinity-False-expected10] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-0.7-True-0.7] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-0.7-False-0.7] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-pika-True-expected13] PASSED tests/validators/test_float.py::test_non_finite_json_values[python-pika-False-expected14] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-NaN-True-expected0] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-NaN-False-expected1] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-+inf-True-expected2] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-inf-True-expected3] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-+inf-False-expected4] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-+infinity-True-expected5] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-+infinity-False-expected6] PASSED tests/validators/test_float.py::test_non_finite_json_values[json--inf-True-expected7] PASSED tests/validators/test_float.py::test_non_finite_json_values[json--inf-False-expected8] PASSED tests/validators/test_float.py::test_non_finite_json_values[json--infinity-True-expected9] PASSED tests/validators/test_float.py::test_non_finite_json_values[json--infinity-False-expected10] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-0.7-True-0.7] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-0.7-False-0.7] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-pika-True-expected13] PASSED tests/validators/test_float.py::test_non_finite_json_values[json-pika-False-expected14] PASSED tests/validators/test_float.py::test_non_finite_float_values[nan-True-expected0-True] PASSED tests/validators/test_float.py::test_non_finite_float_values[nan-True-expected0-False] PASSED tests/validators/test_float.py::test_non_finite_float_values[nan-False-expected1-True] PASSED tests/validators/test_float.py::test_non_finite_float_values[nan-False-expected1-False] PASSED tests/validators/test_float.py::test_non_finite_constrained_float_values[inf-True-expected0] PASSED tests/validators/test_float.py::test_non_finite_constrained_float_values[inf-False-expected1] PASSED tests/validators/test_float.py::test_non_finite_constrained_float_values[-inf-True-expected2] PASSED tests/validators/test_float.py::test_non_finite_constrained_float_values[-inf-False-expected3] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0e-12-1e-12] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1e-12-1e-12] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12e-1-1.2] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0E-12-1e-12] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1E-12-1e-12] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12E-1-1.2] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0e+12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1e+12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12e+1-120.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0E+12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1E+12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12E+1-120.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0e12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1e12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12e1-120.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1.0E12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[1E12-1000000000000.0] PASSED tests/validators/test_float.py::test_validate_scientific_notation_from_json[12E1-120.0] PASSED tests/validators/test_float.py::test_string_with_underscores PASSED tests/validators/test_float.py::test_allow_inf_nan_true_json PASSED tests/validators/test_float.py::test_allow_inf_nan_false_json PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[python-input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[python-input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[python-input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[python-input_value3-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[json-input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[json-input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[json-input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_both[json-input_value3-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_any[input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_any[input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_any[input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_no_copy PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[python-input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[python-foo-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[python-1-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[python-1.0-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[python-False-expected4] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[json-input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[json-foo-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[json-1-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[json-1.0-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_both[json-False-expected4] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value3-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value4-expected4] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value5-expected5] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value6-expected6] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value7-expected7] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value8-expected8] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value9-expected9] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value10-expected10] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[-expected11] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value12-expected12] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value13-expected13] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[input_value14-expected14] PASSED tests/validators/test_frozenset.py::test_frozenset_ints_python[abc-expected15] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_python[input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_python[input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_no_validators_python[input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_multiple_errors PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs0-input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs1-input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs2-input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs3-input_value3-expected3] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs4-input_value4-expected4] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs5-input_value5-expected5] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs6-input_value6-expected6] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs7-input_value7-expected7] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs8-abc-expected8] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs9-input_value9-expected9] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs10-input_value10-expected10] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs11-input_value11-expected11] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs12-input_value12-expected12] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs13-input_value13-expected13] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs14-input_value14-expected14] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs15-generate_repeats-expected15] PASSED tests/validators/test_frozenset.py::test_frozenset_kwargs_python[kwargs16-infinite_generator-expected16] PASSED tests/validators/test_frozenset.py::test_union_frozenset_list[input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_union_frozenset_list[input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_union_frozenset_int_frozenset_str[input_value0-expected0] PASSED tests/validators/test_frozenset.py::test_union_frozenset_int_frozenset_str[input_value1-expected1] PASSED tests/validators/test_frozenset.py::test_union_frozenset_int_frozenset_str[input_value2-expected2] PASSED tests/validators/test_frozenset.py::test_frozenset_as_dict_keys[python] PASSED tests/validators/test_frozenset.py::test_frozenset_as_dict_keys[json] PASSED tests/validators/test_frozenset.py::test_repr PASSED tests/validators/test_frozenset.py::test_generator_error PASSED tests/validators/test_frozenset.py::test_frozenset_from_dict_items[Tuple[Any, Any]] PASSED tests/validators/test_frozenset.py::test_frozenset_from_dict_items[Tuple[int, int]] PASSED tests/validators/test_frozenset.py::test_frozenset_from_dict_items[Any] PASSED tests/validators/test_frozenset.py::test_frozenset_fail_fast[fail_fast] PASSED tests/validators/test_frozenset.py::test_frozenset_fail_fast[not_fail_fast] PASSED tests/validators/test_function.py::test_function_before PASSED tests/validators/test_function.py::test_function_before_no_info PASSED tests/validators/test_function.py::test_function_before_raise PASSED tests/validators/test_function.py::test_function_before_error PASSED tests/validators/test_function.py::test_function_before_error_hide_input[config0-type=string_too_long, input_value='12345x', input_type=str] PASSED tests/validators/test_function.py::test_function_before_error_hide_input[config1-type=string_too_long, input_value='12345x', input_type=str] PASSED tests/validators/test_function.py::test_function_before_error_hide_input[config2-type=string_too_long] PASSED tests/validators/test_function.py::test_function_before_error_model PASSED tests/validators/test_function.py::test_val_info_repr[None-kwargs0-ValidationInfo(config=None, context=None, data=None, field_name=None)] PASSED tests/validators/test_function.py::test_val_info_repr[None-kwargs1-ValidationInfo(config=None, context={1: 2}, data=None, field_name=None)] PASSED tests/validators/test_function.py::test_val_info_repr[None-kwargs2-ValidationInfo(config=None, context=None, data=None, field_name=None)] PASSED tests/validators/test_function.py::test_val_info_repr[config3-kwargs3-ValidationInfo(config={'title': 'hello'}, context=None, data=None, field_name=None)] PASSED tests/validators/test_function.py::test_function_wrap PASSED tests/validators/test_function.py::test_function_wrap_no_info PASSED tests/validators/test_function.py::test_function_wrap_repr PASSED tests/validators/test_function.py::test_function_wrap_str PASSED tests/validators/test_function.py::test_function_wrap_not_callable PASSED tests/validators/test_function.py::test_wrap_error PASSED tests/validators/test_function.py::test_function_wrap_error_hide_input[config0-type=int_parsing, input_value='wrong', input_type=str] PASSED tests/validators/test_function.py::test_function_wrap_error_hide_input[config1-type=int_parsing, input_value='wrong', input_type=str] PASSED tests/validators/test_function.py::test_function_wrap_error_hide_input[config2-type=int_parsing] PASSED tests/validators/test_function.py::test_function_wrap_location PASSED tests/validators/test_function.py::test_function_wrap_invalid_location PASSED tests/validators/test_function.py::test_function_after PASSED tests/validators/test_function.py::test_function_no_info PASSED tests/validators/test_function.py::test_function_after_raise PASSED tests/validators/test_function.py::test_function_after_error_hide_input[config0-type=value_error, input_value='input value', input_type=str] PASSED tests/validators/test_function.py::test_function_after_error_hide_input[config1-type=value_error, input_value='input value', input_type=str] PASSED tests/validators/test_function.py::test_function_after_error_hide_input[config2-type=value_error] PASSED tests/validators/test_function.py::test_function_after_config PASSED tests/validators/test_function.py::test_config_no_model PASSED tests/validators/test_function.py::test_function_plain PASSED tests/validators/test_function.py::test_function_plain_no_info PASSED tests/validators/test_function.py::test_plain_with_schema PASSED tests/validators/test_function.py::test_validate_assignment PASSED tests/validators/test_function.py::test_function_wrong_sig PASSED tests/validators/test_function.py::test_class_with_validator PASSED tests/validators/test_function.py::test_raise_assertion_error PASSED tests/validators/test_function.py::test_raise_assertion_error_plain PASSED tests/validators/test_function.py::test_error_with_error[ValueError] PASSED tests/validators/test_function.py::test_error_with_error[AssertionError] PASSED tests/validators/test_function.py::test_raise_type_error PASSED tests/validators/test_function.py::test_model_field_before_validator PASSED tests/validators/test_function.py::test_model_field_after_validator PASSED tests/validators/test_function.py::test_model_field_plain_validator PASSED tests/validators/test_function.py::test_model_field_wrap_validator PASSED tests/validators/test_function.py::test_non_model_field_before_validator_tries_to_access_field_info PASSED tests/validators/test_function.py::test_non_model_field_after_validator_tries_to_access_field_info PASSED tests/validators/test_function.py::test_non_model_field_plain_validator_tries_to_access_field_info PASSED tests/validators/test_function.py::test_non_model_field_wrap_validator_tries_to_access_field_info PASSED tests/validators/test_function.py::test_typed_dict_data PASSED tests/validators/test_function.py::test_model_root_function_assignment[before] PASSED tests/validators/test_function.py::test_model_root_function_assignment[after] PASSED tests/validators/test_function.py::test_model_root_function_assignment[wrap] PASSED tests/validators/test_function.py::test_function_validation_info_mode PASSED tests/validators/test_function.py::test_reprs PASSED tests/validators/test_function.py::test_function_after_doesnt_change_mode PASSED tests/validators/test_generator.py::test_generator_json_int[python-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[python-[1, 2, '3']-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[python-{1: 2, 3: 4}-[1, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[python-'123'-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[python-5-Err('[type=iterable_type, input_value=5, input_type=int]')] PASSED tests/validators/test_generator.py::test_generator_json_int[python-[1, 'wrong']-Err("[type=int_parsing, input_value='wrong', input_type=str]")] PASSED tests/validators/test_generator.py::test_generator_json_int[json-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[json-[1, 2, '3']-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[json-{1: 2, 3: 4}-[1, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[json-'123'-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_int[json-5-Err('[type=iterable_type, input_value=5, input_type=int]')] PASSED tests/validators/test_generator.py::test_generator_json_int[json-[1, 'wrong']-Err("[type=int_parsing, input_value='wrong', input_type=str]")] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[python-config0-type=iterable_type, input_value=5, input_type=int] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[python-config1-type=iterable_type, input_value=5, input_type=int] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[python-config2-type=iterable_type] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[json-config0-type=iterable_type, input_value=5, input_type=int] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[json-config1-type=iterable_type, input_value=5, input_type=int] PASSED tests/validators/test_generator.py::test_generator_json_hide_input[json-config2-type=iterable_type] PASSED tests/validators/test_generator.py::test_generator_json_any[python-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_any[python-[1, 2, '3']-[1, 2, '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[python-{'1': 2, '3': 4}-['1', '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[python-'123'-['1', '2', '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[python-5-Err('[type=iterable_type, input_value=5, input_type=int]')] PASSED tests/validators/test_generator.py::test_generator_json_any[python-[1, 'wrong']-[1, 'wrong']] PASSED tests/validators/test_generator.py::test_generator_json_any[json-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_generator.py::test_generator_json_any[json-[1, 2, '3']-[1, 2, '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[json-{'1': 2, '3': 4}-['1', '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[json-'123'-['1', '2', '3']] PASSED tests/validators/test_generator.py::test_generator_json_any[json-5-Err('[type=iterable_type, input_value=5, input_type=int]')] PASSED tests/validators/test_generator.py::test_generator_json_any[json-[1, 'wrong']-[1, 'wrong']] PASSED tests/validators/test_generator.py::test_error_index[python] PASSED tests/validators/test_generator.py::test_error_index[json] PASSED tests/validators/test_generator.py::test_too_long[python] PASSED tests/validators/test_generator.py::test_too_long[json] PASSED tests/validators/test_generator.py::test_too_short[python] PASSED tests/validators/test_generator.py::test_too_short[json] PASSED tests/validators/test_generator.py::test_generator_too_long PASSED tests/validators/test_generator.py::test_generator_too_short PASSED tests/validators/test_int.py::test_int_py_and_json[python-False-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-True-1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0-0_0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0-0_1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0_000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+0_000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-1-1] PASSED tests/validators/test_int.py::test_int_py_and_json[python- 1 -1] PASSED tests/validators/test_int.py::test_int_py_and_json[python--1--1] PASSED tests/validators/test_int.py::test_int_py_and_json[python--1.0--1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42-42_0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42-42_1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42.0-42_0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0.0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-00.0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-00.00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42.0-42_1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42.00-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-042-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-01-1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-09-9] PASSED tests/validators/test_int.py::test_int_py_and_json[python-00_-expected26] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0:-expected27] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+4_2-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+0_42-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+4_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+04_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-++4_2-expected32] PASSED tests/validators/test_int.py::test_int_py_and_json[python--+1-expected33] PASSED tests/validators/test_int.py::test_int_py_and_json[python-+-1-expected34] PASSED tests/validators/test_int.py::test_int_py_and_json[python---0001-expected35] PASSED tests/validators/test_int.py::test_int_py_and_json[python--+0001-expected36] PASSED tests/validators/test_int.py::test_int_py_and_json[python--0-001-expected37] PASSED tests/validators/test_int.py::test_int_py_and_json[python--0+001-expected38] PASSED tests/validators/test_int.py::test_int_py_and_json[python--00001--1] PASSED tests/validators/test_int.py::test_int_py_and_json[python--00042_000--42000] PASSED tests/validators/test_int.py::test_int_py_and_json[python-4_2-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-0_42-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-4_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python-04_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[python- 04_2.0 -42] PASSED tests/validators/test_int.py::test_int_py_and_json[python- 0_42.0 -42] PASSED tests/validators/test_int.py::test_int_py_and_json[python- _042.0 -expected47] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42_-expected48] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42_.0-expected49] PASSED tests/validators/test_int.py::test_int_py_and_json[python-000001-1] PASSED tests/validators/test_int.py::test_int_py_and_json[python-123456789.0-123456789] PASSED tests/validators/test_int.py::test_int_py_and_json[python- -expected52] PASSED tests/validators/test_int.py::test_int_py_and_json[python-1.-expected53] PASSED tests/validators/test_int.py::test_int_py_and_json[python-42.-expected54] PASSED tests/validators/test_int.py::test_int_py_and_json[python-123456789123456.00001-expected55] PASSED tests/validators/test_int.py::test_int_py_and_json[python-10000000000-10000000000] PASSED tests/validators/test_int.py::test_int_py_and_json[python-9223372036854775807-9223372036854775807] PASSED tests/validators/test_int.py::test_int_py_and_json[python-9223372036854775808-9223372036854775808] PASSED tests/validators/test_int.py::test_int_py_and_json[python-18446744073709551614-18446744073709551614] PASSED tests/validators/test_int.py::test_int_py_and_json[python-float-remainder] PASSED tests/validators/test_int.py::test_int_py_and_json[python-string] PASSED tests/validators/test_int.py::test_int_py_and_json[python-list0] PASSED tests/validators/test_int.py::test_int_py_and_json[python-list1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-False-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-True-1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0-0_0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0-0_1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0_000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+0_000-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-1-1] PASSED tests/validators/test_int.py::test_int_py_and_json[json- 1 -1] PASSED tests/validators/test_int.py::test_int_py_and_json[json--1--1] PASSED tests/validators/test_int.py::test_int_py_and_json[json--1.0--1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42-42_0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42-42_1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42.0-42_0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0.0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-00.0-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-00.00-0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42.0-42_1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42.00-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-042-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-01-1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-09-9] PASSED tests/validators/test_int.py::test_int_py_and_json[json-00_-expected26] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0:-expected27] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+4_2-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+0_42-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+4_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+04_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-++4_2-expected32] PASSED tests/validators/test_int.py::test_int_py_and_json[json--+1-expected33] PASSED tests/validators/test_int.py::test_int_py_and_json[json-+-1-expected34] PASSED tests/validators/test_int.py::test_int_py_and_json[json---0001-expected35] PASSED tests/validators/test_int.py::test_int_py_and_json[json--+0001-expected36] PASSED tests/validators/test_int.py::test_int_py_and_json[json--0-001-expected37] PASSED tests/validators/test_int.py::test_int_py_and_json[json--0+001-expected38] PASSED tests/validators/test_int.py::test_int_py_and_json[json--00001--1] PASSED tests/validators/test_int.py::test_int_py_and_json[json--00042_000--42000] PASSED tests/validators/test_int.py::test_int_py_and_json[json-4_2-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-0_42-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-4_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json-04_2.0-42] PASSED tests/validators/test_int.py::test_int_py_and_json[json- 04_2.0 -42] PASSED tests/validators/test_int.py::test_int_py_and_json[json- 0_42.0 -42] PASSED tests/validators/test_int.py::test_int_py_and_json[json- _042.0 -expected47] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42_-expected48] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42_.0-expected49] PASSED tests/validators/test_int.py::test_int_py_and_json[json-000001-1] PASSED tests/validators/test_int.py::test_int_py_and_json[json-123456789.0-123456789] PASSED tests/validators/test_int.py::test_int_py_and_json[json- -expected52] PASSED tests/validators/test_int.py::test_int_py_and_json[json-1.-expected53] PASSED tests/validators/test_int.py::test_int_py_and_json[json-42.-expected54] PASSED tests/validators/test_int.py::test_int_py_and_json[json-123456789123456.00001-expected55] PASSED tests/validators/test_int.py::test_int_py_and_json[json-10000000000-10000000000] PASSED tests/validators/test_int.py::test_int_py_and_json[json-9223372036854775807-9223372036854775807] PASSED tests/validators/test_int.py::test_int_py_and_json[json-9223372036854775808-9223372036854775808] PASSED tests/validators/test_int.py::test_int_py_and_json[json-18446744073709551614-18446744073709551614] PASSED tests/validators/test_int.py::test_int_py_and_json[json-float-remainder] PASSED tests/validators/test_int.py::test_int_py_and_json[json-string] PASSED tests/validators/test_int.py::test_int_py_and_json[json-list0] PASSED tests/validators/test_int.py::test_int_py_and_json[json-list1] PASSED tests/validators/test_int.py::test_int[Decimal('1')-1] PASSED tests/validators/test_int.py::test_int[Decimal('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] PASSED tests/validators/test_int.py::test_int[Decimal('1.0')-1] PASSED tests/validators/test_int.py::test_int[1.0-1] PASSED tests/validators/test_int.py::test_int[9223372036854775807-9223372036854775807] PASSED tests/validators/test_int.py::test_int['9223372036854775807'-9223372036854775807] PASSED tests/validators/test_int.py::test_int['18446744073709551614'-18446744073709551614] PASSED tests/validators/test_int.py::test_int[9223372036854775808-9223372036854775808] PASSED tests/validators/test_int.py::test_int[-9223372036854775806--9223372036854775806] PASSED tests/validators/test_int.py::test_int[18446744073709551614-18446744073709551614] PASSED tests/validators/test_int.py::test_int[-18446744073709551614--18446744073709551614] PASSED tests/validators/test_int.py::test_int[decimal-remainder0] PASSED tests/validators/test_int.py::test_int[decimal-remainder1] PASSED tests/validators/test_int.py::test_int[tuple] PASSED tests/validators/test_int.py::test_positive_int[input_value0-1] PASSED tests/validators/test_int.py::test_positive_int[input_value1-1] PASSED tests/validators/test_int.py::test_positive_int[i64_max] PASSED tests/validators/test_int.py::test_positive_int[i64_max+1] PASSED tests/validators/test_int.py::test_positive_int[-1] PASSED tests/validators/test_int.py::test_positive_int[-9223372036854775806-expected5] PASSED tests/validators/test_int.py::test_positive_int[18446744073709551614-18446744073709551614] PASSED tests/validators/test_int.py::test_positive_int[999999999999999999999999999999-999999999999999999999999999999] PASSED tests/validators/test_int.py::test_positive_int[0-expected8] PASSED tests/validators/test_int.py::test_positive_int[-1-expected9] PASSED tests/validators/test_int.py::test_positive_int[decimal-remainder] PASSED tests/validators/test_int.py::test_positive_int[tuple] PASSED tests/validators/test_int.py::test_negative_int[-1--1] PASSED tests/validators/test_int.py::test_negative_int[0-expected1] PASSED tests/validators/test_int.py::test_negative_int[-9223372036854775807--9223372036854775807] PASSED tests/validators/test_int.py::test_negative_int[-9223372036854775808--9223372036854775808] PASSED tests/validators/test_int.py::test_negative_int[-999999999999999999999999999999--999999999999999999999999999999] PASSED tests/validators/test_int.py::test_positive_json[1-1] PASSED tests/validators/test_int.py::test_positive_json[9223372036854775807-9223372036854775807] PASSED tests/validators/test_int.py::test_positive_json[9223372036854775808-9223372036854775808] PASSED tests/validators/test_int.py::test_positive_json[18446744073709551614-18446744073709551614] PASSED tests/validators/test_int.py::test_positive_json[1000000000000000019884624838656-1000000000000000019884624838656] PASSED tests/validators/test_int.py::test_positive_json[0-expected5] PASSED tests/validators/test_int.py::test_positive_json[-1-expected6] PASSED tests/validators/test_int.py::test_positive_json[list] PASSED tests/validators/test_int.py::test_negative_json[-1--1] PASSED tests/validators/test_int.py::test_negative_json[0-expected1] PASSED tests/validators/test_int.py::test_negative_json[-9223372036854775807--9223372036854775807] PASSED tests/validators/test_int.py::test_negative_json[-9223372036854775808--9223372036854775808] PASSED tests/validators/test_int.py::test_negative_json[-18446744073709551614--18446744073709551614] PASSED tests/validators/test_int.py::test_int_strict[python-0-0] PASSED tests/validators/test_int.py::test_int_strict[python-1-1] PASSED tests/validators/test_int.py::test_int_strict[python-42-42] PASSED tests/validators/test_int.py::test_int_strict[python-float-exact] PASSED tests/validators/test_int.py::test_int_strict[python-float-remainder] PASSED tests/validators/test_int.py::test_int_strict[python-string] PASSED tests/validators/test_int.py::test_int_strict[python-bool] PASSED tests/validators/test_int.py::test_int_strict[json-0-0] PASSED tests/validators/test_int.py::test_int_strict[json-1-1] PASSED tests/validators/test_int.py::test_int_strict[json-42-42] PASSED tests/validators/test_int.py::test_int_strict[json-float-exact] PASSED tests/validators/test_int.py::test_int_strict[json-float-remainder] PASSED tests/validators/test_int.py::test_int_strict[json-string] PASSED tests/validators/test_int.py::test_int_strict[json-bool] PASSED tests/validators/test_int.py::test_int_kwargs[python-{}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[python-{}-'123.000'-123] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'ge': 0}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'ge': 0}--1-Err('Input should be greater than or equal to 0 [type=greater_than_equal, input_value=-1, input_type=int]')] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'gt': 0}-1-1] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'gt': 0}-0-Err('Input should be greater than 0 [type=greater_than, input_value=0, input_type=int]')] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'le': 0}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'le': 0}--1--1] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'le': 0}-1-Err('Input should be less than or equal to 0')] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'lt': 0}-0-Err('Input should be less than 0')] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'lt': 0}-1-Err('Input should be less than 0')] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'multiple_of': 5}-15-15] PASSED tests/validators/test_int.py::test_int_kwargs[python-{'multiple_of': 5}-6-Err('Input should be a multiple of 5')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[json-{}-'123.000'-123] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'ge': 0}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'ge': 0}--1-Err('Input should be greater than or equal to 0 [type=greater_than_equal, input_value=-1, input_type=int]')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'gt': 0}-1-1] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'gt': 0}-0-Err('Input should be greater than 0 [type=greater_than, input_value=0, input_type=int]')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'le': 0}-0-0] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'le': 0}--1--1] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'le': 0}-1-Err('Input should be less than or equal to 0')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'lt': 0}-0-Err('Input should be less than 0')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'lt': 0}-1-Err('Input should be less than 0')] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'multiple_of': 5}-15-15] PASSED tests/validators/test_int.py::test_int_kwargs[json-{'multiple_of': 5}-6-Err('Input should be a multiple of 5')] PASSED tests/validators/test_int.py::test_union_int[python] PASSED tests/validators/test_int.py::test_union_int[json] PASSED tests/validators/test_int.py::test_union_int_simple[python] PASSED tests/validators/test_int.py::test_union_int_simple[json] PASSED tests/validators/test_int.py::test_int_repr PASSED tests/validators/test_int.py::test_too_long PASSED tests/validators/test_int.py::test_long_python PASSED tests/validators/test_int.py::test_long_python_inequality PASSED tests/validators/test_int.py::test_long_json PASSED tests/validators/test_int.py::test_int_key[python] PASSED tests/validators/test_int.py::test_int_key[json] PASSED tests/validators/test_int.py::test_string_as_int_with_underscores PASSED tests/validators/test_int.py::test_int_subclass PASSED tests/validators/test_int.py::test_int_subclass_constraint PASSED tests/validators/test_int.py::test_float_subclass PASSED tests/validators/test_int.py::test_int_subclass_plain_enum PASSED tests/validators/test_int.py::test_allow_inf_nan_true_json PASSED tests/validators/test_int.py::test_allow_inf_nan_false_json PASSED tests/validators/test_int.py::test_json_big_int_key PASSED tests/validators/test_is_instance.py::test_validate_json PASSED tests/validators/test_is_instance.py::test_is_instance PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Foo-input_val0-True] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Foo-Foo-False] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Foo-input_val2-True] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Foo-Bar-False] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Bar-input_val4-False] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[Bar-Foo-False] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[dict-input_val6-True] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[dict-input_val7-False] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[type-Foo-True] PASSED tests/validators/test_is_instance.py::test_is_instance_cases[type-input_val9-False] PASSED tests/validators/test_is_instance.py::test_is_instance_invalid[123] PASSED tests/validators/test_is_instance.py::test_is_instance_invalid[foo] PASSED tests/validators/test_is_instance.py::test_is_instance_invalid[input_cls2] PASSED tests/validators/test_is_instance.py::test_is_instance_invalid[input_cls3] PASSED tests/validators/test_is_instance.py::test_is_instance_invalid[input_cls4] PASSED tests/validators/test_is_instance.py::test_instancecheck PASSED tests/validators/test_is_instance.py::test_repr PASSED tests/validators/test_is_instance.py::test_is_type[Foo-True] PASSED tests/validators/test_is_instance.py::test_is_type[input_val1-False] PASSED tests/validators/test_is_instance.py::test_is_type[str-True] PASSED tests/validators/test_is_instance.py::test_is_type[foo-False] PASSED tests/validators/test_is_instance.py::test_is_type[int-True] PASSED tests/validators/test_is_instance.py::test_is_type[1-False] PASSED tests/validators/test_is_instance.py::test_is_type[type-True] PASSED tests/validators/test_is_instance.py::test_is_type[Foobar-True] PASSED tests/validators/test_is_instance.py::test_is_instance_dict PASSED tests/validators/test_is_instance.py::test_is_instance_dict_not_str PASSED tests/validators/test_is_instance.py::test_is_instance_sequence PASSED tests/validators/test_is_instance.py::test_is_instance_tuple PASSED tests/validators/test_is_instance.py::test_class_repr PASSED tests/validators/test_is_instance.py::test_is_instance_json_type_before_validator PASSED tests/validators/test_is_subclass.py::test_is_subclass_basic PASSED tests/validators/test_is_subclass.py::test_is_subclass[Foo-True] PASSED tests/validators/test_is_subclass.py::test_is_subclass[Foobar-True] PASSED tests/validators/test_is_subclass.py::test_is_subclass[Bar-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[type-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[1-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[foo-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[input_value6-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[input_value7-False] PASSED tests/validators/test_is_subclass.py::test_is_subclass[input_value8-False] PASSED tests/validators/test_is_subclass.py::test_not_parent PASSED tests/validators/test_is_subclass.py::test_invalid_type PASSED tests/validators/test_is_subclass.py::test_custom_repr PASSED tests/validators/test_is_subclass.py::test_is_subclass_json PASSED tests/validators/test_json.py::test_any[python-{"a": 1}-expected0] PASSED tests/validators/test_json.py::test_any[python-"a"-a] PASSED tests/validators/test_json.py::test_any[python-1-1] PASSED tests/validators/test_json.py::test_any[python-[1, 2, 3, "4"]-expected3] PASSED tests/validators/test_json.py::test_any[python-{1: 2}-expected4] PASSED tests/validators/test_json.py::test_any[python-44-expected5] PASSED tests/validators/test_json.py::test_any[json-{"a": 1}-expected0] PASSED tests/validators/test_json.py::test_any[json-"a"-a] PASSED tests/validators/test_json.py::test_any[json-1-1] PASSED tests/validators/test_json.py::test_any[json-[1, 2, 3, "4"]-expected3] PASSED tests/validators/test_json.py::test_any[json-{1: 2}-expected4] PASSED tests/validators/test_json.py::test_any[json-44-expected5] PASSED tests/validators/test_json.py::test_any_python[str] PASSED tests/validators/test_json.py::test_any_python[bytes] PASSED tests/validators/test_json.py::test_any_python[str_unicode] PASSED tests/validators/test_json.py::test_any_python[bytearray] PASSED tests/validators/test_json.py::test_any_python[str_invalid] PASSED tests/validators/test_json.py::test_any_python[bytes_invalid] PASSED tests/validators/test_json.py::test_any_python[bytearray_invalid] PASSED tests/validators/test_json.py::test_list_int[python-[1]-expected0] PASSED tests/validators/test_json.py::test_list_int[python-[1, 2, 3, "4"]-expected1] PASSED tests/validators/test_json.py::test_list_int[python-44-expected2] PASSED tests/validators/test_json.py::test_list_int[python-"x"-expected3] PASSED tests/validators/test_json.py::test_list_int[python-[1, 2, 3, "err"]-expected4] PASSED tests/validators/test_json.py::test_list_int[json-[1]-expected0] PASSED tests/validators/test_json.py::test_list_int[json-[1, 2, 3, "4"]-expected1] PASSED tests/validators/test_json.py::test_list_int[json-44-expected2] PASSED tests/validators/test_json.py::test_list_int[json-"x"-expected3] PASSED tests/validators/test_json.py::test_list_int[json-[1, 2, 3, "err"]-expected4] PASSED tests/validators/test_json.py::test_dict_key[python] PASSED tests/validators/test_json.py::test_dict_key[json] PASSED tests/validators/test_json.py::test_enum PASSED tests/validators/test_json.py::test_any_schema_no_schema PASSED tests/validators/test_json_or_python.py::test_json_or_python PASSED tests/validators/test_lax_or_strict.py::test_lax_or_strict PASSED tests/validators/test_lax_or_strict.py::test_lax_or_strict_default_strict PASSED tests/validators/test_list.py::test_list_py_or_json[python-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_py_or_json[python-[1, 2, '3']-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_py_or_json[python-5-Err('Input should be a valid (list|array) \\\\[type=list_type, input_value=5, input_type=int\\\\]')] PASSED tests/validators/test_list.py::test_list_py_or_json[python-'5'-Err("Input should be a valid (list|array) \\\\[type=list_type, input_value='5', input_type=str\\\\]")] PASSED tests/validators/test_list.py::test_list_py_or_json[json-[1, 2, 3]-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_py_or_json[json-[1, 2, '3']-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_py_or_json[json-5-Err('Input should be a valid (list|array) \\\\[type=list_type, input_value=5, input_type=int\\\\]')] PASSED tests/validators/test_list.py::test_list_py_or_json[json-'5'-Err("Input should be a valid (list|array) \\\\[type=list_type, input_value='5', input_type=str\\\\]")] PASSED tests/validators/test_list.py::test_list_strict PASSED tests/validators/test_list.py::test_list_no_copy PASSED tests/validators/test_list.py::test_list_int[[1, 2, '3']-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int[(1, 2, '3')-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int[deque([1, 2, '3'])-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int[{1, 2, '3'}-IsList(1, 2, 3, check_order=False)] PASSED tests/validators/test_list.py::test_list_int[-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int[frozenset({1, 2, '3'})-IsList(1, 2, 3, check_order=False)] PASSED tests/validators/test_list.py::test_list_int[dict_keys([1, 2, '3'])-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int[dict_values([10, 20, '30'])-[10, 20, 30]] PASSED tests/validators/test_list.py::test_list_int[{1: 10, 2: 20, '3': '30'}-Err('Input should be a valid list [type=list_type,')] PASSED tests/validators/test_list.py::test_list_int[ at $(POINTER)>-[1, 2, 3]] PASSED tests/validators/test_list.py::test_list_int['456'-Err("Input should be a valid list [type=list_type, input_value='456', input_type=str]")] PASSED tests/validators/test_list.py::test_list_int[b'789'-Err("Input should be a valid list [type=list_type, input_value=b'789', input_type=bytes]")] PASSED tests/validators/test_list.py::test_list_json PASSED tests/validators/test_list.py::test_list_any[input_value0-expected0] PASSED tests/validators/test_list.py::test_list_any[input_value1-expected1] PASSED tests/validators/test_list.py::test_list_any[input_value2-expected2] PASSED tests/validators/test_list.py::test_list_any[input_value3-expected3] PASSED tests/validators/test_list.py::test_list_any[input_value4-expected4] PASSED tests/validators/test_list.py::test_list_any[input_value5-expected5] PASSED tests/validators/test_list.py::test_list_any[input_value6-expected6] PASSED tests/validators/test_list.py::test_list_error[input_value0-0] PASSED tests/validators/test_list.py::test_list_error[input_value1-0] PASSED tests/validators/test_list.py::test_list_error[input_value2-0] PASSED tests/validators/test_list.py::test_list_error[input_value3-3] PASSED tests/validators/test_list.py::test_list_error[input_value4-3] PASSED tests/validators/test_list.py::test_list_error[input_value5-3] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs0-input_value0-expected0] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs1-input_value1-expected1] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs2-input_value2-expected2] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs3-input_value3-expected3] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs4-input_value4-expected4] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs5-input_value5-expected5] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs6-input_value6-expected6] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs7-input_value7-expected7] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs8-infinite_generator-expected8] PASSED tests/validators/test_list.py::test_list_length_constraints[kwargs9-input_value9-expected9] PASSED tests/validators/test_list.py::test_list_length_constraints_omit[input_value0-expected0] PASSED tests/validators/test_list.py::test_list_length_constraints_omit[input_value1-expected1] PASSED tests/validators/test_list.py::test_list_length_constraints_omit[input_value2-expected2] PASSED tests/validators/test_list.py::test_length_ctx PASSED tests/validators/test_list.py::test_list_function PASSED tests/validators/test_list.py::test_list_function_val_error PASSED tests/validators/test_list.py::test_list_function_internal_error PASSED tests/validators/test_list.py::test_generator_error PASSED tests/validators/test_list.py::test_list_from_dict_items[Tuple[Any, Any]] PASSED tests/validators/test_list.py::test_list_from_dict_items[Tuple[int, int]] PASSED tests/validators/test_list.py::test_list_from_dict_items[Any] PASSED tests/validators/test_list.py::test_bad_iter[int] PASSED tests/validators/test_list.py::test_bad_iter[any] PASSED tests/validators/test_list.py::test_max_length_fail_fast[True] PASSED tests/validators/test_list.py::test_max_length_fail_fast[False] PASSED tests/validators/test_list.py::test_list_fail_fast[fail_fast] PASSED tests/validators/test_list.py::test_list_fail_fast[not_fail_fast] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=[1, 2, 3], output=[1, 2, 3], strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=[1, 2, 3], output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=[1, 2, 3], output=[1, 2, 3], strict=None)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=(1, 2, 3), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=frozenset({1, 2, 3}), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input={1, 2, 3}, output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=deque([1, 2, 3]), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=dict_keys([1, 2, 3]), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=dict_values([1, 2, 3]), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=MySequence([1, 2, 3]), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=KeysView(MyMapping({1: 'a', 2: 'b', 3: 'c'})), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=ValuesView(MyMapping({'a': 1, 'b': 2, 'c': 3})), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input= at $(POINTER)>, output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input='123', output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=b'123', output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=(1, 2, 3), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=frozenset({1, 2, 3}), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input={1, 2, 3}, output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=deque([1, 2, 3]), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=dict_keys([1, 2, 3]), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=dict_values([1, 2, 3]), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=MySequence([1, 2, 3]), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=KeysView(MyMapping({1: 'a', 2: 'b', 3: 'c'})), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=ValuesView(MyMapping({'a': 1, 'b': 2, 'c': 3})), output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input= at $(POINTER)>, output=[1, 2, 3], strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input='123', output=Err('Input should be a valid list [type=list_type,'), strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=b'123', output=Err('Input should be a valid list [type=list_type,'), strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input=MyMapping({1: 'a', 2: 'b', 3: 'c'}), output=Err('Input should be a valid list [type=list_type,'), strict=False)] PASSED tests/validators/test_list.py::test_list_allowed_inputs_python[ListInputTestCase(input={1: 'a', 2: 'b', 3: 'c'}, output=Err('Input should be a valid list [type=list_type,'), strict=False)] PASSED tests/validators/test_list.py::test_list_dict_items_input[ListInputTestCase(input=dict_items([(1, 1), (2, 2), (3, 3)]), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_dict_items_input[ListInputTestCase(input=ItemsView(MyMapping({1: 1, 2: 2, 3: 3})), output=Err('Input should be a valid list [type=list_type,'), strict=True)] PASSED tests/validators/test_list.py::test_list_dict_items_input[ListInputTestCase(input=dict_items([(1, 1), (2, 2), (3, 3)]), output=[(1, 1), (2, 2), (3, 3)], strict=False)] PASSED tests/validators/test_list.py::test_list_dict_items_input[ListInputTestCase(input=ItemsView(MyMapping({1: 1, 2: 2, 3: 3})), output=[(1, 1), (2, 2), (3, 3)], strict=False)] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected0-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-single-int] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected2-foo-foo] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-single-str] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected4-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected5-2-2] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-multiple-int0] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected7-4-4] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-multiple-int1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected9-a-a] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-multiple-str] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected11-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-kwarg_expected12-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[python-wrong-str-int] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected0-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-single-int] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected2-foo-foo] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-single-str] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected4-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected5-2-2] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-multiple-int0] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected7-4-4] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-multiple-int1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected9-a-a] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-multiple-str] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected11-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-kwarg_expected12-1-1] PASSED tests/validators/test_literal.py::test_literal_py_and_json[json-wrong-str-int] PASSED tests/validators/test_literal.py::test_literal_not_json[kwarg_expected0-whatever-whatever] PASSED tests/validators/test_literal.py::test_literal_not_json[kwarg_expected1-input_value1-expected1] PASSED tests/validators/test_literal.py::test_literal_not_json[kwarg_expected2-input_value2-expected2] PASSED tests/validators/test_literal.py::test_literal_not_json[wrong-general] PASSED tests/validators/test_literal.py::test_literal_not_json[kwarg_expected4-bite-bite] PASSED tests/validators/test_literal.py::test_literal_not_json[single-byte] PASSED tests/validators/test_literal.py::test_build_error PASSED tests/validators/test_literal.py::test_literal_none PASSED tests/validators/test_literal.py::test_union PASSED tests/validators/test_literal.py::test_enum_value PASSED tests/validators/test_literal.py::test_str_enum_values PASSED tests/validators/test_literal.py::test_int_enum_values PASSED tests/validators/test_literal.py::test_mix_int_enum_with_int[-err0] PASSED tests/validators/test_literal.py::test_mix_int_enum_with_int[-err1] PASSED tests/validators/test_literal.py::test_mix_str_enum_with_str[-err0] PASSED tests/validators/test_literal.py::test_mix_str_enum_with_str[-err1] PASSED tests/validators/test_literal.py::test_big_int PASSED tests/validators/test_literal.py::test_enum_for_str PASSED tests/validators/test_model.py::test_model_class PASSED tests/validators/test_model.py::test_model_class_extra PASSED tests/validators/test_model.py::test_model_class_extra_forbid PASSED tests/validators/test_model.py::test_model_class_extra_forbid_from_attributes[allow] PASSED tests/validators/test_model.py::test_model_class_extra_forbid_from_attributes[ignore] PASSED tests/validators/test_model.py::test_model_class_extra_forbid_from_attributes[forbid] PASSED tests/validators/test_model.py::test_model_class_setattr PASSED tests/validators/test_model.py::test_model_class_root_validator_wrap PASSED tests/validators/test_model.py::test_model_class_root_validator_before PASSED tests/validators/test_model.py::test_model_class_root_validator_after PASSED tests/validators/test_model.py::test_function_ask[before] PASSED tests/validators/test_model.py::test_function_ask[after] PASSED tests/validators/test_model.py::test_function_ask[wrap] PASSED tests/validators/test_model.py::test_function_plain_ask PASSED tests/validators/test_model.py::test_union_sub_schema PASSED tests/validators/test_model.py::test_tagged_union_sub_schema PASSED tests/validators/test_model.py::test_bad_sub_schema PASSED tests/validators/test_model.py::test_model_class_function_after PASSED tests/validators/test_model.py::test_model_class_not_type PASSED tests/validators/test_model.py::test_model_class_instance_direct PASSED tests/validators/test_model.py::test_model_class_instance_subclass PASSED tests/validators/test_model.py::test_model_class_instance_subclass_revalidate PASSED tests/validators/test_model.py::test_model_class_strict PASSED tests/validators/test_model.py::test_model_class_strict_json PASSED tests/validators/test_model.py::test_internal_error PASSED tests/validators/test_model.py::test_revalidate_always PASSED tests/validators/test_model.py::test_revalidate_subclass_instances PASSED tests/validators/test_model.py::test_revalidate_extra PASSED tests/validators/test_model.py::test_post_init PASSED tests/validators/test_model.py::test_revalidate_post_init PASSED tests/validators/test_model.py::test_post_init_validation_error PASSED tests/validators/test_model.py::test_post_init_internal_error PASSED tests/validators/test_model.py::test_post_init_mutate PASSED tests/validators/test_model.py::test_validate_assignment PASSED tests/validators/test_model.py::test_validate_assignment_function PASSED tests/validators/test_model.py::test_validate_assignment_no_fields_set PASSED tests/validators/test_model.py::test_frozen PASSED tests/validators/test_model.py::test_validate_assignment_model_validator_function[with_info_after_validator_function-call10-call20] PASSED tests/validators/test_model.py::test_validate_assignment_model_validator_function[with_info_before_validator_function-call11-call21] PASSED tests/validators/test_model.py::test_validate_assignment_model_validator_function[with_info_wrap_validator_function-call12-call22] PASSED tests/validators/test_model.py::test_model_error PASSED tests/validators/test_model.py::test_model_with_enum_int_field_validation_should_succeed_for_any_type_equality_checks PASSED tests/validators/test_model_fields.py::test_simple PASSED tests/validators/test_model_fields.py::test_strict PASSED tests/validators/test_model_fields.py::test_with_default PASSED tests/validators/test_model_fields.py::test_missing_error PASSED tests/validators/test_model_fields.py::test_config[{}-{'a': '123'}-({'a': 123, 'b': 4.2}, None, {'a'})] PASSED tests/validators/test_model_fields.py::test_config[{}-Map(a=123)-({'a': 123, 'b': 4.2}, None, {'a'})] PASSED tests/validators/test_model_fields.py::test_config[{}-{b'a': '123'}-Err('Field required [type=missing,')] PASSED tests/validators/test_model_fields.py::test_config[{}-{'a': '123', 'c': 4}-({'a': 123, 'b': 4.2}, None, {'a'})] PASSED tests/validators/test_model_fields.py::test_config[{'extra_fields_behavior': 'allow'}-{'a': '123', 'c': 4}-({'a': 123, 'b': 4.2}, {'c': 4}, {'a', 'c'})] PASSED tests/validators/test_model_fields.py::test_config[{'extra_fields_behavior': 'allow'}-{'a': '123', b'c': 4}-Err('Keys should be strings [type=invalid_key,')] PASSED tests/validators/test_model_fields.py::test_config[{'strict': True}-Map(a=123)-Err('Input should be a valid dictionary or instance of Model [type=model_type,')] PASSED tests/validators/test_model_fields.py::test_config[{}-{'a': '123', 'b': '4.7'}-({'a': 123, 'b': 4.7}, None, {'a', 'b'})] PASSED tests/validators/test_model_fields.py::test_config[{}-{'a': '123', 'b': 'nan'}-({'a': 123, 'b': FunctionCheck(isnan)}, None, {'a', 'b'})] PASSED tests/validators/test_model_fields.py::test_config[{'allow_inf_nan': False}-{'a': '123', 'b': 'nan'}-Err('Input should be a finite number [type=finite_number,')] PASSED tests/validators/test_model_fields.py::test_ignore_extra PASSED tests/validators/test_model_fields.py::test_forbid_extra PASSED tests/validators/test_model_fields.py::test_allow_extra_invalid PASSED tests/validators/test_model_fields.py::test_allow_extra_wrong PASSED tests/validators/test_model_fields.py::test_str_config PASSED tests/validators/test_model_fields.py::test_validate_assignment PASSED tests/validators/test_model_fields.py::test_validate_assignment_strict_field PASSED tests/validators/test_model_fields.py::test_validate_assignment_functions PASSED tests/validators/test_model_fields.py::test_validate_assignment_ignore_extra PASSED tests/validators/test_model_fields.py::test_validate_assignment_allow_extra PASSED tests/validators/test_model_fields.py::test_validate_assignment_allow_extra_validate PASSED tests/validators/test_model_fields.py::test_validate_assignment_with_strict PASSED tests/validators/test_model_fields.py::test_json_error PASSED tests/validators/test_model_fields.py::test_missing_schema_key PASSED tests/validators/test_model_fields.py::test_fields_required_by_default PASSED tests/validators/test_model_fields.py::test_fields_required_by_default_with_default PASSED tests/validators/test_model_fields.py::test_alias[python] PASSED tests/validators/test_model_fields.py::test_alias[json] PASSED tests/validators/test_model_fields.py::test_empty_string_field_name[python] PASSED tests/validators/test_model_fields.py::test_empty_string_field_name[json] PASSED tests/validators/test_model_fields.py::test_empty_string_aliases[python] PASSED tests/validators/test_model_fields.py::test_empty_string_aliases[json] PASSED tests/validators/test_model_fields.py::test_alias_allow_pop[python] PASSED tests/validators/test_model_fields.py::test_alias_allow_pop[json] PASSED tests/validators/test_model_fields.py::test_alias_path[python-{'foo': {'bar': '123'}}-({'field_a': 123}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_alias_path[python-{'x': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[python-{'foo': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[python-{'foo': [1, 2, 3]}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[python-{'foo': {'bat': '123'}}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[json-{'foo': {'bar': '123'}}-({'field_a': 123}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_alias_path[json-{'x': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[json-{'foo': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[json-{'foo': [1, 2, 3]}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_alias_path[json-{'foo': {'bat': '123'}}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': {'bar': {'bat': '123'}}}-({'field_a': 123}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': [1, 2, 3, 4]}-({'field_a': 4}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': (1, 2, 3, 4)}-({'field_a': 4}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'spam': 5}-({'field_a': 5}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'spam': 1, 'foo': {'bar': {'bat': 2}}}-({'field_a': 2}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': {'x': 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'x': '123'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'x': {2: 33}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': '01234'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[python-{'foo': [1]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': {'bar': {'bat': '123'}}}-({'field_a': 123}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': [1, 2, 3, 4]}-({'field_a': 4}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': (1, 2, 3, 4)}-({'field_a': 4}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'spam': 5}-({'field_a': 5}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'spam': 1, 'foo': {'bar': {'bat': 2}}}-({'field_a': 2}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': {'x': 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'x': '123'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'x': {2: 33}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': '01234'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_multiple[json-{'foo': [1]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': {-2: '123'}}-({'field_a': 123}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': [1, 42, 'xx']}-({'field_a': 42}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': [42]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': {'xx': '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': {'-2': '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': {2: '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': 'foobar'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative[{'foo': {0, 1, 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[python-{'foo': [1, 42, 'xx']}-({'field_a': 42}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[python-{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[python-{'foo': [42]}-Err('foo.-2\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[json-{'foo': [1, 42, 'xx']}-({'field_a': 42}, None, {'field_a'})] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[json-{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_model_fields.py::test_aliases_path_negative_json[json-{'foo': [42]}-Err('foo.-2\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_aliases_debug PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[python-{'foo': {'bar': 42}}] PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[python-{'foo': 42}] PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[python-{'field_a': 42}] PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[json-{'foo': {'bar': 42}}] PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[json-{'foo': 42}] PASSED tests/validators/test_model_fields.py::test_paths_allow_by_name[json-{'field_a': 42}] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': ['foo', ['bar']]}-'Input should be a valid string'] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': []}-'Lookup paths should have at least one element'] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': [[]]}-'Each alias path should have at least one element'] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': [123]}-"TypeError: 'int' object cannot be converted to 'PyList'"] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': [[[]]]}-'Input should be a valid string'] PASSED tests/validators/test_model_fields.py::test_alias_build_error[{'validation_alias': [[1, 'foo']]}-'TypeError: The first item in an alias path should be a string'] PASSED tests/validators/test_model_fields.py::test_alias_error_loc_alias[python] PASSED tests/validators/test_model_fields.py::test_alias_error_loc_alias[json] PASSED tests/validators/test_model_fields.py::test_alias_error_loc_field_names[python] PASSED tests/validators/test_model_fields.py::test_alias_error_loc_field_names[json] PASSED tests/validators/test_model_fields.py::test_empty_model PASSED tests/validators/test_model_fields.py::test_model_fields_deep PASSED tests/validators/test_model_fields.py::test_from_attributes[schema--({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-MyDataclass(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-Cls(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-{'a': 1, 'b': 2, 'c': 'ham'}-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-Map(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-(Cls(a=1, b=2), {'c': 'ham'})-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-(Cls(a=1, b=2), {'c': 'bacon'})-({'a': 1, 'b': 2, 'c': 'bacon'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-(Cls(a=1, b=2, c='ham'), {'c': 'bacon'})-({'a': 1, 'b': 2, 'c': 'bacon'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-(Cls(a=1, b=2, c='ham'), {'d': 'bacon'})-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema--Err('[type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-'123'-Err('Input should be a valid dictionary or object to extract fields from [type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-[(1, 2)]-Err('type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[schema-((1, 2),)-Err('type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation--({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-MyDataclass(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-Cls(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-{'a': 1, 'b': 2, 'c': 'ham'}-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-Map(a=1, b=2, c='ham')-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-(Cls(a=1, b=2), {'c': 'ham'})-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-(Cls(a=1, b=2), {'c': 'bacon'})-({'a': 1, 'b': 2, 'c': 'bacon'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-(Cls(a=1, b=2, c='ham'), {'c': 'bacon'})-({'a': 1, 'b': 2, 'c': 'bacon'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-(Cls(a=1, b=2, c='ham'), {'d': 'bacon'})-({'a': 1, 'b': 2, 'c': 'ham'}, None, {'a', 'b', 'c'})] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation--Err('[type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-'123'-Err('Input should be a valid dictionary or object to extract fields from [type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-[(1, 2)]-Err('type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes[validation-((1, 2),)-Err('type=model_attributes_type,')] PASSED tests/validators/test_model_fields.py::test_from_attributes_type_error PASSED tests/validators/test_model_fields.py::test_from_attributes_by_name PASSED tests/validators/test_model_fields.py::test_from_attributes_override_true PASSED tests/validators/test_model_fields.py::test_from_attributes_override_false PASSED tests/validators/test_model_fields.py::test_from_attributes_missing PASSED tests/validators/test_model_fields.py::test_from_attributes_error PASSED tests/validators/test_model_fields.py::test_from_attributes_extra PASSED tests/validators/test_model_fields.py::test_from_attributes_extra_ignore_no_attributes_accessed PASSED tests/validators/test_model_fields.py::test_from_attributes_extra_forbid PASSED tests/validators/test_model_fields.py::test_from_attributes_function[Cls(a=1)-{'a': 1}] PASSED tests/validators/test_model_fields.py::test_from_attributes_function[Cls(a=)-{'a': }] PASSED tests/validators/test_model_fields.py::test_from_attributes_function[Cls(a= at $(POINTER)>)-{'a': HasRepr(IsStr(regex='.+.+'))}] PASSED tests/validators/test_model_fields.py::test_from_attributes_function[Cls(a=['$(@D)', '$(PROTO_DIR)$(PYTHON_DIR)/vendor-packages', '/usr/lib/python39.zip', '$(PYTHON_DIR)', '$(PYTHON_DIR)/lib-dynload', '$(PYTHON_DIR)/site-packages', '$(PYTHON_DIR)/vendor-packages'])-{'a': ['$(@D)', '$(PROTO_DIR)$(PYTHON_DIR)/vendor-packages', '/usr/lib/python39.zip', '$(PYTHON_DIR)', '$(PYTHON_DIR)/lib-dynload', '$(PYTHON_DIR)/site-packages', '$(PYTHON_DIR)/vendor-packages']}] PASSED tests/validators/test_model_fields.py::test_from_attributes_function[Cls(a=)-{'a': }] PASSED tests/validators/test_model_fields.py::test_from_attributes_error_error PASSED tests/validators/test_model_fields.py::test_from_attributes_path[{'foo': {'bar': {'bat': '123'}}}-{'my_field': 123}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo=Cls(bar=Cls(bat='123')))-{'my_field': 123}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo={'bar': {'bat': '123'}})-{'my_field': 123}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo=[1, 2, 3, 4])-{'my_field': 4}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo=(1, 2, 3, 4))-{'my_field': 4}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(spam=5)-{'my_field': 5}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(spam=1, foo=Cls(bar=Cls(bat=2)))-{'my_field': 2}] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(x='123')-Err('my_field\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(x={2: 33})-Err('my_field\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo='01234')-Err('my_field\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[Cls(foo=[1])-Err('my_field\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_model_fields.py::test_from_attributes_path[-Err('Input should be a valid dictionary')] PASSED tests/validators/test_model_fields.py::test_from_attributes_path_error PASSED tests/validators/test_model_fields.py::test_alias_extra[python] PASSED tests/validators/test_model_fields.py::test_alias_extra[json] PASSED tests/validators/test_model_fields.py::test_alias_extra_from_attributes PASSED tests/validators/test_model_fields.py::test_alias_extra_by_name[python] PASSED tests/validators/test_model_fields.py::test_alias_extra_by_name[json] PASSED tests/validators/test_model_fields.py::test_alias_extra_forbid[python] PASSED tests/validators/test_model_fields.py::test_alias_extra_forbid[json] PASSED tests/validators/test_model_fields.py::test_with_default_factory PASSED tests/validators/test_model_fields.py::test_bad_default_factory[-unsupported operand type(s) for +: 'int' and 'str'] PASSED tests/validators/test_model_fields.py::test_bad_default_factory[-() missing 1 required positional argument: 'x'] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_bad_name PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_bad_default PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_raise_by_default[python] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_raise_by_default[json] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_raise_explicit[python] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_raise_explicit[json] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_default[python] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_default[json] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_default_factory[python] PASSED tests/validators/test_model_fields.py::TestOnError::test_on_error_default_factory[json] PASSED tests/validators/test_model_fields.py::TestOnError::test_wrap_on_error[python] PASSED tests/validators/test_model_fields.py::TestOnError::test_wrap_on_error[json] PASSED tests/validators/test_model_fields.py::test_frozen_field PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=unset-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=unset-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=unset-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=unset-None-schema_extra_behavior_kw3] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=unset-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=None-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=None-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=None-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=None-None-schema_extra_behavior_kw3] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=None-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=int-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=int-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=int-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=int-None-schema_extra_behavior_kw3] PASSED tests/validators/test_model_fields.py::test_extra_behavior_allow[extras_schema=int-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_model_fields.py::test_extra_behavior_forbid[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_model_fields.py::test_extra_behavior_forbid[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_model_fields.py::test_extra_behavior_forbid[config2-schema_extra_behavior_kw2] PASSED tests/validators/test_model_fields.py::test_extra_behavior_forbid[None-schema_extra_behavior_kw3] PASSED tests/validators/test_model_fields.py::test_extra_behavior_forbid[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[None-schema_extra_behavior_kw2] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[config3-schema_extra_behavior_kw3] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[config5-schema_extra_behavior_kw5] PASSED tests/validators/test_model_fields.py::test_extra_behavior_ignore[None-schema_extra_behavior_kw6] PASSED tests/validators/test_model_init.py::test_model_init PASSED tests/validators/test_model_init.py::test_model_init_nested PASSED tests/validators/test_model_init.py::test_function_before PASSED tests/validators/test_model_init.py::test_function_after PASSED tests/validators/test_model_init.py::test_function_wrap PASSED tests/validators/test_model_init.py::test_simple PASSED tests/validators/test_model_init.py::test_model_custom_init PASSED tests/validators/test_model_init.py::test_model_custom_init_nested PASSED tests/validators/test_model_init.py::test_model_custom_init_extra PASSED tests/validators/test_model_init.py::test_model_custom_init_revalidate PASSED tests/validators/test_model_init.py::test_leak_model[None] PASSED tests/validators/test_model_init.py::test_leak_model[field] PASSED tests/validators/test_model_init.py::test_leak_model[model] PASSED tests/validators/test_model_init.py::test_model_custom_init_with_union PASSED tests/validators/test_model_root.py::test_model_root PASSED tests/validators/test_model_root.py::test_revalidate PASSED tests/validators/test_model_root.py::test_revalidate_with_default PASSED tests/validators/test_model_root.py::test_init PASSED tests/validators/test_model_root.py::test_assignment PASSED tests/validators/test_model_root.py::test_field_function PASSED tests/validators/test_model_root.py::test_extra PASSED tests/validators/test_model_root.py::test_fields_set PASSED tests/validators/test_model_root.py::test_construct_from_validate_default PASSED tests/validators/test_none.py::test_python_none PASSED tests/validators/test_none.py::test_json_none PASSED tests/validators/test_nullable.py::test_nullable PASSED tests/validators/test_nullable.py::test_union_nullable_bool_int PASSED tests/validators/test_nullable.py::test_leak_nullable PASSED tests/validators/test_pickling.py::test_basic_schema_validator PASSED tests/validators/test_pickling.py::test_schema_validator_containing_config PASSED tests/validators/test_pickling.py::test_schema_validator_tz_pickle PASSED tests/validators/test_set.py::test_set_ints_both[python-input_value0-expected0] PASSED tests/validators/test_set.py::test_set_ints_both[python-input_value1-expected1] PASSED tests/validators/test_set.py::test_set_ints_both[python-input_value2-expected2] PASSED tests/validators/test_set.py::test_set_ints_both[python-input_value3-expected3] PASSED tests/validators/test_set.py::test_set_ints_both[python-5-expected4] PASSED tests/validators/test_set.py::test_set_ints_both[json-input_value0-expected0] PASSED tests/validators/test_set.py::test_set_ints_both[json-input_value1-expected1] PASSED tests/validators/test_set.py::test_set_ints_both[json-input_value2-expected2] PASSED tests/validators/test_set.py::test_set_ints_both[json-input_value3-expected3] PASSED tests/validators/test_set.py::test_set_ints_both[json-5-expected4] PASSED tests/validators/test_set.py::test_set_no_validators_both[python-input_value0-expected0] PASSED tests/validators/test_set.py::test_set_no_validators_both[json-input_value0-expected0] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[python-input_value0-expected0] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[python-foo-expected1] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[python-1-expected2] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[python-1.0-expected3] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[python-False-expected4] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[json-input_value0-expected0] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[json-foo-expected1] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[json-1-expected2] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[json-1.0-expected3] PASSED tests/validators/test_set.py::test_frozenset_no_validators_both[json-False-expected4] PASSED tests/validators/test_set.py::test_set_ints_python[input_value0-expected0] PASSED tests/validators/test_set.py::test_set_ints_python[input_value1-expected1] PASSED tests/validators/test_set.py::test_set_ints_python[input_value2-expected2] PASSED tests/validators/test_set.py::test_set_ints_python[input_value3-expected3] PASSED tests/validators/test_set.py::test_set_ints_python[input_value4-expected4] PASSED tests/validators/test_set.py::test_set_ints_python[input_value5-expected5] PASSED tests/validators/test_set.py::test_set_ints_python[input_value6-expected6] PASSED tests/validators/test_set.py::test_set_ints_python[input_value7-expected7] PASSED tests/validators/test_set.py::test_set_ints_python[input_value8-expected8] PASSED tests/validators/test_set.py::test_set_ints_python[input_value9-expected9] PASSED tests/validators/test_set.py::test_set_ints_python[input_value10-expected10] PASSED tests/validators/test_set.py::test_set_ints_python[-expected11] PASSED tests/validators/test_set.py::test_set_ints_python[input_value12-expected12] PASSED tests/validators/test_set.py::test_set_ints_python[input_value13-expected13] PASSED tests/validators/test_set.py::test_set_ints_python[abc-expected14] PASSED tests/validators/test_set.py::test_set_no_validators_python[input_value0-expected0] PASSED tests/validators/test_set.py::test_set_no_validators_python[input_value1-expected1] PASSED tests/validators/test_set.py::test_set_multiple_errors PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-{1, 2, 3}-{1, 2, 3}] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-set()-set()] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-[1, 2, 3, 2, 3]-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-[]-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-()-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-(1, 2, 3)-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-frozenset({1, 2, 3})-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'strict': True}-'abc'-Err('Input should be a valid set [type=set_type,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'min_length': 3}-{1, 2, 3}-{1, 2, 3}] PASSED tests/validators/test_set.py::test_set_kwargs[{'min_length': 3}-{1, 2}-Err('Set should have at least 3 items after validation, not 2 [type=too_short,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3}-{1, 2, 3, 4}-Err('Set should have at most 3 items after validation, not more [type=too_long,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3}-[1, 2, 3, 4]-Err('Set should have at most 3 items after validation, not more [type=too_long,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3, 'items_schema': {'type': 'int'}}-{1, 2, 3, 4}-Err('type=too_long,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3, 'items_schema': {'type': 'int'}}-[1, 2, 3, 4]-Err('type=too_long,')] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3}-[1, 1, 2, 2, 3, 3]-{1, 2, 3}] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3}--{1, 2, 3}] PASSED tests/validators/test_set.py::test_set_kwargs[{'max_length': 3}--Err('Set should have at most 3 items after validation, not more [type=too_long,')] PASSED tests/validators/test_set.py::test_union_set_list[input_value0-expected0] PASSED tests/validators/test_set.py::test_union_set_list[input_value1-expected1] PASSED tests/validators/test_set.py::test_union_set_int_set_str[input_value0-expected0] PASSED tests/validators/test_set.py::test_union_set_int_set_str[input_value1-expected1] PASSED tests/validators/test_set.py::test_union_set_int_set_str[input_value2-expected2] PASSED tests/validators/test_set.py::test_set_as_dict_keys[python] PASSED tests/validators/test_set.py::test_set_as_dict_keys[json] PASSED tests/validators/test_set.py::test_generator_error PASSED tests/validators/test_set.py::test_set_from_dict_items[Tuple[Any, Any]] PASSED tests/validators/test_set.py::test_set_from_dict_items[Tuple[int, int]] PASSED tests/validators/test_set.py::test_set_from_dict_items[Any] PASSED tests/validators/test_set.py::test_set_any[input_value0-expected0] PASSED tests/validators/test_set.py::test_set_any[input_value1-expected1] PASSED tests/validators/test_set.py::test_set_any[input_value2-expected2] PASSED tests/validators/test_set.py::test_set_any[input_value3-expected3] PASSED tests/validators/test_set.py::test_set_any[input_value4-expected4] PASSED tests/validators/test_set.py::test_set_fail_fast[fail_fast] PASSED tests/validators/test_set.py::test_set_fail_fast[not_fail_fast] PASSED tests/validators/test_string.py::test_str[python-foobar-foobar] PASSED tests/validators/test_string.py::test_str[python-123-expected1] PASSED tests/validators/test_string.py::test_str[python-123.456-expected2] PASSED tests/validators/test_string.py::test_str[python-False-expected3] PASSED tests/validators/test_string.py::test_str[python-True-expected4] PASSED tests/validators/test_string.py::test_str[python-input_value5-expected5] PASSED tests/validators/test_string.py::test_str[json-foobar-foobar] PASSED tests/validators/test_string.py::test_str[json-123-expected1] PASSED tests/validators/test_string.py::test_str[json-123.456-expected2] PASSED tests/validators/test_string.py::test_str[json-False-expected3] PASSED tests/validators/test_string.py::test_str[json-True-expected4] PASSED tests/validators/test_string.py::test_str[json-input_value5-expected5] PASSED tests/validators/test_string.py::test_str_not_json[foobar-foobar0] PASSED tests/validators/test_string.py::test_str_not_json[\U0001f408 Hello \ud800World-\U0001f408 Hello \ud800World] PASSED tests/validators/test_string.py::test_str_not_json[foobar-foobar1] PASSED tests/validators/test_string.py::test_str_not_json[input_value3-foobar] PASSED tests/validators/test_string.py::test_str_not_json[\x81-expected4] PASSED tests/validators/test_string.py::test_str_not_json[input_value5-expected5] PASSED tests/validators/test_string.py::test_str_not_json[\x00-\x00] PASSED tests/validators/test_string.py::test_str_not_json[123-expected7] PASSED tests/validators/test_string.py::test_str_not_json[input_value8-expected8] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs0-abc-abc] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs1-Foobar-Foobar] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs2-fooBar-FOOBAR] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs3-fooBar-foobar] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs4- foobar -foobar] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs5- fooBar-FOOBAR] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs6-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs7-1234-expected7] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs8-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs9-123456-expected9] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs10-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs11-foobar 123-foobar 123] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs12-12345a-expected12] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs13-Abc-Abc] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs14-Abc-Abc] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs15-1234 -1234] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs16-abc-ABC] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs17-foobar 123 -foobar 123] PASSED tests/validators/test_string.py::test_constrained_str[python-kwargs18-\U0001f408 Hello-\U0001f408 Hello] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs0-abc-abc] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs1-Foobar-Foobar] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs2-fooBar-FOOBAR] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs3-fooBar-foobar] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs4- foobar -foobar] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs5- fooBar-FOOBAR] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs6-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs7-1234-expected7] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs8-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs9-123456-expected9] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs10-12345-12345] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs11-foobar 123-foobar 123] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs12-12345a-expected12] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs13-Abc-Abc] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs14-Abc-Abc] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs15-1234 -1234] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs16-abc-ABC] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs17-foobar 123 -foobar 123] PASSED tests/validators/test_string.py::test_constrained_str[json-kwargs18-\U0001f408 Hello-\U0001f408 Hello] PASSED tests/validators/test_string.py::test_constrained_str_py_only[kwargs0-abc-abc] PASSED tests/validators/test_string.py::test_constrained_str_py_only[kwargs1-Foobar-Foobar] PASSED tests/validators/test_string.py::test_constrained_str_py_only[kwargs2-123-expected2] PASSED tests/validators/test_string.py::test_unicode_error PASSED tests/validators/test_string.py::test_str_constrained[short string] PASSED tests/validators/test_string.py::test_str_constrained[long string] PASSED tests/validators/test_string.py::test_str_constrained[short string with unicode characters] PASSED tests/validators/test_string.py::test_str_constrained[long string with unicode characters] PASSED tests/validators/test_string.py::test_str_constrained[a lot of `\u0430`s] PASSED tests/validators/test_string.py::test_str_constrained_config PASSED tests/validators/test_string.py::test_invalid_regex[None] PASSED tests/validators/test_string.py::test_invalid_regex[rust-regex] PASSED tests/validators/test_string.py::test_invalid_regex[python-re] PASSED tests/validators/test_string.py::test_regex_error[None] PASSED tests/validators/test_string.py::test_regex_error[rust-regex] PASSED tests/validators/test_string.py::test_regex_error[python-re] PASSED tests/validators/test_string.py::test_default_validator PASSED tests/validators/test_string.py::test_strict_subclass[False] PASSED tests/validators/test_string.py::test_strict_subclass[True] PASSED tests/validators/test_string.py::test_lax_subclass[{}] PASSED tests/validators/test_string.py::test_lax_subclass[{'to_lower': True}] PASSED tests/validators/test_string.py::test_lax_subclass_plain_enum[{}] PASSED tests/validators/test_string.py::test_lax_subclass_plain_enum[{'to_lower': True}] PASSED tests/validators/test_string.py::test_subclass_preserved PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_with_invalid_unicode_character[True] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_with_invalid_unicode_character[False] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_disabled_in_strict_mode PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_raises_for_bool PASSED tests/validators/test_string.py::test_coerce_numbers_to_str[42] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str[42.0] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str[Decimal('42.0')] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_from_json[42] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_from_json[42.0] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_from_json[42.13] PASSED tests/validators/test_string.py::test_backtracking_regex_rust_unsupported[None] PASSED tests/validators/test_string.py::test_backtracking_regex_rust_unsupported[schema] PASSED tests/validators/test_string.py::test_backtracking_regex_rust_unsupported[config] PASSED tests/validators/test_string.py::test_backtracking_regex_python[schema] PASSED tests/validators/test_string.py::test_backtracking_regex_python[config] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema[42] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema[443] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema[10242] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_precedence[42] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_precedence[443] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_precedence[10242] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_with_strict_mode[42] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_with_strict_mode[443] PASSED tests/validators/test_string.py::test_coerce_numbers_to_str_schema_with_strict_mode[10242] PASSED tests/validators/test_string.py::test_compiled_regex[None] PASSED tests/validators/test_string.py::test_compiled_regex[rust-regex] PASSED tests/validators/test_string.py::test_compiled_regex[python-re] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{'foo': 'apple', 'bar': '123'}-{'foo': 'apple', 'bar': 123}] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{'foo': 'banana', 'spam': [1, 2, '3']}-{'foo': 'banana', 'spam': [1, 2, 3]}] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{'foo': 'apple', 'bar': 'wrong'}-Err('Input should be a valid integer', errors=[{'type': 'int_parsing', 'loc': ('apple', 'bar'), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'wrong'}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{'foo': 'banana'}-Err('Field required', errors=[{'type': 'missing', 'loc': ('banana', 'spam'), 'msg': 'Field required', 'input': {'foo': 'banana'}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{'foo': 'other'}-Err('union_tag_invalid', errors=[{'type': 'union_tag_invalid', 'loc': (), 'msg': "Input tag 'other' found using 'foo' does not match any of the expected tags: 'apple', 'banana'", 'input': {'foo': 'other'}, 'ctx': {'discriminator': "'foo'", 'tag': 'other', 'expected_tags': "'apple', 'banana'"}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-{}-Err('union_tag_not_found', errors=[{'type': 'union_tag_not_found', 'loc': (), 'msg': "Unable to extract tag using discriminator 'foo'", 'input': {}, 'ctx': {'discriminator': "'foo'"}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[python-'not a dict'-Err('dict_type', errors=[{'type': 'dict_type', 'loc': (), 'msg': IsAnyStr(regex='Input should be (a valid dictionary|an object)'), 'input': 'not a dict'}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{'foo': 'apple', 'bar': '123'}-{'foo': 'apple', 'bar': 123}] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{'foo': 'banana', 'spam': [1, 2, '3']}-{'foo': 'banana', 'spam': [1, 2, 3]}] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{'foo': 'apple', 'bar': 'wrong'}-Err('Input should be a valid integer', errors=[{'type': 'int_parsing', 'loc': ('apple', 'bar'), 'msg': 'Input should be a valid integer, unable to parse string as an integer', 'input': 'wrong'}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{'foo': 'banana'}-Err('Field required', errors=[{'type': 'missing', 'loc': ('banana', 'spam'), 'msg': 'Field required', 'input': {'foo': 'banana'}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{'foo': 'other'}-Err('union_tag_invalid', errors=[{'type': 'union_tag_invalid', 'loc': (), 'msg': "Input tag 'other' found using 'foo' does not match any of the expected tags: 'apple', 'banana'", 'input': {'foo': 'other'}, 'ctx': {'discriminator': "'foo'", 'tag': 'other', 'expected_tags': "'apple', 'banana'"}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-{}-Err('union_tag_not_found', errors=[{'type': 'union_tag_not_found', 'loc': (), 'msg': "Unable to extract tag using discriminator 'foo'", 'input': {}, 'ctx': {'discriminator': "'foo'"}}])] PASSED tests/validators/test_tagged_union.py::test_simple_tagged_union[json-'not a dict'-Err('dict_type', errors=[{'type': 'dict_type', 'loc': (), 'msg': IsAnyStr(regex='Input should be (a valid dictionary|an object)'), 'input': 'not a dict'}])] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[python-input_value0-expected0] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[python-input_value1-expected1] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[python-input_value2-expected2] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[python-input_value3-expected3] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[json-input_value0-expected0] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[json-input_value1-expected1] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[json-input_value2-expected2] PASSED tests/validators/test_tagged_union.py::test_int_choice_keys[json-input_value3-expected3] PASSED tests/validators/test_tagged_union.py::test_enum_keys PASSED tests/validators/test_tagged_union.py::test_discriminator_path[python] PASSED tests/validators/test_tagged_union.py::test_discriminator_path[json] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[python-foo-foo] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[python-123-123] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[python-baz-expected2] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[python-None-expected3] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[python-input_value4-expected4] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[json-foo-foo] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[json-123-123] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[json-baz-expected2] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[json-None-expected3] PASSED tests/validators/test_tagged_union.py::test_discriminator_function[json-input_value4-expected4] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[python-foo-foo] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[python-123-123] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[python-None-expected2] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[python-input_value3-expected3] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[json-foo-foo] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[json-123-123] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[json-None-expected2] PASSED tests/validators/test_tagged_union.py::test_int_discriminator_function[json-input_value3-expected3] PASSED tests/validators/test_tagged_union.py::test_from_attributes PASSED tests/validators/test_tagged_union.py::test_use_ref PASSED tests/validators/test_tagged_union.py::test_downcast_error PASSED tests/validators/test_tagged_union.py::test_custom_error PASSED tests/validators/test_tagged_union.py::test_custom_error_type PASSED tests/validators/test_time.py::test_time[time] PASSED tests/validators/test_time.py::test_time[time-micro] PASSED tests/validators/test_time.py::test_time[time-tz] PASSED tests/validators/test_time.py::test_time[str] PASSED tests/validators/test_time.py::test_time[str-tz] PASSED tests/validators/test_time.py::test_time[bytes] PASSED tests/validators/test_time.py::test_time[tuple] PASSED tests/validators/test_time.py::test_time[date] PASSED tests/validators/test_time.py::test_time[datetime] PASSED tests/validators/test_time.py::test_time[int] PASSED tests/validators/test_time.py::test_time[nan] PASSED tests/validators/test_time.py::test_time[inf] PASSED tests/validators/test_time.py::test_time[-inf] PASSED tests/validators/test_time.py::test_time[decimal] PASSED tests/validators/test_time.py::test_time[decimal-6dig] PASSED tests/validators/test_time.py::test_time[decimal-7dig-up] PASSED tests/validators/test_time.py::test_time[decimal-7dig-down] PASSED tests/validators/test_time.py::test_time_json[python-str] PASSED tests/validators/test_time.py::test_time_json[python-str-micro] PASSED tests/validators/test_time.py::test_time_json[python-str-micro-6dig0] PASSED tests/validators/test_time.py::test_time_json[python-str-micro-6dig1] PASSED tests/validators/test_time.py::test_time_json[python-str-micro-7dig] PASSED tests/validators/test_time.py::test_time_json[python-int] PASSED tests/validators/test_time.py::test_time_json[python-float] PASSED tests/validators/test_time.py::test_time_json[python-float.0] PASSED tests/validators/test_time.py::test_time_json[python-int-zero] PASSED tests/validators/test_time.py::test_time_json[python-too-high] PASSED tests/validators/test_time.py::test_time_json[python-negative] PASSED tests/validators/test_time.py::test_time_json[python-too-high-2**32] PASSED tests/validators/test_time.py::test_time_json[python-too-high-2**64] PASSED tests/validators/test_time.py::test_time_json[python-too-high-2**100] PASSED tests/validators/test_time.py::test_time_json[python-bool] PASSED tests/validators/test_time.py::test_time_json[json-str] PASSED tests/validators/test_time.py::test_time_json[json-str-micro] PASSED tests/validators/test_time.py::test_time_json[json-str-micro-6dig0] PASSED tests/validators/test_time.py::test_time_json[json-str-micro-6dig1] PASSED tests/validators/test_time.py::test_time_json[json-str-micro-7dig] PASSED tests/validators/test_time.py::test_time_json[json-int] PASSED tests/validators/test_time.py::test_time_json[json-float] PASSED tests/validators/test_time.py::test_time_json[json-float.0] PASSED tests/validators/test_time.py::test_time_json[json-int-zero] PASSED tests/validators/test_time.py::test_time_json[json-too-high] PASSED tests/validators/test_time.py::test_time_json[json-negative] PASSED tests/validators/test_time.py::test_time_json[json-too-high-2**32] PASSED tests/validators/test_time.py::test_time_json[json-too-high-2**64] PASSED tests/validators/test_time.py::test_time_json[json-too-high-2**100] PASSED tests/validators/test_time.py::test_time_json[json-bool] PASSED tests/validators/test_time.py::test_time_error_microseconds_overflow[python] PASSED tests/validators/test_time.py::test_time_error_microseconds_overflow[json] PASSED tests/validators/test_time.py::test_time_strict[input_value0-expected0] PASSED tests/validators/test_time.py::test_time_strict[12:13:14-expected1] PASSED tests/validators/test_time.py::test_time_strict[12:13:14-expected2] PASSED tests/validators/test_time.py::test_time_strict[1654646400-expected3] PASSED tests/validators/test_time.py::test_time_strict[True-expected4] PASSED tests/validators/test_time.py::test_time_strict[input_value5-expected5] PASSED tests/validators/test_time.py::test_time_strict[input_value6-expected6] PASSED tests/validators/test_time.py::test_time_strict_json["12:13:14"-expected0] PASSED tests/validators/test_time.py::test_time_strict_json["foobar"-expected1] PASSED tests/validators/test_time.py::test_time_strict_json[123-expected2] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs0-12:13:14-expected0] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs1-00:12-expected1] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs2-01:00-expected2] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs3-01:01-expected3] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs4-input_value4-expected4] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs5-input_value5-expected5] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs6-00:59-expected6] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs7-01:00-expected7] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs8-01:00-expected8] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs9-00:59-expected9] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs10-12:13:14.123457-expected10] PASSED tests/validators/test_time.py::test_time_kwargs[kwargs11-12:13:14.123456-expected11] PASSED tests/validators/test_time.py::test_time_bound_ctx PASSED tests/validators/test_time.py::test_invalid_constraint PASSED tests/validators/test_time.py::test_dict_py PASSED tests/validators/test_time.py::test_dict[python] PASSED tests/validators/test_time.py::test_dict[json] PASSED tests/validators/test_time.py::test_union PASSED tests/validators/test_time.py::test_aware PASSED tests/validators/test_time.py::test_naive PASSED tests/validators/test_time.py::test_aware_specific PASSED tests/validators/test_time.py::test_neg_7200 PASSED tests/validators/test_time.py::test_tz_constraint_too_high PASSED tests/validators/test_time.py::test_tz_constraint_wrong PASSED tests/validators/test_timedelta.py::test_timedelta[datetime.timedelta(days=-3, seconds=7201, microseconds=500000)-datetime.timedelta(days=-3, seconds=7201, microseconds=500000)] PASSED tests/validators/test_timedelta.py::test_timedelta[datetime.timedelta(days=17, seconds=3723, microseconds=500000)-datetime.timedelta(days=17, seconds=3723, microseconds=500000)] PASSED tests/validators/test_timedelta.py::test_timedelta['P0Y0M3D2WT1H2M3.5S'-datetime.timedelta(days=17, seconds=3723, microseconds=500000)] PASSED tests/validators/test_timedelta.py::test_timedelta[b'P0Y0M3D2WT1H2M3.5S'-datetime.timedelta(days=17, seconds=3723, microseconds=500000)] PASSED tests/validators/test_timedelta.py::test_timedelta[(-1,)-Err('Input should be a valid timedelta [type=time_delta_type')] PASSED tests/validators/test_timedelta.py::test_timedelta[b'-1'-Err('Input should be a valid timedelta, "day" identifier in duration not correctly formatted [type=time_delta_parsing')] PASSED tests/validators/test_timedelta.py::test_timedelta[3601-datetime.timedelta(seconds=3601)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('3601.123456')-datetime.timedelta(seconds=3601, microseconds=123456)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('3601.1234562')-datetime.timedelta(seconds=3601, microseconds=123456)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('3601.1234568')-datetime.timedelta(seconds=3601, microseconds=123457)] PASSED tests/validators/test_timedelta.py::test_timedelta[-3601-datetime.timedelta(days=-1, seconds=82799)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('-3601.222222')-datetime.timedelta(days=-1, seconds=82798, microseconds=777778)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('-3601.2222222')-datetime.timedelta(days=-1, seconds=82798, microseconds=777778)] PASSED tests/validators/test_timedelta.py::test_timedelta[Decimal('-3601.2222227')-datetime.timedelta(days=-1, seconds=82798, microseconds=777777)] PASSED tests/validators/test_timedelta.py::test_timedelta[nan-Err('Input should be a valid timedelta, NaN values not permitted')] PASSED tests/validators/test_timedelta.py::test_timedelta[inf-Err('Input should be a valid timedelta, durations may not exceed 999,999,999 days')] PASSED tests/validators/test_timedelta.py::test_timedelta[-inf-Err('Input should be a valid timedelta, durations may not exceed 999,999,999 days')] PASSED tests/validators/test_timedelta.py::test_timedelta[datetime.timedelta(days=999999999, seconds=86399, microseconds=999999)-datetime.timedelta(days=999999999, seconds=86399, microseconds=999999)] PASSED tests/validators/test_timedelta.py::test_timedelta['02:03:04.05'-datetime.timedelta(seconds=7384, microseconds=50000)] PASSED tests/validators/test_timedelta.py::test_timedelta['02:03:04.05broken'-Err('Input should be a valid timedelta, unexpected extra characters at the end of the input')] PASSED tests/validators/test_timedelta.py::test_timedelta_json['"P0Y0M3D2WT1H2M3.5S"'-datetime.timedelta(days=17, seconds=3723, microseconds=500000)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['"errordata"'-Err('Input should be a valid duration, invalid digit in duration [type=time_delta_parsing')] PASSED tests/validators/test_timedelta.py::test_timedelta_json['true'-Err('Input should be a valid duration [type=time_delta_type')] PASSED tests/validators/test_timedelta.py::test_timedelta_json['3601'-datetime.timedelta(seconds=3601)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['3601.123456'-datetime.timedelta(seconds=3601, microseconds=123456)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['-3601'-datetime.timedelta(days=-1, seconds=82799)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['-3601.222222'-datetime.timedelta(days=-1, seconds=82798, microseconds=777778)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['-3601.2222222'-datetime.timedelta(days=-1, seconds=82798, microseconds=777778)] PASSED tests/validators/test_timedelta.py::test_timedelta_json['3600.999999'-datetime.timedelta(seconds=3600, microseconds=999999)] PASSED tests/validators/test_timedelta.py::test_timedelta_strict[input_value0-expected0] PASSED tests/validators/test_timedelta.py::test_timedelta_strict[P0Y0M3D2WT1H2M3.5S-expected1] PASSED tests/validators/test_timedelta.py::test_timedelta_strict[P0Y0M3D2WT1H2M3.5S-expected2] PASSED tests/validators/test_timedelta.py::test_timedelta_strict_json["P0Y0M3D2WT1H2M3.5S"-expected0] PASSED tests/validators/test_timedelta.py::test_timedelta_strict_json["12345"-expected1] PASSED tests/validators/test_timedelta.py::test_timedelta_strict_json[true-expected2] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{}-'P0Y0M3D2WT1H2M3S'-datetime.timedelta(days=17, seconds=3723)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=3)}-'P2DT1H'-datetime.timedelta(days=2, seconds=3600)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=3)}-'P3DT0H'-datetime.timedelta(days=3)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=3)}-'P3DT1H'-Err('Input should be less than or equal to 3 days')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'lt': datetime.timedelta(days=3)}-'P2DT1H'-datetime.timedelta(days=2, seconds=3600)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'lt': datetime.timedelta(days=3)}-'P3DT1H'-Err('Input should be less than 3 days')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'ge': datetime.timedelta(days=3)}-'P3DT1H'-datetime.timedelta(days=3, seconds=3600)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'ge': datetime.timedelta(days=3)}-'P3D'-datetime.timedelta(days=3)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'ge': datetime.timedelta(days=3)}-'P2DT1H'-Err('Input should be greater than or equal to 3 days')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(days=3)}-'P3DT1H'-datetime.timedelta(days=3, seconds=3600)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-'-PT86400.123S'-datetime.timedelta(days=-2, seconds=86399, microseconds=877000)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-'-PT86400.124S'-datetime.timedelta(days=-2, seconds=86399, microseconds=876000)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'le': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-'-PT86400.122S'-Err('Input should be less than or equal to -2 days and 23 hours and 59 minutes and 59 seconds and 877000 microseconds [type=less_than_equal')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-datetime.timedelta(days=-2, seconds=86399, microseconds=878000)-datetime.timedelta(days=-2, seconds=86399, microseconds=878000)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-'-PT86400.122S'-datetime.timedelta(days=-2, seconds=86399, microseconds=878000)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(days=-2, seconds=86399, microseconds=877000)}-'-PT86400.124S'-Err('Input should be greater than -2 days and 23 hours and 59 minutes and 59 seconds and 877000 microseconds [type=greater_than')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(seconds=5400)}-'PT180S'-Err('Input should be greater than 1 hour and 30 minutes [type=greater_than')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(0)}-'-P0DT0.1S'-Err('Input should be greater than 0 seconds [type=greater_than')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'gt': datetime.timedelta(0)}-'P0DT0.0S'-Err('Input should be greater than 0 seconds [type=greater_than')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'ge': datetime.timedelta(0)}-'P0DT0.0S'-datetime.timedelta(0)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'lt': datetime.timedelta(0)}-'-PT0S'-datetime.timedelta(0)] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs[{'lt': datetime.timedelta(days=749, seconds=3661, microseconds=100000)}-'P2Y1W10DT48H60M61.100000S'-Err('Input should be less than 749 days and 1 hour and 1 minute and 1 second and 100000 microseconds')] PASSED tests/validators/test_timedelta.py::test_timedelta_kwargs_strict PASSED tests/validators/test_timedelta.py::test_invalid_constraint PASSED tests/validators/test_timedelta.py::test_dict_py PASSED tests/validators/test_timedelta.py::test_dict_key[python] PASSED tests/validators/test_timedelta.py::test_dict_key[json] PASSED tests/validators/test_timedelta.py::test_dict_value[python] PASSED tests/validators/test_timedelta.py::test_dict_value[json] PASSED tests/validators/test_timedelta.py::test_union PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=3)-{'positive': True, 'day': 3, 'second': 0, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=2, seconds=42, microseconds=123000)-{'positive': True, 'day': 2, 'second': 42, 'microsecond': 123000}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-1)-{'positive': False, 'day': 1, 'second': 0, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=1, seconds=10)-{'positive': True, 'day': 1, 'second': 10, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=1, seconds=10, microseconds=123000)-{'positive': True, 'day': 1, 'second': 10, 'microsecond': 123000}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-2, seconds=86390)-{'positive': False, 'day': 1, 'second': 10, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-2, seconds=86389, microseconds=877000)-{'positive': False, 'day': 1, 'second': 10, 'microsecond': 123000}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-4, seconds=43200)-{'positive': False, 'day': 3, 'second': 43200, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-4, microseconds=456)-{'positive': False, 'day': 3, 'second': 86399, 'microsecond': 999544}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-1, seconds=20000)-{'positive': False, 'day': 0, 'second': 66400, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-1, seconds=86399, microseconds=1)-{'positive': False, 'day': 0, 'second': 0, 'microsecond': 999999}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=999999999, seconds=86399, microseconds=999999)-{'positive': True, 'day': 999999999, 'second': 86399, 'microsecond': 999999}] PASSED tests/validators/test_timedelta.py::test_pytimedelta_as_timedelta[datetime.timedelta(days=-999999999)-{'positive': False, 'day': 999999999, 'second': 0, 'microsecond': 0}] PASSED tests/validators/test_timedelta.py::test_large_value PASSED tests/validators/test_timedelta.py::test_pandas SKIPPED (pandas not ...) tests/validators/test_tuple.py::test_tuple_json[python-0-[{'type': 'int'}]-[1, 2, 3]-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_tuple_json[python-0-[{'type': 'int'}]-1-Err('[type=tuple_type, input_value=1, input_type=int]')] PASSED tests/validators/test_tuple.py::test_tuple_json[python-None-[{'type': 'int'}, {'type': 'int'}, {'type': 'int'}]-[1, 2, '3']-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_tuple_json[python-None-[{'type': 'int'}, {'type': 'int'}, {'type': 'int'}]-5-Err('[type=tuple_type, input_value=5, input_type=int]')] PASSED tests/validators/test_tuple.py::test_tuple_json[json-0-[{'type': 'int'}]-[1, 2, 3]-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_tuple_json[json-0-[{'type': 'int'}]-1-Err('[type=tuple_type, input_value=1, input_type=int]')] PASSED tests/validators/test_tuple.py::test_tuple_json[json-None-[{'type': 'int'}, {'type': 'int'}, {'type': 'int'}]-[1, 2, '3']-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_tuple_json[json-None-[{'type': 'int'}, {'type': 'int'}, {'type': 'int'}]-5-Err('[type=tuple_type, input_value=5, input_type=int]')] PASSED tests/validators/test_tuple.py::test_any_no_copy PASSED tests/validators/test_tuple.py::test_tuple_strict_passes_with_tuple[0-items0-input_value0-expected0] PASSED tests/validators/test_tuple.py::test_tuple_strict_passes_with_tuple[0-items1-input_value1-expected1] PASSED tests/validators/test_tuple.py::test_tuple_strict_passes_with_tuple[None-items2-input_value2-expected2] PASSED tests/validators/test_tuple.py::test_empty_positional_tuple[True] PASSED tests/validators/test_tuple.py::test_empty_positional_tuple[False] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[list-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[list-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[set-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[set-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[frozenset-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_strict_fails_without_tuple[frozenset-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{}-(1, 2, 3, 4)-(1, 2, 3, 4)] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'min_length': 3}-(1, 2, 3, 4)-(1, 2, 3, 4)] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'min_length': 3}-(1, 2)-Err('Tuple should have at least 3 items after validation, not 2 [type=too_short,')] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'max_length': 4}-(1, 2, 3, 4)-(1, 2, 3, 4)] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'max_length': 3}-(1, 2, 3, 4)-Err('Tuple should have at most 3 items after validation, not 4 [type=too_long,')] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'max_length': 3}-[1, 2, 3, 4, 5]-Err('Tuple should have at most 3 items after validation, not 5 [type=too_long,')] PASSED tests/validators/test_tuple.py::test_tuple_var_len_kwargs[{'max_length': 3}--Err('Tuple should have at most 3 items after validation, not more [type=too_long,')] PASSED tests/validators/test_tuple.py::test_tuple_validate[(1, 2, '3')-(1, 2, 3)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[(1, 2, '3')-(1, 2, 3)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[[1, 2, '3']-(1, 2, 3)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[[1, 2, '3']-(1, 2, 3)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[deque([1, 2, '3'])-(1, 2, 3)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[deque([1, 2, '3'])-(1, 2, 3)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[dict_keys([1, 2, '3'])-(1, 2, 3)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[dict_keys([1, 2, '3'])-(1, 2, 3)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[dict_values([10, 20, '30'])-(10, 20, 30)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[dict_values([10, 20, '30'])-(10, 20, 30)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[{1: 10, 2: 20, '3': '30'}-Err('Input should be a valid tuple [type=tuple_type,')-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[{1: 10, 2: 20, '3': '30'}-Err('Input should be a valid tuple [type=tuple_type,')-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[{1, 2, '3'}-IsTuple(1, 2, 3, check_order=False)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[{1, 2, '3'}-IsTuple(1, 2, 3, check_order=False)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate[frozenset({1, 2, '3'})-IsTuple(1, 2, 3, check_order=False)-0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate[frozenset({1, 2, '3'})-IsTuple(1, 2, 3, check_order=False)-None-items1] PASSED tests/validators/test_tuple.py::test_tuple_validate_iterator[0-items0] PASSED tests/validators/test_tuple.py::test_tuple_validate_iterator[None-items1] PASSED tests/validators/test_tuple.py::test_tuple_var_len_errors[input_value0-0] PASSED tests/validators/test_tuple.py::test_tuple_var_len_errors[input_value1-0] PASSED tests/validators/test_tuple.py::test_tuple_var_len_errors[input_value2-3] PASSED tests/validators/test_tuple.py::test_tuple_var_len_errors[input_value3-3] PASSED tests/validators/test_tuple.py::test_tuple_var_len_errors[input_value4-index4] PASSED tests/validators/test_tuple.py::test_tuple_fix_len_errors[input_value0-items0-0] PASSED tests/validators/test_tuple.py::test_tuple_fix_len_errors[input_value1-items1-0] PASSED tests/validators/test_tuple.py::test_tuple_fix_len_errors[input_value2-items2-3] PASSED tests/validators/test_tuple.py::test_tuple_fix_len_errors[input_value3-items3-3] PASSED tests/validators/test_tuple.py::test_tuple_fix_len_errors[input_value4-items4-index4] PASSED tests/validators/test_tuple.py::test_multiple_missing[python] PASSED tests/validators/test_tuple.py::test_multiple_missing[json] PASSED tests/validators/test_tuple.py::test_extra_arguments[python] PASSED tests/validators/test_tuple.py::test_extra_arguments[json] PASSED tests/validators/test_tuple.py::test_positional_empty[python] PASSED tests/validators/test_tuple.py::test_positional_empty[json] PASSED tests/validators/test_tuple.py::test_positional_empty_extra[python] PASSED tests/validators/test_tuple.py::test_positional_empty_extra[json] PASSED tests/validators/test_tuple.py::test_union_tuple_list[input_value0-expected0] PASSED tests/validators/test_tuple.py::test_union_tuple_list[input_value1-expected1] PASSED tests/validators/test_tuple.py::test_union_tuple_var_len[(1, 2, 3)-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_union_tuple_var_len[('a', 'b', 'c')-('a', 'b', 'c')] PASSED tests/validators/test_tuple.py::test_union_tuple_var_len[('a', b'a', 'c')-('a', 'a', 'c')] PASSED tests/validators/test_tuple.py::test_union_tuple_var_len[[5]-Err('2 validation errors for union', errors=[{'type': 'tuple_type', 'loc': ('tuple[int, ...]',), 'msg': 'Input should be a valid tuple', 'input': [5]}, {'type': 'tuple_type', 'loc': ('tuple[str, ...]',), 'msg': 'Input should be a valid tuple', 'input': [5]}])] PASSED tests/validators/test_tuple.py::test_union_tuple_fix_len[(1, 2, 3)-(1, 2, 3)] PASSED tests/validators/test_tuple.py::test_union_tuple_fix_len[('a', 'b', 'c')-('a', 'b', 'c')] PASSED tests/validators/test_tuple.py::test_union_tuple_fix_len[[5, '1', 1]-Err('2 validation errors for union', errors=[{'type': 'tuple_type', 'loc': ('tuple[int, int, int]',), 'msg': 'Input should be a valid tuple', 'input': [5, '1', 1]}, {'type': 'tuple_type', 'loc': ('tuple[str, str, str]',), 'msg': 'Input should be a valid tuple', 'input': [5, '1', 1]}])] PASSED tests/validators/test_tuple.py::test_tuple_fix_error PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value0-expected0] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value1-expected1] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value2-expected2] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value3-expected3] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value4-expected4] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra[input_value5-expected5] PASSED tests/validators/test_tuple.py::test_tuple_fix_extra_any PASSED tests/validators/test_tuple.py::test_generator_error PASSED tests/validators/test_tuple.py::test_frozenset_from_dict_items[Tuple[Any, Any]] PASSED tests/validators/test_tuple.py::test_frozenset_from_dict_items[Tuple[int, int]] PASSED tests/validators/test_tuple.py::test_frozenset_from_dict_items[Any] PASSED tests/validators/test_tuple.py::test_length_constraints_omit[input_value0-expected0] PASSED tests/validators/test_tuple.py::test_length_constraints_omit[input_value1-expected1] PASSED tests/validators/test_tuple.py::test_length_constraints_omit[input_value2-expected2] PASSED tests/validators/test_tuple.py::test_tuple_fail_fast[fail_fast] PASSED tests/validators/test_tuple.py::test_tuple_fail_fast[not_fail_fast] PASSED tests/validators/test_typed_dict.py::test_simple PASSED tests/validators/test_typed_dict.py::test_strict PASSED tests/validators/test_typed_dict.py::test_with_default PASSED tests/validators/test_typed_dict.py::test_missing_error PASSED tests/validators/test_typed_dict.py::test_config[{}-{'a': '123'}-{'a': 123}] PASSED tests/validators/test_typed_dict.py::test_config[{}-Map(a=123)-{'a': 123}] PASSED tests/validators/test_typed_dict.py::test_config[{}-{b'a': '123'}-Err('Field required [type=missing,')] PASSED tests/validators/test_typed_dict.py::test_config[{}-{'a': '123', 'c': 4}-{'a': 123}] PASSED tests/validators/test_typed_dict.py::test_config[{'extra_fields_behavior': 'allow'}-{'a': '123', 'c': 4}-{'a': 123, 'c': 4}] PASSED tests/validators/test_typed_dict.py::test_config[{'extra_fields_behavior': 'allow'}-{'a': '123', b'c': 4}-Err('Keys should be strings [type=invalid_key,')] PASSED tests/validators/test_typed_dict.py::test_config[{'strict': True}-Map(a=123)-Err('Input should be a valid dictionary [type=dict_type,')] PASSED tests/validators/test_typed_dict.py::test_config[{}-{'a': '123', 'b': '4.7'}-{'a': 123, 'b': 4.7}] PASSED tests/validators/test_typed_dict.py::test_config[{}-{'a': '123', 'b': 'nan'}-{'a': 123, 'b': FunctionCheck(isnan)}] PASSED tests/validators/test_typed_dict.py::test_config[{'allow_inf_nan': False}-{'a': '123', 'b': 'nan'}-Err('Input should be a finite number [type=finite_number,')] PASSED tests/validators/test_typed_dict.py::test_ignore_extra PASSED tests/validators/test_typed_dict.py::test_forbid_extra PASSED tests/validators/test_typed_dict.py::test_allow_extra_invalid PASSED tests/validators/test_typed_dict.py::test_allow_extra_wrong PASSED tests/validators/test_typed_dict.py::test_str_config PASSED tests/validators/test_typed_dict.py::test_json_error PASSED tests/validators/test_typed_dict.py::test_missing_schema_key PASSED tests/validators/test_typed_dict.py::test_fields_required_by_default PASSED tests/validators/test_typed_dict.py::test_fields_required_by_default_with_optional PASSED tests/validators/test_typed_dict.py::test_fields_required_by_default_with_default PASSED tests/validators/test_typed_dict.py::test_all_optional_fields PASSED tests/validators/test_typed_dict.py::test_all_optional_fields_with_required_fields PASSED tests/validators/test_typed_dict.py::test_field_required_and_default PASSED tests/validators/test_typed_dict.py::test_alias[python] PASSED tests/validators/test_typed_dict.py::test_alias[json] PASSED tests/validators/test_typed_dict.py::test_empty_string_field_name[python] PASSED tests/validators/test_typed_dict.py::test_empty_string_field_name[json] PASSED tests/validators/test_typed_dict.py::test_empty_string_aliases[python] PASSED tests/validators/test_typed_dict.py::test_empty_string_aliases[json] PASSED tests/validators/test_typed_dict.py::test_alias_allow_pop[python] PASSED tests/validators/test_typed_dict.py::test_alias_allow_pop[json] PASSED tests/validators/test_typed_dict.py::test_alias_path[python-{'foo': {'bar': '123'}}-{'field_a': 123}] PASSED tests/validators/test_typed_dict.py::test_alias_path[python-{'x': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[python-{'foo': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[python-{'foo': [1, 2, 3]}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[python-{'foo': {'bat': '123'}}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[json-{'foo': {'bar': '123'}}-{'field_a': 123}] PASSED tests/validators/test_typed_dict.py::test_alias_path[json-{'x': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[json-{'foo': '123'}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[json-{'foo': [1, 2, 3]}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_alias_path[json-{'foo': {'bat': '123'}}-Err('foo.bar\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': {'bar': {'bat': '123'}}}-{'field_a': 123}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': [1, 2, 3, 4]}-{'field_a': 4}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': (1, 2, 3, 4)}-{'field_a': 4}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'spam': 5}-{'field_a': 5}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'spam': 1, 'foo': {'bar': {'bat': 2}}}-{'field_a': 2}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': {'x': 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'x': '123'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'x': {2: 33}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': '01234'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[python-{'foo': [1]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': {'bar': {'bat': '123'}}}-{'field_a': 123}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': [1, 2, 3, 4]}-{'field_a': 4}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': (1, 2, 3, 4)}-{'field_a': 4}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'spam': 5}-{'field_a': 5}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'spam': 1, 'foo': {'bar': {'bat': 2}}}-{'field_a': 2}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': {'x': 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'x': '123'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'x': {2: 33}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': '01234'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_multiple[json-{'foo': [1]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': {-2: '123'}}-{'field_a': 123}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': [1, 42, 'xx']}-{'field_a': 42}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': [42]}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': {'xx': '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': {'-2': '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': {2: '123'}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': 'foobar'}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative[{'foo': {0, 1, 2}}-Err('field_a\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[python-{'foo': [1, 42, 'xx']}-{'field_a': 42}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[python-{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[python-{'foo': [42]}-Err('foo.-2\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[json-{'foo': [1, 42, 'xx']}-{'field_a': 42}] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[json-{'foo': [42, 'xxx', 42]}-Err('Input should be a valid integer,')] PASSED tests/validators/test_typed_dict.py::test_aliases_path_negative_json[json-{'foo': [42]}-Err('foo.-2\\\\n +Field required \\\\[type=missing,')] PASSED tests/validators/test_typed_dict.py::test_aliases_debug PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[python-{'foo': {'bar': 42}}] PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[python-{'foo': 42}] PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[python-{'field_a': 42}] PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[json-{'foo': {'bar': 42}}] PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[json-{'foo': 42}] PASSED tests/validators/test_typed_dict.py::test_paths_allow_by_name[json-{'field_a': 42}] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': ['foo', ['bar']]}-'Input should be a valid string'] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': []}-'Lookup paths should have at least one element'] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': [[]]}-'Each alias path should have at least one element'] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': [123]}-"TypeError: 'int' object cannot be converted to 'PyList'"] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': [[[]]]}-'Input should be a valid string'] PASSED tests/validators/test_typed_dict.py::test_alias_build_error[{'validation_alias': [[1, 'foo']]}-'TypeError: The first item in an alias path should be a string'] PASSED tests/validators/test_typed_dict.py::test_alias_error_loc_alias[python] PASSED tests/validators/test_typed_dict.py::test_alias_error_loc_alias[json] PASSED tests/validators/test_typed_dict.py::test_alias_error_loc_field_names[python] PASSED tests/validators/test_typed_dict.py::test_alias_error_loc_field_names[json] PASSED tests/validators/test_typed_dict.py::test_empty_model PASSED tests/validators/test_typed_dict.py::test_model_deep PASSED tests/validators/test_typed_dict.py::test_alias_extra[python] PASSED tests/validators/test_typed_dict.py::test_alias_extra[json] PASSED tests/validators/test_typed_dict.py::test_alias_extra_by_name[python] PASSED tests/validators/test_typed_dict.py::test_alias_extra_by_name[json] PASSED tests/validators/test_typed_dict.py::test_alias_extra_forbid[python] PASSED tests/validators/test_typed_dict.py::test_alias_extra_forbid[json] PASSED tests/validators/test_typed_dict.py::test_with_default_factory PASSED tests/validators/test_typed_dict.py::test_field_required_and_default_factory PASSED tests/validators/test_typed_dict.py::test_bad_default_factory[-unsupported operand type(s) for +: 'int' and 'str'] PASSED tests/validators/test_typed_dict.py::test_bad_default_factory[-() missing 1 required positional argument: 'x'] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_bad_name PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_bad_omit PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_bad_default PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_raise_by_default[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_raise_by_default[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_raise_explicit[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_raise_explicit[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_omit[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_omit[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_omit_with_default[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_omit_with_default[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_default[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_default[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_default_factory[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_on_error_default_factory[json] PASSED tests/validators/test_typed_dict.py::TestOnError::test_wrap_on_error[python] PASSED tests/validators/test_typed_dict.py::TestOnError::test_wrap_on_error[json] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=unset-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=unset-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=unset-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=unset-None-schema_extra_behavior_kw3] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=unset-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=None-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=None-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=None-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=None-None-schema_extra_behavior_kw3] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=None-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=int-config0-schema_extra_behavior_kw0] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=int-config1-schema_extra_behavior_kw1] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=int-config2-schema_extra_behavior_kw2] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=int-None-schema_extra_behavior_kw3] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_allow[extras_schema=int-config4-schema_extra_behavior_kw4] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_forbid[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_forbid[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_forbid[config2-schema_extra_behavior_kw2] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_forbid[None-schema_extra_behavior_kw3] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_forbid[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[config0-schema_extra_behavior_kw0] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[config1-schema_extra_behavior_kw1] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[None-schema_extra_behavior_kw2] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[config3-schema_extra_behavior_kw3] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[config4-schema_extra_behavior_kw4] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[config5-schema_extra_behavior_kw5] PASSED tests/validators/test_typed_dict.py::test_extra_behavior_ignore[None-schema_extra_behavior_kw6] PASSED tests/validators/test_typed_dict.py::test_leak_typed_dict PASSED tests/validators/test_union.py::test_union_bool_int[True-True] PASSED tests/validators/test_union.py::test_union_bool_int[False-False] PASSED tests/validators/test_union.py::test_union_bool_int[true-True] PASSED tests/validators/test_union.py::test_union_bool_int[false-False] PASSED tests/validators/test_union.py::test_union_bool_int[1-1] PASSED tests/validators/test_union.py::test_union_bool_int[0-0] PASSED tests/validators/test_union.py::test_union_bool_int[123-123_0] PASSED tests/validators/test_union.py::test_union_bool_int[123-123_1] PASSED tests/validators/test_union.py::test_union_bool_int[0-False] PASSED tests/validators/test_union.py::test_union_bool_int[1-True] PASSED tests/validators/test_union.py::test_union_int_bool[True-True] PASSED tests/validators/test_union.py::test_union_int_bool[False-False] PASSED tests/validators/test_union.py::test_union_int_bool[true-True] PASSED tests/validators/test_union.py::test_union_int_bool[false-False] PASSED tests/validators/test_union.py::test_union_int_bool[1-1_0] PASSED tests/validators/test_union.py::test_union_int_bool[0-0_0] PASSED tests/validators/test_union.py::test_union_int_bool[123-123_0] PASSED tests/validators/test_union.py::test_union_int_bool[123-123_1] PASSED tests/validators/test_union.py::test_union_int_bool[0-0_1] PASSED tests/validators/test_union.py::test_union_int_bool[1-1_1] PASSED tests/validators/test_union.py::TestModelClass::test_model_a PASSED tests/validators/test_union.py::TestModelClass::test_model_b PASSED tests/validators/test_union.py::TestModelClass::test_exact_check PASSED tests/validators/test_union.py::TestModelClass::test_error PASSED tests/validators/test_union.py::TestModelClassSimilar::test_model_a PASSED tests/validators/test_union.py::TestModelClassSimilar::test_model_b_preferred PASSED tests/validators/test_union.py::TestModelClassSimilar::test_model_b_not_ignored PASSED tests/validators/test_union.py::test_nullable_via_union PASSED tests/validators/test_union.py::test_union_list_bool_int PASSED tests/validators/test_union.py::test_no_choices PASSED tests/validators/test_union.py::test_empty_choices PASSED tests/validators/test_union.py::test_one_choice PASSED tests/validators/test_union.py::test_strict_union PASSED tests/validators/test_union.py::test_custom_error PASSED tests/validators/test_union.py::test_custom_error_type PASSED tests/validators/test_union.py::test_custom_error_type_context PASSED tests/validators/test_union.py::test_dirty_behaviour PASSED tests/validators/test_union.py::test_int_float PASSED tests/validators/test_union.py::test_str_float PASSED tests/validators/test_union.py::test_no_strict_check PASSED tests/validators/test_union.py::test_strict_reference PASSED tests/validators/test_union.py::test_case_labels PASSED tests/validators/test_union.py::test_left_to_right_doesnt_care_about_strict_check PASSED tests/validators/test_union.py::test_left_to_right_union PASSED tests/validators/test_union.py::test_left_to_right_union_strict PASSED tests/validators/test_union.py::test_union_function_before_called_once PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema0-12345678-1234-5678-1234-567812345678-expected_value0] PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema1-2020-01-01-expected_value1] PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema2-00:00:00-expected_value2] PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema3-2020-01-01:00:00:00-2020-01-01:00:00:00] PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema4-https://foo.com-https://foo.com] PASSED tests/validators/test_union.py::test_smart_union_json_string_types[schema5-https://bar.com,foo.com-https://bar.com,foo.com] PASSED tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema0-12345678-1234-5678-1234-567812345678] XFAIL tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema1-2020-01-01] PASSED tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema2-00:00:00] PASSED tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema3-2020-01-01:00:00:00] PASSED tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema4-https://foo.com] PASSED tests/validators/test_union.py::test_smart_union_json_string_types_str_first[schema5-https://bar.com,foo.com] PASSED tests/validators/test_union.py::test_smart_union_default_fallback PASSED tests/validators/test_union.py::test_smart_union_model_field PASSED tests/validators/test_union.py::test_smart_union_dataclass_field PASSED tests/validators/test_union.py::test_smart_union_with_any PASSED tests/validators/test_union.py::test_smart_union_validator_function PASSED tests/validators/test_union.py::test_smart_union_validator_function_one_arm PASSED tests/validators/test_union.py::test_int_not_coerced_to_enum PASSED tests/validators/test_union.py::test_model_and_literal_union PASSED tests/validators/test_union.py::TestSmartUnionWithSubclass::test_more_specific_data_matches_subclass[choices0] PASSED tests/validators/test_union.py::TestSmartUnionWithSubclass::test_more_specific_data_matches_subclass[choices1] PASSED tests/validators/test_union.py::TestSmartUnionWithDefaults::test_fields_set_ensures_best_match[choices0] PASSED tests/validators/test_union.py::TestSmartUnionWithDefaults::test_fields_set_ensures_best_match[choices1] PASSED tests/validators/test_union.py::TestSmartUnionWithDefaults::test_optional_union_with_members_having_defaults[choices0] PASSED tests/validators/test_union.py::TestSmartUnionWithDefaults::test_optional_union_with_members_having_defaults[choices1] PASSED tests/validators/test_union.py::test_dc_smart_union_by_fields_set PASSED tests/validators/test_union.py::test_dc_smart_union_with_defaults PASSED tests/validators/test_union.py::test_td_smart_union_by_fields_set PASSED tests/validators/test_union.py::test_smart_union_does_nested_model_field_counting PASSED tests/validators/test_union.py::test_smart_union_does_nested_dataclass_field_counting PASSED tests/validators/test_union.py::test_smart_union_does_nested_typed_dict_field_counting PASSED tests/validators/test_union.py::test_nested_unions_bubble_up_field_count PASSED tests/validators/test_union.py::test_smart_union_extra_behavior[forbid] PASSED tests/validators/test_union.py::test_smart_union_extra_behavior[ignore] PASSED tests/validators/test_union.py::test_smart_union_extra_behavior[allow] PASSED tests/validators/test_url.py::test_url_ok[python] PASSED tests/validators/test_url.py::test_url_ok[json] PASSED tests/validators/test_url.py::test_url_from_constructor_ok PASSED tests/validators/test_url.py::test_url_cases[-expected0-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[-expected0-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[:,-expected1-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[:,-expected1-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com-expected2-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com-expected2-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://exa\nmple.com-expected3-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://exa\nmple.com-expected3-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[xxx-expected4-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[xxx-expected4-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://-expected5-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://-expected5-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://xn----expected6-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://xn----expected6-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com:65535-http://example.com:65535/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com:65535-http://example.com:65535/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:\\\\example.com-http://example.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:\\\\example.com-http://example.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:example.com-http://example.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:example.com-http://example.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com:65536-expected10-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com:65536-expected10-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://1...1-expected11-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://1...1-expected11-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334[-expected12-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334[-expected12-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://[-expected13-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://[-expected13-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://example com-expected14-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://example com-expected14-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://exam%ple.com-expected15-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://exam%ple.com-expected15-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:// /-expected16-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:// /-expected16-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[/more-expected17-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[/more-expected17-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com./foobar-expected18-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com./foobar-expected18-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com-expected19-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com-expected19-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:/foo-expected20-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:/foo-expected20-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:///foo-expected21-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:///foo-expected21-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://exam_ple.com-expected22-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://exam_ple.com-expected22-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://exam-ple.com-expected23-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://exam-ple.com-expected23-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example-.com-expected24-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example-.com-expected24-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected25-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected25-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://foobar.\xa3\xa3\xa3.com-expected26-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://foobar.\xa3\xa3\xa3.com-expected26-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://foo.\xa3$.money.com-expected27-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://foo.\xa3$.money.com-expected27-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected28-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected28-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://m\xfcnchen/-expected29-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://m\xfcnchen/-expected29-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://\xe0.\u05d0\u0308.com-expected30-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://\xe0.\u05d0\u0308.com-expected30-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ssh://xn--9aaa.com/-ssh://xn--9aaa.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ssh://xn--9aaa.com/-ssh://xn--9aaa.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ssh://m\xfcnchen.com/-ssh://m%C3%BCnchen.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ssh://m\xfcnchen.com/-ssh://m%C3%BCnchen.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ssh://example/-ssh://example/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ssh://example/-ssh://example/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ssh://\xa3\xa3\xa3/-ssh://%C2%A3%C2%A3%C2%A3/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ssh://\xa3\xa3\xa3/-ssh://%C2%A3%C2%A3%C2%A3/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ssh://%C2%A3%C2%A3%C2%A3/-ssh://%C2%A3%C2%A3%C2%A3/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ssh://%C2%A3%C2%A3%C2%A3/-ssh://%C2%A3%C2%A3%C2%A3/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ftp://127.0.0.1-expected36-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ftp://127.0.0.1-expected36-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[wss://1.1.1.1-expected37-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[wss://1.1.1.1-expected37-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[snap://[::1]-expected38-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[snap://[::1]-expected38-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ftp://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]-expected39-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ftp://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]-expected39-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foobar://127.0.0.1-expected40-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foobar://127.0.0.1-expected40-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[mysql://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]-expected41-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[mysql://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]-expected41-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[mysql://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/thing-expected42-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[mysql://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/thing-expected42-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https:/more-expected43-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https:/more-expected43-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https:more-expected44-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https:more-expected44-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[file:///foobar-expected45-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[file:///foobar-expected45-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[file:///:80-expected46-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[file:///:80-expected46-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[file://:80-expected47-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[file://:80-expected47-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foobar://:80-expected48-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foobar://:80-expected48-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[file:\\\\foobar\\more-expected49-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[file:\\\\foobar\\more-expected49-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:\\\\foobar\\more-expected50-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:\\\\foobar\\more-expected50-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[mongo:\\\\foobar\\more-expected51-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[mongo:\\\\foobar\\more-expected51-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[mongodb+srv://server.example.com/-mongodb+srv://server.example.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[mongodb+srv://server.example.com/-mongodb+srv://server.example.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://example.com.-expected53-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://example.com.-expected53-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:/example.com-expected54-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:/example.com-expected54-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:/foo-expected55-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:/foo-expected55-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://foo-expected56-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://foo-expected56-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:///foo-expected57-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:///foo-expected57-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:////foo-expected58-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:////foo-expected58-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://--expected59-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://--expected59-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http:////example.com-expected60-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http:////example.com-expected60-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected61-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected61-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com.-expected62-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com.-expected62-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected63-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected63-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://m\xfcnchen/-expected64-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://m\xfcnchen/-expected64-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://\xe0.\u05d0\u0308.com-expected65-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://\xe0.\u05d0\u0308.com-expected65-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ftp://xn--0ca.xn--ssa73l.com-expected66-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ftp://xn--0ca.xn--ssa73l.com-expected66-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://foobar.\xa3\xa3\xa3.com/-expected67-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://foobar.\xa3\xa3\xa3.com/-expected67-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected68-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://\xa3\xa3\xa3.com-expected68-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected69-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://xn--9aaa.com/-expected69-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[wss://1.1.1.1-expected70-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[wss://1.1.1.1-expected70-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[file:///foobar-expected71-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[file:///foobar-expected71-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[postgresql+py-postgresql://user:pass@localhost:5432/app-expected72-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[postgresql+py-postgresql://user:pass@localhost:5432/app-expected72-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://https/-expected73-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://https/-expected73-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://user:@example.org-expected74-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://user:@example.org-expected74-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://us@er:p[ass@example.org-expected75-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://us@er:p[ass@example.org-expected75-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://us%40er:p%5Bass@example.org-expected76-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://us%40er:p%5Bass@example.org-expected76-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://us[]er:p,ass@example.org-expected77-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://us[]er:p,ass@example.org-expected77-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://%2F:@example.org-expected78-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://%2F:@example.org-expected78-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foo://user:@example.org-expected79-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foo://user:@example.org-expected79-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foo://us@er:p[ass@example.org-expected80-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foo://us@er:p[ass@example.org-expected80-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foo://us%40er:p%5Bass@example.org-expected81-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foo://us%40er:p%5Bass@example.org-expected81-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foo://us[]er:p,ass@example.org-expected82-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foo://us[]er:p,ass@example.org-expected82-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[foo://%2F:@example.org-expected83-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[foo://%2F:@example.org-expected83-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[HTTP://EXAMPLE.ORG-expected84-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[HTTP://EXAMPLE.ORG-expected84-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[HTTP://EXAMPLE.org-expected85-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[HTTP://EXAMPLE.org-expected85-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[POSTGRES://EXAMPLE.ORG-expected86-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[POSTGRES://EXAMPLE.ORG-expected86-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://twitter.com/@handle-expected87-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://twitter.com/@handle-expected87-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ https://www.example.com \n-https://www.example.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ https://www.example.com \n-https://www.example.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://www.\u0430\u0440\u0440\u04cf\u0435.com/-https://www.xn--80ak6aa92e.com/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://www.\u0430\u0440\u0440\u04cf\u0435.com/-https://www.xn--80ak6aa92e.com/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://exampl\xa3e.org-https://xn--example-gia.org/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://exampl\xa3e.org-https://xn--example-gia.org/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://example.\u73e0\u5b9d-https://example.xn--pbt977c/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://example.\u73e0\u5b9d-https://example.xn--pbt977c/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://example.verm\xf6gensberatung-https://example.xn--vermgensberatung-pwb/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://example.verm\xf6gensberatung-https://example.xn--vermgensberatung-pwb/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://example.\u0440\u0444-https://example.xn--p1ai/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://example.\u0440\u0444-https://example.xn--p1ai/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[https://exampl\xa3e.\u73e0\u5b9d-https://xn--example-gia.xn--pbt977c/-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[https://exampl\xa3e.\u73e0\u5b9d-https://xn--example-gia.xn--pbt977c/-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[ht\U0001f4a3tp://example.org-expected95-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[ht\U0001f4a3tp://example.org-expected95-URI_CLASS] PASSED tests/validators/test_url.py::test_url_cases[http://us\xdfer:pas\u211ds@a\U0001f4a3b.com:123/c?d=e&d=f#g-expected96-SCHEMA_VALIDATOR] PASSED tests/validators/test_url.py::test_url_cases[http://us\xdfer:pas\u211ds@a\U0001f4a3b.com:123/c?d=e&d=f#g-expected96-URI_CLASS] PASSED tests/validators/test_url.py::test_url_defaults_single_url[validator_kwargs0-http://example.org-expected0] PASSED tests/validators/test_url.py::test_url_defaults_single_url[validator_kwargs1-redis://-expected1] PASSED tests/validators/test_url.py::test_url_host_required PASSED tests/validators/test_url.py::test_url_defaults_multi_host_url[validator_kwargs0-http://example.org-expected0] PASSED tests/validators/test_url.py::test_url_defaults_multi_host_url[validator_kwargs1-redis://-expected1] PASSED tests/validators/test_url.py::test_url_defaults_multi_host_url[validator_kwargs2-redis://localhost,127.0.0.1-expected2] PASSED tests/validators/test_url.py::test_url_defaults_multi_host_url[validator_kwargs3-redis://-expected3] PASSED tests/validators/test_url.py::test_multi_host_url[http://example.org:1234/baz-expected0] PASSED tests/validators/test_url.py::test_multi_host_url[redis://localhost,127.0.0.1-expected1] PASSED tests/validators/test_url.py::test_multi_host_url[redis://-expected2] PASSED tests/validators/test_url.py::test_multi_host_default_host_no_comma PASSED tests/validators/test_url.py::test_url_error[http://example.com-expected0] PASSED tests/validators/test_url.py::test_url_error[http://exa\nmple.com-expected1] PASSED tests/validators/test_url.py::test_url_error[xxx-expected2] PASSED tests/validators/test_url.py::test_url_error[http:/foo-expected3] PASSED tests/validators/test_url.py::test_url_error[http:///foo-expected4] PASSED tests/validators/test_url.py::test_url_error[http:////foo-expected5] PASSED tests/validators/test_url.py::test_url_error[http://exam_ple.com-expected6] PASSED tests/validators/test_url.py::test_url_error[https:/more-expected7] PASSED tests/validators/test_url.py::test_url_error[https:more-expected8] PASSED tests/validators/test_url.py::test_url_error[file:///foobar-expected9] PASSED tests/validators/test_url.py::test_url_error[file://:80-expected10] PASSED tests/validators/test_url.py::test_url_error[file:/xx-expected11] PASSED tests/validators/test_url.py::test_url_error[foobar://:80-expected12] PASSED tests/validators/test_url.py::test_url_error[mongodb+srv://server.example.com/-mongodb+srv://server.example.com/] PASSED tests/validators/test_url.py::test_url_error[http://user:@example.org-http://user@example.org/0] PASSED tests/validators/test_url.py::test_url_error[http://us[er:@example.org-expected15] PASSED tests/validators/test_url.py::test_url_error[http://us%5Ber:bar@example.org-http://us%5Ber:bar@example.org/] PASSED tests/validators/test_url.py::test_url_error[http://user:@example.org-http://user@example.org/1] PASSED tests/validators/test_url.py::test_url_error[mongodb://us%5Ber:bar@example.org-mongodb://us%5Ber:bar@example.org] PASSED tests/validators/test_url.py::test_url_error[mongodb://us@er@example.org-expected19] PASSED tests/validators/test_url.py::test_no_host PASSED tests/validators/test_url.py::test_max_length PASSED tests/validators/test_url.py::test_allowed_schemes_ok PASSED tests/validators/test_url.py::test_allowed_schemes_error PASSED tests/validators/test_url.py::test_allowed_schemes_errors PASSED tests/validators/test_url.py::test_url_query_repeat PASSED tests/validators/test_url.py::test_url_to_url PASSED tests/validators/test_url.py::test_url_to_constraint PASSED tests/validators/test_url.py::test_wrong_type_lax PASSED tests/validators/test_url.py::test_wrong_type_strict PASSED tests/validators/test_url.py::test_username[https://apple:pie@example.com/foo-https://apple:pie@example.com/foo-apple-pie] PASSED tests/validators/test_url.py::test_username[https://apple:@example.com/foo-https://apple@example.com/foo-apple-None] PASSED tests/validators/test_url.py::test_username[https://app$le:pie@example.com/foo-https://app$le:pie@example.com/foo-app$le-pie] PASSED tests/validators/test_url.py::test_username[https://app le:pie@example.com/foo-https://app%20le:pie@example.com/foo-app%20le-pie] PASSED tests/validators/test_url.py::test_strict_not_strict PASSED tests/validators/test_url.py::test_multi_host_url_ok_single[python] PASSED tests/validators/test_url.py::test_multi_host_url_ok_single[json] PASSED tests/validators/test_url.py::test_multi_host_url_ok_2[python] PASSED tests/validators/test_url.py::test_multi_host_url_ok_2[json] PASSED tests/validators/test_url.py::test_multi_url_cases[-expected0] PASSED tests/validators/test_url.py::test_multi_url_cases[http://example.com-expected1] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://example.com-expected2] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://foo,bar,spam/xxx-expected3] PASSED tests/validators/test_url.py::test_multi_url_cases[ mongodb://foo,bar,spam/xxx -mongodb://foo,bar,spam/xxx] PASSED tests/validators/test_url.py::test_multi_url_cases[ \n\r\t mongodb://foo,bar,spam/xxx-mongodb://foo,bar,spam/xxx] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb+srv://foo,bar,spam/xxx-expected6] PASSED tests/validators/test_url.py::test_multi_url_cases[https://foo:bar@example.com,fo%20o:bar@example.com-expected7] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://foo:bar@example.com,fo%20o:bar@example.com-expected8] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://-expected9] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://,-expected10] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://,,-expected11] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://foo,\n,bar-expected12] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://\n,bar-expected13] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://foo,\n-expected14] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://foo,-expected15] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://,foo-expected16] PASSED tests/validators/test_url.py::test_multi_url_cases[http://-expected17] PASSED tests/validators/test_url.py::test_multi_url_cases[http://,-expected18] PASSED tests/validators/test_url.py::test_multi_url_cases[http://,,-expected19] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo,\n,bar-expected20] PASSED tests/validators/test_url.py::test_multi_url_cases[http://\n,bar-expected21] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo,\n-expected22] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo,-expected23] PASSED tests/validators/test_url.py::test_multi_url_cases[http://,foo-expected24] PASSED tests/validators/test_url.py::test_multi_url_cases[http@foobar-expected25] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://foo\n,b\nar,\nspam/xxx-expected26] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://user:pass@host1.db.net:4321,host2.db.net:6432/app-expected27] PASSED tests/validators/test_url.py::test_multi_url_cases[postgresql+py-postgresql://user:pass@localhost:5432/app-expected28] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo#bar-http://foo/#bar] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://foo#bar-mongodb://foo#bar] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo,bar#spam-http://foo,bar/#spam] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://foo,bar#spam-mongodb://foo,bar#spam] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo,bar?x=y-http://foo,bar/?x=y] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://foo,bar?x=y-mongodb://foo,bar?x=y] PASSED tests/validators/test_url.py::test_multi_url_cases[foo://foo,bar?x=y-foo://foo,bar?x=y] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://mongodb1.example.com:27317,mongodb2.example.com:27017/mydatabase?replicaSet=mySet&authSource=authDB-expected36] PASSED tests/validators/test_url.py::test_multi_url_cases[FILE:\\\\foo,bar\\more-expected37] PASSED tests/validators/test_url.py::test_multi_url_cases[http:\\\\foo,bar\\more-expected38] PASSED tests/validators/test_url.py::test_multi_url_cases[mongo:\\\\foo,bar\\more-expected39] PASSED tests/validators/test_url.py::test_multi_url_cases[foobar://foo[]bar:x@y@whatever,foo[]bar:x@y@whichever-expected40] PASSED tests/validators/test_url.py::test_multi_url_cases[foobar://foo%2Cbar:x@y@whatever,snap-expected41] PASSED tests/validators/test_url.py::test_multi_url_cases[mongodb://x:y@[::1],1.1.1.1:888/xxx-expected42] PASSED tests/validators/test_url.py::test_multi_url_cases[http://foo.co.uk,bar.spam.things.com-expected43] PASSED tests/validators/test_url.py::test_multi_url_cases[ht\U0001f4a3tp://example.com-expected44] PASSED tests/validators/test_url.py::test_multi_url_cases[http://\xa3\xa3\xa3.com-expected45] PASSED tests/validators/test_url.py::test_multi_url_cases[http://\xa3\xa3\xa3.co.uk,m\xfcnchen.com/foo?bar=baz#qux-expected46] PASSED tests/validators/test_url.py::test_multi_url_cases[postgres://\xa3\xa3\xa3.co.uk,m\xfcnchen.com/foo?bar=baz#qux-expected47] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[http://example.com-http://example.com/] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[ mongodb://foo,bar,spam/xxx -expected1] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[ \n\r\t mongodb://foo,bar,spam/xxx-expected2] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[file:\\\\foo,bar\\more-expected3] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[http:\\\\foo,bar\\more-expected4] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[mongo:\\\\foo,bar\\more-expected5] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[foobar://foo[]bar:x@y@whatever,foo[]bar:x@y@whichever-expected6] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[foobar://foo%2Cbar:x@y@whatever,snap-expected7] PASSED tests/validators/test_url.py::test_multi_url_cases_strict[foobar://foo%2Cbar:x%40y@whatever,snap-foobar://foo%2Cbar:x%40y@whatever,snap] PASSED tests/validators/test_url.py::test_url_to_multi_url PASSED tests/validators/test_url.py::test_multi_wrong_type PASSED tests/validators/test_url.py::test_multi_allowed_schemas PASSED tests/validators/test_url.py::test_multi_max_length PASSED tests/validators/test_url.py::test_zero_schemas PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://google.com#@evil.com/-expected0] PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://127.0.0.1%0d%0aConnection%3a%20keep-alive-expected1] PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://google.com/\uff2e\uff2e/abc-expected2] PASSED tests/validators/test_url.py::test_url_vulnerabilities[javascript:a='@google.com:12345/';alert(0)-expected3] PASSED tests/validators/test_url.py::test_url_vulnerabilities[//google.com/a/b/c-expected4] PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://\u30d2:\u30ad@\u30d2.abc.\u30cb/\u30d2?\u30ad#\u30ef-expected5] PASSED tests/validators/test_url.py::test_url_vulnerabilities[10.251.0.83:7777?a=1 HTTP/1.1\r\nX-injected: header-expected6] PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://10.251.0.83:7777?a=1 HTTP/1.1\r\nX-injected: header-expected7] PASSED tests/validators/test_url.py::test_url_vulnerabilities[http://127.0.0.1:6379?\r\nSET test failure12\r\n:8080/test/?test=a-expected8] PASSED tests/validators/test_url.py::test_url_vulnerabilities[https://user:pass@xdavidhu.me\\test.corp.google.com:8080/path/to/something?param=value#hash-expected9] PASSED tests/validators/test_url.py::test_url_vulnerabilities[https://@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[-expected10] PASSED tests/validators/test_url.py::test_url_vulnerabilities[https://user:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@example.com-expected11] PASSED tests/validators/test_url.py::test_multi_host_url_comparison PASSED tests/validators/test_url.py::test_multi_host_url_bool PASSED tests/validators/test_url.py::test_multi_host_url_hash PASSED tests/validators/test_url.py::test_multi_host_url_deepcopy PASSED tests/validators/test_url.py::test_url_comparison PASSED tests/validators/test_url.py::test_url_bool PASSED tests/validators/test_url.py::test_url_hash PASSED tests/validators/test_url.py::test_url_deepcopy PASSED tests/validators/test_url.py::test_multi_url_build PASSED tests/validators/test_url.py::test_multi_url_build_hosts_set_with_single_value[host] PASSED tests/validators/test_url.py::test_multi_url_build_hosts_set_with_single_value[password] PASSED tests/validators/test_url.py::test_multi_url_build_hosts_set_with_single_value[username] PASSED tests/validators/test_url.py::test_multi_url_build_hosts_set_with_single_value[port] PASSED tests/validators/test_url.py::test_multi_url_build_hosts_empty_host PASSED tests/validators/test_url.py::test_multi_url_build_hosts PASSED tests/validators/test_url.py::test_multi_url_build_neither_host_and_hosts_set PASSED tests/validators/test_url.py::test_url_build PASSED tests/validators/test_uuid.py::test_uuid[12345678-1234-1234-1234-567812345678-expected0] PASSED tests/validators/test_uuid.py::test_uuid[550e8400-e29b-41d4-a716-446655440000-expected1] PASSED tests/validators/test_uuid.py::test_uuid[f47ac10b-58cc-4372-a567-0e02b2c3d479-expected2] PASSED tests/validators/test_uuid.py::test_uuid[123e4567-e89b-12d3-a456-426655440000-expected3] PASSED tests/validators/test_uuid.py::test_uuid[de305d54-75b4-431b-adb2-eb6b9e546014-expected4] PASSED tests/validators/test_uuid.py::test_uuid[00000000-0000-0000-0000-000000000000-expected5] PASSED tests/validators/test_uuid.py::test_uuid[1b4e28ba-2fa1-11d2-883f-0016d3cca427-expected6] PASSED tests/validators/test_uuid.py::test_uuid[6ba7b810-9dad-11d1-80b4-00c04fd430c8-expected7] PASSED tests/validators/test_uuid.py::test_uuid[886313e1-3b8a-5372-9b90-0c9aee199e5d-expected8] PASSED tests/validators/test_uuid.py::test_uuid[c0a8f9a8-aa5e-482b-a067-9cb3a51f5c11-expected9] PASSED tests/validators/test_uuid.py::test_uuid[00000000-8000-4000-8000-000000000000-expected10] PASSED tests/validators/test_uuid.py::test_uuid[00000000-0000-4000-0000-000000000000-expected11] PASSED tests/validators/test_uuid.py::test_uuid[00000000-0000-4000-0000-000000000000-expected12] PASSED tests/validators/test_uuid.py::test_uuid[\x124Vx\x124Vx\x124Vx\x124Vx-expected13] PASSED tests/validators/test_uuid.py::test_uuid[\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-expected14] PASSED tests/validators/test_uuid.py::test_uuid[ebcdab58-6eb8-46fb-a190-d07a33e9eac8-expected15] PASSED tests/validators/test_uuid.py::test_uuid[input_value16-expected16] PASSED tests/validators/test_uuid.py::test_uuid[input_value17-expected17] PASSED tests/validators/test_uuid.py::test_uuid[not-a-valid-uuid-expected18] PASSED tests/validators/test_uuid.py::test_uuid[12345678-1234-5678-1234-5678123456789-expected19] PASSED tests/validators/test_uuid.py::test_uuid[12345678-1234-1234-1234-1234567890123-expected20] PASSED tests/validators/test_uuid.py::test_uuid[\x00\x00\x00\x000\x00\x00\x00\x000\x00\x00\x00\x000\x00\x00\x00\x000-expected21] PASSED tests/validators/test_uuid.py::test_uuid[550e8400-e29b-41d4-a716-expected22] PASSED tests/validators/test_uuid.py::test_uuid[f47ac10b-58cc-4372-a567-0e02b2c3d47-expected23] PASSED tests/validators/test_uuid.py::test_uuid[de305d54-75b4-431b-adb2-eb6b9e54601-expected24] PASSED tests/validators/test_uuid.py::test_uuid[1b4e28ba-2fa1-11d2-883f-0016d3cca42-expected25] PASSED tests/validators/test_uuid.py::test_uuid[6ba7b810-9dad-11d1-80b4-00c04fd430c-expected26] PASSED tests/validators/test_uuid.py::test_uuid[886313e1-3b8a-5372-9b90-0c9aee199e5-expected27] PASSED tests/validators/test_uuid.py::test_uuid[c0a8f9a8-aa5e-482b-a067-9cb3a51f5c1-expected28] PASSED tests/validators/test_uuid.py::test_uuid[214850178493633095719753750962310141912-expected29] PASSED tests/validators/test_uuid.py::test_uuid[0-expected30] PASSED tests/validators/test_uuid.py::test_uuid_strict[input_value0-expected0] PASSED tests/validators/test_uuid.py::test_uuid_strict[12345678-1234-5678-1234-567812345678-expected1] PASSED tests/validators/test_uuid.py::test_uuid_strict[12345678-1234-5678-1234-567812345678-expected2] PASSED tests/validators/test_uuid.py::test_uuid_strict[1654646400-expected3] PASSED tests/validators/test_uuid.py::test_uuid_version[a6cc5730-2261-11ee-9c43-2eb5a363657c-1-expected0] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value1-1-expected1] PASSED tests/validators/test_uuid.py::test_uuid_version[04e4aeb3-8f20-30d0-8852-d295e1265eed-3-expected2] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value3-3-expected3] PASSED tests/validators/test_uuid.py::test_uuid_version[0e7ac198-9acd-4c0c-b4b4-761974bf71d7-4-expected4] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value5-4-expected5] PASSED tests/validators/test_uuid.py::test_uuid_version[0e7ac198-9acd-4c0c-b4b4-761974bf71d7-4-expected6] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value7-4-expected7] PASSED tests/validators/test_uuid.py::test_uuid_version[00000000-8000-4000-8000-000000000000-4-expected8] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value9-4-expected9] PASSED tests/validators/test_uuid.py::test_uuid_version[00000000-0000-4000-0000-000000000000-None-expected10] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value11-None-expected11] PASSED tests/validators/test_uuid.py::test_uuid_version[00000000-7fff-4000-7fff-000000000000-None-expected12] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value13-None-expected13] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value14-4-expected14] PASSED tests/validators/test_uuid.py::test_uuid_version[b34b6755-f49c-3bd2-6f06-131a708c2bf3-None-expected15] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value16-None-expected16] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value17-4-expected17] PASSED tests/validators/test_uuid.py::test_uuid_version[a6cc5730-2261-11ee-9c43-2eb5a363657c-5-expected18] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value19-5-expected19] PASSED tests/validators/test_uuid.py::test_uuid_version[04e4aeb3-8f20-30d0-8852-d295e1265eed-4-expected20] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value21-4-expected21] PASSED tests/validators/test_uuid.py::test_uuid_version[0e7ac198-9acd-4c0c-b4b4-761974bf71d7-3-expected22] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value23-3-expected23] PASSED tests/validators/test_uuid.py::test_uuid_version[08ed0736-fb95-5cc5-85ed-37e4f3df9b29-1-expected24] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value25-1-expected25] PASSED tests/validators/test_uuid.py::test_uuid_version[00000000-0000-4000-0000-000000000000-4-expected26] PASSED tests/validators/test_uuid.py::test_uuid_version[input_value27-4-expected27] PASSED tests/validators/test_uuid.py::test_uuid_json[python-a6cc5730-2261-11ee-9c43-2eb5a363657c-expected0] PASSED tests/validators/test_uuid.py::test_uuid_json[python-12345678123456781234567812345678-expected1] PASSED tests/validators/test_uuid.py::test_uuid_json[python-c0a8f9a8-aa5e-482b-a067-9cb3a51f5c1-expected2] PASSED tests/validators/test_uuid.py::test_uuid_json[python-10.0-expected3] PASSED tests/validators/test_uuid.py::test_uuid_json[python-None-expected4] PASSED tests/validators/test_uuid.py::test_uuid_json[python-True-expected5] PASSED tests/validators/test_uuid.py::test_uuid_json[python-214850178493633095719753750962310141912-expected6] PASSED tests/validators/test_uuid.py::test_uuid_json[python-24197857161011715162171839636988778104-expected7] PASSED tests/validators/test_uuid.py::test_uuid_json[json-a6cc5730-2261-11ee-9c43-2eb5a363657c-expected0] PASSED tests/validators/test_uuid.py::test_uuid_json[json-12345678123456781234567812345678-expected1] PASSED tests/validators/test_uuid.py::test_uuid_json[json-c0a8f9a8-aa5e-482b-a067-9cb3a51f5c1-expected2] PASSED tests/validators/test_uuid.py::test_uuid_json[json-10.0-expected3] PASSED tests/validators/test_uuid.py::test_uuid_json[json-None-expected4] PASSED tests/validators/test_uuid.py::test_uuid_json[json-True-expected5] PASSED tests/validators/test_uuid.py::test_uuid_json[json-214850178493633095719753750962310141912-expected6] PASSED tests/validators/test_uuid.py::test_uuid_json[json-24197857161011715162171839636988778104-expected7] PASSED tests/validators/test_uuid.py::test_uuid_deepcopy PASSED tests/validators/test_uuid.py::test_uuid_copy PASSED tests/validators/test_uuid.py::test_uuid_wrap_json PASSED tests/validators/test_with_default.py::test_typed_dict_default PASSED tests/validators/test_with_default.py::test_typed_dict_omit PASSED tests/validators/test_with_default.py::test_arguments PASSED tests/validators/test_with_default.py::test_arguments_omit PASSED tests/validators/test_with_default.py::test_list_json[python-input_value0-expected0] PASSED tests/validators/test_with_default.py::test_list_json[python-input_value1-expected1] PASSED tests/validators/test_with_default.py::test_list_json[python-input_value2-expected2] PASSED tests/validators/test_with_default.py::test_list_json[json-input_value0-expected0] PASSED tests/validators/test_with_default.py::test_list_json[json-input_value1-expected1] PASSED tests/validators/test_with_default.py::test_list_json[json-input_value2-expected2] PASSED tests/validators/test_with_default.py::test_list[input_value0-expected0] PASSED tests/validators/test_with_default.py::test_list[input_value1-expected1] PASSED tests/validators/test_with_default.py::test_list[input_value2-expected2] PASSED tests/validators/test_with_default.py::test_list[input_value3-expected3] PASSED tests/validators/test_with_default.py::test_list[input_value4-expected4] PASSED tests/validators/test_with_default.py::test_list[input_value5-expected5] PASSED tests/validators/test_with_default.py::test_set[input_value0-expected0] PASSED tests/validators/test_with_default.py::test_set[input_value1-expected1] PASSED tests/validators/test_with_default.py::test_set[input_value2-expected2] PASSED tests/validators/test_with_default.py::test_set[input_value3-expected3] PASSED tests/validators/test_with_default.py::test_set[input_value4-expected4] PASSED tests/validators/test_with_default.py::test_dict_values[python] PASSED tests/validators/test_with_default.py::test_dict_values[json] PASSED tests/validators/test_with_default.py::test_dict_keys PASSED tests/validators/test_with_default.py::test_tuple_variable[python] PASSED tests/validators/test_with_default.py::test_tuple_variable[json] PASSED tests/validators/test_with_default.py::test_tuple_positional PASSED tests/validators/test_with_default.py::test_tuple_positional_omit PASSED tests/validators/test_with_default.py::test_on_error_default PASSED tests/validators/test_with_default.py::test_factory_runtime_error PASSED tests/validators/test_with_default.py::test_factory_missing_arg PASSED tests/validators/test_with_default.py::test_typed_dict_error PASSED tests/validators/test_with_default.py::test_on_error_default_not_int PASSED tests/validators/test_with_default.py::test_on_error_default_factory PASSED tests/validators/test_with_default.py::test_on_error_omit PASSED tests/validators/test_with_default.py::test_on_error_wrong PASSED tests/validators/test_with_default.py::test_build_default_and_default_factory PASSED tests/validators/test_with_default.py::test_model_class PASSED tests/validators/test_with_default.py::test_validate_default[after-True-True] PASSED tests/validators/test_with_default.py::test_validate_default[after-True-False] PASSED tests/validators/test_with_default.py::test_validate_default[after-True-None] PASSED tests/validators/test_with_default.py::test_validate_default[after-False-True] PASSED tests/validators/test_with_default.py::test_validate_default[after-False-False] PASSED tests/validators/test_with_default.py::test_validate_default[after-False-None] PASSED tests/validators/test_with_default.py::test_validate_default[after-None-True] PASSED tests/validators/test_with_default.py::test_validate_default[after-None-False] PASSED tests/validators/test_with_default.py::test_validate_default[after-None-None] PASSED tests/validators/test_with_default.py::test_validate_default[before-True-True] PASSED tests/validators/test_with_default.py::test_validate_default[before-True-False] PASSED tests/validators/test_with_default.py::test_validate_default[before-True-None] PASSED tests/validators/test_with_default.py::test_validate_default[before-False-True] PASSED tests/validators/test_with_default.py::test_validate_default[before-False-False] PASSED tests/validators/test_with_default.py::test_validate_default[before-False-None] PASSED tests/validators/test_with_default.py::test_validate_default[before-None-True] PASSED tests/validators/test_with_default.py::test_validate_default[before-None-False] PASSED tests/validators/test_with_default.py::test_validate_default[before-None-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-True-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-True-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-True-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-False-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-False-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-False-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-None-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-None-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-before-None-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-True-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-True-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-True-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-False-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-False-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-False-None] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-None-True] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-None-False] PASSED tests/validators/test_with_default.py::test_validate_default[wrap-after-None-None] PASSED tests/validators/test_with_default.py::test_validate_default_factory PASSED tests/validators/test_with_default.py::test_validate_default_error_tuple PASSED tests/validators/test_with_default.py::test_validate_default_error_typed_dict PASSED tests/validators/test_with_default.py::test_deepcopy_mutable_defaults PASSED tests/validators/test_with_default.py::test_default_value PASSED tests/validators/test_with_default.py::test_default_value_validate_default PASSED tests/validators/test_with_default.py::test_default_value_validate_default_fail PASSED tests/validators/test_with_default.py::test_default_value_validate_default_strict_pass PASSED tests/validators/test_with_default.py::test_default_value_validate_default_strict_fail PASSED tests/validators/test_with_default.py::test_no_default_value[True] PASSED tests/validators/test_with_default.py::test_no_default_value[False] PASSED tests/validators/test_with_default.py::test_some[True] PASSED tests/validators/test_with_default.py::test_some[False] PASSED tests/validators/test_with_default.py::test_some_pattern_match SKIPPED tests/validators/test_with_default.py::test_use_default_error PASSED tests/validators/test_with_default.py::test_leak_with_default PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value0-expected0-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value0-expected0-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value1-expected1-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value1-expected1-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value2-expected2-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value2-expected2-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value3-expected3-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value3-expected3-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value4-expected4-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value4-expected4-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value5-expected5-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value5-expected5-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value6-expected6-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value6-expected6-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value7-expected7-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value7-expected7-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value8-expected8-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value8-expected8-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value9-expected9-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value9-expected9-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value10-expected10-model_fields_schema-model_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises[input_value10-expected10-typed_dict_schema-typed_dict_field] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value0-expected0] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value1-expected1] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value2-expected2] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value3-expected3] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value4-expected4] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value5-expected5] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value6-expected6] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value7-expected7] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value8-expected8] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value9-expected9] PASSED tests/validators/test_with_default.py::test_validate_default_raises_dataclass[input_value10-expected10] PASSED =============================== inline snapshot ================================ ======== 4519 passed, 95 skipped, 2 xfailed ========