Package: src:python-apischema Version: 0.18.3-2 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-apischema, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' dh_auto_clean rm -rf apischema.egg-info/ make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild [... snipped ...] self = <Mock name='mock.typed_dict' id='140654801902224'> args = (<class 'tests.unit.test_visitor.TypedDictExample'>, {'key1': <class 'str'>, 'key2': typing.List[int]}, {'key1', 'key2'}) kwargs = {} expected = call(<class 'tests.unit.test_visitor.TypedDictExample'>, {'key1': <class 'str'>, 'key2': typing.List[int]}, {'key1', 'key2'}) actual = call(<class 'tests.unit.test_visitor.TypedDictExample'>, {}, frozenset({'key1', 'key2'})) _error_message = <function NonCallableMock.assert_called_with.<locals>._error_message at 0x7fecbf818eb0> cause = None def assert_called_with(self, /, *args, **kwargs): """assert that the last call was made with the specified arguments. Raises an AssertionError if the args and keyword args passed in are different to the last call to the mock.""" if self.call_args is None: expected = self._format_mock_call_signature(args, kwargs) actual = 'not called.' error_message = ('expected call not found.\nExpected: %s\n Actual: %s' % (expected, actual)) raise AssertionError(error_message) def _error_message(): msg = self._format_mock_failure_message(args, kwargs) return msg expected = self._call_matcher(_Call((args, kwargs), two=True)) actual = self._call_matcher(self.call_args) if actual != expected: cause = expected if isinstance(expected, Exception) else None > raise AssertionError(_error_message()) from cause E AssertionError: expected call not found. E Expected: typed_dict(<class 'tests.unit.test_visitor.TypedDictExample'>, {'key1': <class 'str'>, 'key2': typing.List[int]}, {'key1', 'key2'}) E Actual: typed_dict(<class 'tests.unit.test_visitor.TypedDictExample'>, {}, frozenset({'key1', 'key2'})) /usr/lib/python3.14/unittest/mock.py:985: AssertionError __________________________________ test_mock ___________________________________ def test_mock(): mock = cast(Data, ValidatorMock(Data, {"a": 0})) assert mock.a == 0 > assert mock.b == "1" ^^^^^^ tests/unit/validation/test_mock.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ apischema/validation/mock.py:33: in __getattribute__ fields = object_fields(cls, deserialization=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ apischema/objects/getters.py:50: in object_fields return {f.name: f for f in GetFields().visit(tp)} ^^^^^^^^^^^^^^^^^^^^^ apischema/visitor.py:167: in visit return self.dataclass(tp, *dataclass_types_and_fields(tp)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tp = <class 'tests.unit.validation.test_mock.Data'> def dataclass_types_and_fields( tp: AnyType, ) -> Tuple[Mapping[str, AnyType], Sequence[Field], Sequence[Field]]: from apischema.metadata.keys import INIT_VAR_METADATA cls = get_origin_or_type(tp) assert is_dataclass(cls) types = resolve_type_hints(tp) fields, init_fields = [], [] for field in getattr(cls, _FIELDS).values(): assert isinstance(field, Field) if field._field_type == _FIELD_CLASSVAR: # type: ignore continue > field_type = types[field.name] ^^^^^^^^^^^^^^^^^ E KeyError: 'a' apischema/visitor.py:60: KeyError _______________________________ test_non_trivial _______________________________ def test_non_trivial(): with pytest.raises(NonTrivialDependency) as err: > validate(ValidatorMock(Data, {"a": 42}), get_validators(Data)) tests/unit/validation/test_validator.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ apischema/validation/validators.py:128: in validate validator.validate(obj) tests/unit/validation/test_validator.py:29: in non_trivial non_trivial(self) tests/unit/validation/test_validator.py:33: in non_trivial return data.c == data.b ^^^^^^ apischema/validation/mock.py:33: in __getattribute__ fields = object_fields(cls, deserialization=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ apischema/objects/getters.py:50: in object_fields return {f.name: f for f in GetFields().visit(tp)} ^^^^^^^^^^^^^^^^^^^^^ apischema/visitor.py:167: in visit return self.dataclass(tp, *dataclass_types_and_fields(tp)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tp = <class 'tests.unit.validation.test_validator.Data'> def dataclass_types_and_fields( tp: AnyType, ) -> Tuple[Mapping[str, AnyType], Sequence[Field], Sequence[Field]]: from apischema.metadata.keys import INIT_VAR_METADATA cls = get_origin_or_type(tp) assert is_dataclass(cls) types = resolve_type_hints(tp) fields, init_fields = [], [] for field in getattr(cls, _FIELDS).values(): assert isinstance(field, Field) if field._field_type == _FIELD_CLASSVAR: # type: ignore continue > field_type = types[field.name] ^^^^^^^^^^^^^^^^^ E KeyError: 'a' apischema/visitor.py:60: KeyError =========================== short test summary info ============================ FAILED tests/integration/test_annotated_schema.py::test_annotated_schema - Ke... FAILED tests/integration/test_default_conversion_type_name.py::test_default_conversion_type_name FAILED tests/integration/test_deserialization_pass_through.py::test_pass_through_doesnt_run_type_validators FAILED tests/integration/test_dict.py::test_typed_dict - AssertionError: asse... FAILED tests/integration/test_discriminator.py::test_typed_dict_discriminator FAILED tests/integration/test_discriminator.py::test_discriminator_literal_field[a-obj0] FAILED tests/integration/test_discriminator.py::test_discriminator_literal_field[B-obj1] FAILED tests/integration/test_field_generic_conversion.py::test_field_generic_conversion FAILED tests/integration/test_generic_conversion.py::test_generic_conversion FAILED tests/integration/test_generic_conversion.py::test_unparameterized_generic_conversion FAILED tests/integration/test_generic_conversion.py::test_annotated_generic_conversion FAILED tests/integration/test_object_fields_overriding.py::test_object_fields_overriding FAILED tests/integration/test_override_dataclass_constructors.py::test_override_dataclass_constructors[True] FAILED tests/integration/test_override_dataclass_constructors.py::test_override_dataclass_constructors[False] FAILED tests/integration/test_resolver_default_parameter_not_serializable.py::test_resolver_default_parameter_not_serializable[Union-default0] FAILED tests/integration/test_resolver_default_parameter_not_serializable.py::test_resolver_default_parameter_not_serializable[Union-default1] FAILED tests/integration/test_serialization_conflicting_union.py::test_correct_serialization FAILED tests/integration/test_unsupported_union_member.py::test_unsupported_union_member FAILED tests/integration/test_validator_aliasing.py::test_validator_aliasing FAILED tests/unit/test_alias.py::test_alias - KeyError: 'not_aliased' FAILED tests/unit/test_dataclasses.py::test_resolve_init_var - KeyError: 'a' FAILED tests/unit/test_deserialization.py::test_flattened_aliases - KeyError:... FAILED tests/unit/test_deserialization.py::test_invalid_flattened - KeyError:... FAILED tests/unit/test_deserialization_serialization.py::test_optional[None-None] FAILED tests/unit/test_deserialization_serialization.py::test_optional[data1-expected1] FAILED tests/unit/test_deserialization_serialization.py::test_union[-] - KeyE... FAILED tests/unit/test_deserialization_serialization.py::test_union[data1-expected1] FAILED tests/unit/test_deserialization_serialization.py::test_union_error[0] FAILED tests/unit/test_deserialization_serialization.py::test_union_error[None] FAILED tests/unit/test_deserialization_serialization.py::test_collection[List-expected0] FAILED tests/unit/test_deserialization_serialization.py::test_collection[Set-expected1] FAILED tests/unit/test_deserialization_serialization.py::test_collection[Sequence-expected2] FAILED tests/unit/test_deserialization_serialization.py::test_collection[AbstractSet-expected3] FAILED tests/unit/test_deserialization_serialization.py::test_collection[FrozenSet-expected4] FAILED tests/unit/test_deserialization_serialization.py::test_collection_tuple FAILED tests/unit/test_deserialization_serialization.py::test_collection_tuple_variadic FAILED tests/unit/test_deserialization_serialization.py::test_mapping[str-data0-expected0] FAILED tests/unit/test_deserialization_serialization.py::test_mapping[UUID-data1-expected1] FAILED tests/unit/test_deserialization_serialization.py::test_mapping[UUID-data2-expected2] FAILED tests/unit/test_deserialization_serialization.py::test_dataclass[data0-expected0] FAILED tests/unit/test_deserialization_serialization.py::test_dataclass[data1-expected1] FAILED tests/unit/test_deserialization_serialization.py::test_dataclass[data2-expected2] FAILED tests/unit/test_deserialization_serialization.py::test_dataclass_error[data0] FAILED tests/unit/test_deserialization_serialization.py::test_dataclass_error[data1] FAILED tests/unit/test_deserialization_serialization.py::test_properties - Ke... FAILED tests/unit/test_flattened_conversion.py::test_flattened_dataclass_model FAILED tests/unit/test_flattened_conversion.py::test_flattened_converted - Ke... FAILED tests/unit/test_flattened_conversion.py::test_flattened_converted_error FAILED tests/unit/test_metadata.py::test_flattened_generic_dataclass - KeyErr... FAILED tests/unit/test_recursion.py::test_is_recursive[B-True] - KeyError: 'b' FAILED tests/unit/test_recursion.py::test_is_recursive[C-True] - KeyError: 'b' FAILED tests/unit/test_recursion.py::test_is_recursive[D-True] - KeyError: 'c' FAILED tests/unit/test_recursion.py::test_is_recursive[E-True] - KeyError: 'c' FAILED tests/unit/test_recursion.py::test_is_recursive[F-True] - KeyError: 'e' FAILED tests/unit/test_recursion.py::test_is_recursive[G-True] - KeyError: 'a' FAILED tests/unit/test_refs.py::test_find_refs - KeyError: 'bs' FAILED tests/unit/test_refs.py::test_generic_schema - KeyError: 'a' FAILED tests/unit/test_schema.py::test_recursive_by_conversion_schema - KeyEr... FAILED tests/unit/test_schema.py::test_flattened_schema - KeyError: 'attr1' FAILED tests/unit/test_subscriptions.py::test_subscription[None-error_handler0-None-None] FAILED tests/unit/test_subscriptions.py::test_subscription[None-error_handler0-None-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[None-error_handler0-event_name-None] FAILED tests/unit/test_subscriptions.py::test_subscription[None-error_handler0-event_name-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[None-None-None-None] FAILED tests/unit/test_subscriptions.py::test_subscription[None-None-None-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[None-None-event_name-None] FAILED tests/unit/test_subscriptions.py::test_subscription[None-None-event_name-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-error_handler0-None-None] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-error_handler0-None-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-error_handler0-event_name-None] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-error_handler0-event_name-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-None-None-None] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-None-None-alias] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-None-event_name-None] FAILED tests/unit/test_subscriptions.py::test_subscription[events2-None-event_name-alias] FAILED tests/unit/test_typing.py::test_resolve_type_hints[A-_0-result0] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[A-_1-result1] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[A-_2-result2] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[B-_3-result3] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[B-_4-result4] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[B-_5-result5] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[C-_6-result6] - Ass... FAILED tests/unit/test_typing.py::test_resolve_type_hints[D-_7-result7] - Ass... FAILED tests/unit/test_visitor.py::test_visitor[DataclassExample-dataclass-args14] FAILED tests/unit/test_visitor.py::test_visitor[NamedTupleExample-named_tuple-args17] FAILED tests/unit/test_visitor.py::test_visitor[TypedDictExample-typed_dict-args23] FAILED tests/unit/validation/test_mock.py::test_mock - KeyError: 'a' FAILED tests/unit/validation/test_validator.py::test_non_trivial - KeyError: 'a' ================== 88 failed, 195 passed, 1 xfailed in 2.63s =================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_apischema/build; python3.14 -m pytest tests I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_apischema/build; python3.13 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> configfile: setup.cfg plugins: asyncio-1.2.0, typeguard-4.4.4 asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 284 items tests/integration/test_aliased_resolvers.py ... [ 1%] tests/integration/test_annotated_schema.py . [ 1%] tests/integration/test_collections_implies_tuple_passthrough.py ... [ 2%] tests/integration/test_default_conversion_type_name.py . [ 2%] tests/integration/test_descriptor_converters.py . [ 3%] tests/integration/test_deserialization_pass_through.py .. [ 3%] tests/integration/test_deserialize_with_coercion.py . [ 4%] tests/integration/test_deserializer_registration_reset_deserialization_cache.py . [ 4%] [ 4%] tests/integration/test_dict.py ..x..... [ 7%] tests/integration/test_discriminator.py .... [ 8%] tests/integration/test_field_generic_conversion.py . [ 9%] tests/integration/test_generic_conversion.py ... [ 10%] tests/integration/test_generic_object_deserialization.py . [ 10%] tests/integration/test_int_as_float.py . [ 10%] tests/integration/test_new_type_conversion.py . [ 11%] tests/integration/test_no_copy.py ... [ 12%] tests/integration/test_object_fields_overriding.py . [ 12%] tests/integration/test_override_dataclass_constructors.py .. [ 13%] tests/integration/test_pattern_deserialization.py .. [ 14%] tests/integration/test_resolver_default_parameter_not_serializable.py .. [ 14%] [ 14%] tests/integration/test_serialization_conflicting_union.py . [ 15%] tests/integration/test_type_converter.py . [ 15%] tests/integration/test_union_any_schema.py .... [ 16%] tests/integration/test_unsupported_union_member.py . [ 17%] tests/integration/test_validator_aliasing.py . [ 17%] tests/unit/test_alias.py . [ 17%] tests/unit/test_coercion.py ........ [ 20%] tests/unit/test_constraints.py . [ 21%] tests/unit/test_conversions_resolver.py ............. [ 25%] tests/unit/test_dataclasses.py .. [ 26%] tests/unit/test_deserialization.py .. [ 27%] tests/unit/test_deserialization_methods.py . [ 27%] tests/unit/test_deserialization_serialization.py ....................... [ 35%] ........................ [ 44%] tests/unit/test_field.py . [ 44%] tests/unit/test_flattened_conversion.py ... [ 45%] tests/unit/test_metadata.py . [ 45%] tests/unit/test_recursion.py ....... [ 48%] tests/unit/test_refs.py ...... [ 50%] tests/unit/test_schema.py .. [ 51%] tests/unit/test_serialized.py .. [ 51%] tests/unit/test_subscriptions.py ................ [ 57%] tests/unit/test_subtyping_substitution.py ........ [ 60%] tests/unit/test_types.py .. [ 60%] tests/unit/test_typing.py ................ [ 66%] tests/unit/test_utils.py ............................................... [ 83%] ............ [ 87%] tests/unit/test_visitor.py ........................... [ 96%] tests/unit/validation/test_dependencies.py .... [ 98%] tests/unit/validation/test_mock.py . [ 98%] tests/unit/validation/test_validator.py .... [100%] ======================== 283 passed, 1 xfailed in 0.43s ======================== dh_auto_test: error: pybuild --test -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:7: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

