Package: src:python-sure Version: 2.0.1+git.2023.02.06.3aef950b7c-4 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-sure, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=pybuild --with python3 debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions rm -rf build find . -iname '*.pyc' -delete for i in $(find . -type d -iname __pycache__) ; do rm -rf $i ; done rm -f .coverage make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh binary --buildsystem=pybuild --with python3 dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:317: python3.14 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running config I: pybuild base:317: python3.13 setup.py config /<<PKGBUILDDIR>>/setup.py:53: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead self.version = node.value.s /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running config debian/rules override_dh_auto_build make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/<<PKGBUILDDIR>>' debian/rules override_dh_auto_test make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions set -x ; set -e ; for i in 3.14 3.13 ; do \ python$i -m pytest -v tests -k "not test_context_is_not_optional and not test_depends_on_failing_due_nothing_found and not test_depends_on_failing_due_not_calling_a_previous_action" ; \ done + set -e + python3.14 -m pytest -v tests -k not test_context_is_not_optional and not test_depends_on_failing_due_nothing_found and not test_depends_on_failing_due_not_calling_a_previous_action ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 cachedir: .pytest_cache rootdir: /<<PKGBUILDDIR>> configfile: setup.cfg plugins: cov-5.0.0, typeguard-4.4.4 collecting ... collected 139 items / 3 deselected / 136 selected tests/issues/test_issue_104.py::test_issue_104 PASSED tests/issues/test_issue_134.py::test_issue_132 PASSED tests/issues/test_issue_136.py::test_issue_136 PASSED tests/issues/test_issue_139.py::test_issue_139 PASSED tests/issues/test_issue_148.py::test_should_compare_dict_with_non_orderable_key_types PASSED tests/issues/test_issue_148.py::test_should_compare_dict_with_enum_keys PASSED tests/issues/test_issue_19.py::test_issue_19 PASSED tests/issues/test_issue_48.py::test_issue_48 PASSED tests/test_assertion_builder.py::test_assertion_builder_synonyms PASSED tests/test_assertion_builder.py::test_4_equal_2p2 PASSED tests/test_assertion_builder.py::test_2_within_0a2 PASSED tests/test_assertion_builder.py::test_true_be_ok PASSED tests/test_assertion_builder.py::test_false_be_falsy PASSED tests/test_assertion_builder.py::test_none PASSED tests/test_assertion_builder.py::test_should_be_a PASSED tests/test_assertion_builder.py::test_should_be_callable PASSED tests/test_assertion_builder.py::test_iterable_should_be_empty PASSED tests/test_assertion_builder.py::test_iterable_should_have_length_of PASSED tests/test_assertion_builder.py::test_greater_than PASSED tests/test_assertion_builder.py::test_greater_than_or_equal_to PASSED tests/test_assertion_builder.py::test_lower_than PASSED tests/test_assertion_builder.py::test_lower_than_or_equal_to PASSED tests/test_assertion_builder.py::test_be PASSED tests/test_assertion_builder.py::test_have_property PASSED tests/test_assertion_builder.py::test_have_property_with_value PASSED tests/test_assertion_builder.py::test_have_key PASSED tests/test_assertion_builder.py::test_have_key_with_value PASSED tests/test_assertion_builder.py::test_look_like PASSED tests/test_assertion_builder.py::test_equal_with_repr_of_complex_types_and_unicode PASSED tests/test_assertion_builder.py::test_equal_with_repr_of_complex_types_and_repr PASSED tests/test_assertion_builder.py::test_match_regex PASSED tests/test_assertion_builder.py::test_match_contain PASSED tests/test_assertion_builder.py::test_catching_exceptions PASSED tests/test_assertion_builder.py::test_catching_exceptions_with_params PASSED tests/test_assertion_builder.py::test_success_with_params PASSED tests/test_assertion_builder.py::test_success_with_params_exception PASSED tests/test_assertion_builder.py::test_throw_matching_regex PASSED tests/test_assertion_builder.py::test_should_not_be_different PASSED tests/test_assertion_builder.py::test_equals_handles_mock_call_list PASSED tests/test_assertion_builder.py::test_equals_handles_float_with_epsilon PASSED tests/test_assertion_builder.py::test_equals_dictionaries_with_tuple_keys PASSED tests/test_assertion_builder.py::test_ordereddict_comparison PASSED tests/test_assertion_builder.py::test_equals_anything PASSED tests/test_assertion_builder.py::test_equals_crosstype PASSED tests/test_custom_assertions.py::test_custom_assertion PASSED tests/test_custom_assertions.py::test_custom_chain_method PASSED tests/test_custom_assertions.py::test_custom_chain_property PASSED tests/test_ensure_ctxmgr.py::test_ensure_simple_assertion PASSED tests/test_ensure_ctxmgr.py::test_ensure_just_assertion_error PASSED tests/test_old_api.py::testOldApi::test_accepts_setup_list PASSED tests/test_old_api.py::testOldApi::test_accepts_teardown_list PASSED tests/test_old_api.py::testOldApi::test_actions_providing_dinamically_named_variables PASSED tests/test_old_api.py::testOldApi::test_actions_providing_variables_in_the_context PASSED tests/test_old_api.py::testOldApi::test_actions_returns_context PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level1_fail PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level1_fails_missing_key_on_y PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level1_success PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level2_fail PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level2_list_success PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level2_success PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level3_fail_values PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level3_fails_different_key PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level3_fails_extra_key PASSED tests/test_old_api.py::testOldApi::test_deep_equals_dict_level3_fails_missing_key PASSED tests/test_old_api.py::testOldApi::test_deep_equals_failing_basic_vs_complex PASSED tests/test_old_api.py::testOldApi::test_deep_equals_failing_complex_vs_basic PASSED tests/test_old_api.py::testOldApi::test_deep_equals_fallsback_to_generic_comparator PASSED tests/test_old_api.py::testOldApi::test_deep_equals_fallsback_to_generic_comparator_failing PASSED tests/test_old_api.py::testOldApi::test_deep_equals_fallsback_to_generic_comparator_failing_type PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level1_fail_by_length_x_gt_y PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level1_fail_by_length_y_gt_x PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level1_fail_by_value PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level1_success PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level2_fail_by_length_x_gt_y PASSED tests/test_old_api.py::testOldApi::test_deep_equals_list_level2_fail_by_length_y_gt_x PASSED tests/test_old_api.py::testOldApi::test_deep_equals_tuple_level1_fail_by_length_x_gt_y PASSED tests/test_old_api.py::testOldApi::test_deep_equals_tuple_level1_fail_by_length_y_gt_x PASSED tests/test_old_api.py::testOldApi::test_deep_equals_tuple_level1_fail_by_value PASSED tests/test_old_api.py::testOldApi::test_deep_equals_tuple_level1_success PASSED tests/test_old_api.py::testOldApi::test_deep_equals_weird PASSED tests/test_old_api.py::testOldApi::test_fails_when_action_doesnt_fulfill_the_agreement_of_provides PASSED tests/test_old_api.py::testOldApi::test_function_decorated_with_wip_should_set_a_flag PASSED tests/test_old_api.py::testOldApi::test_microsecond_unit PASSED tests/test_old_api.py::testOldApi::test_milisecond_unit PASSED tests/test_old_api.py::testOldApi::test_minute_unit PASSED tests/test_old_api.py::testOldApi::test_scenario_is_alias_for_context_on_setup_and_teardown PASSED tests/test_old_api.py::testOldApi::test_second_unit PASSED tests/test_old_api.py::testOldApi::test_setup_with_context PASSED tests/test_old_api.py::testOldApi::test_setup_with_context_context_failing PASSED tests/test_old_api.py::testOldApi::test_teardown_with_context PASSED tests/test_old_api.py::testOldApi::test_that_at_key_equals PASSED tests/test_old_api.py::testOldApi::test_that_checking_all_atributes PASSED tests/test_old_api.py::testOldApi::test_that_checking_all_atributes_of_range PASSED tests/test_old_api.py::testOldApi::test_that_checking_all_elements PASSED tests/test_old_api.py::testOldApi::test_that_checking_each_matches PASSED tests/test_old_api.py::testOldApi::test_that_contains_dictionary_keys PASSED tests/test_old_api.py::testOldApi::test_that_contains_list PASSED tests/test_old_api.py::testOldApi::test_that_contains_none PASSED tests/test_old_api.py::testOldApi::test_that_contains_set PASSED tests/test_old_api.py::testOldApi::test_that_contains_string PASSED tests/test_old_api.py::testOldApi::test_that_contains_tuple PASSED tests/test_old_api.py::testOldApi::test_that_differs PASSED tests/test_old_api.py::testOldApi::test_that_does_not_raise_with_args PASSED tests/test_old_api.py::testOldApi::test_that_doesnt_contain_string PASSED tests/test_old_api.py::testOldApi::test_that_equals PASSED tests/test_old_api.py::testOldApi::test_that_equals_fails PASSED tests/test_old_api.py::testOldApi::test_that_has PASSED tests/test_old_api.py::testOldApi::test_that_is_a PASSED tests/test_old_api.py::testOldApi::test_that_is_a_matcher_should_absorb_callables_to_be_used_as_matcher PASSED tests/test_old_api.py::testOldApi::test_that_len_greater_than PASSED tests/test_old_api.py::testOldApi::test_that_len_greater_than_or_equals PASSED tests/test_old_api.py::testOldApi::test_that_len_greater_than_or_equals_should_raise_assertion_error PASSED tests/test_old_api.py::testOldApi::test_that_len_greater_than_should_raise_assertion_error PASSED tests/test_old_api.py::testOldApi::test_that_len_is PASSED tests/test_old_api.py::testOldApi::test_that_len_lower_than PASSED tests/test_old_api.py::testOldApi::test_that_len_lower_than_or_equals PASSED tests/test_old_api.py::testOldApi::test_that_len_lower_than_or_equals_should_raise_assertion_error PASSED tests/test_old_api.py::testOldApi::test_that_len_lower_than_should_raise_assertion_error PASSED tests/test_old_api.py::testOldApi::test_that_looks_like PASSED tests/test_old_api.py::testOldApi::test_that_none_contains_string FAILED =================================== FAILURES =================================== __________________ testOldApi.test_that_none_contains_string ___________________ self = <tests.test_old_api.testOldApi testMethod=test_that_none_contains_string> def test_that_none_contains_string(self): "that(None).contains('bungalow')" try: > assert that(None).contains('bungalow') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_old_api.py:562: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <sure.old.AssertionHelper object at 0x7f9647e86650>, what = 'bungalow' def contains(self, what): > assert what in self._src, '%r should be in %r' % (what, self._src) ^^^^^^^^^^^^^^^^^ E TypeError: argument of type 'NoneType' is not a container or iterable sure/old.py:434: TypeError During handling of the above exception, another exception occurred: self = <tests.test_old_api.testOldApi testMethod=test_that_none_contains_string> def test_that_none_contains_string(self): "that(None).contains('bungalow')" try: assert that(None).contains('bungalow') assert False, 'should not reach here' except Exception as e: error_msg = "argument of type 'NoneType' is not iterable" if is_cpython else "'NoneType' object is not iterable" > self.assertEqual( text_type(e), error_msg ) E AssertionError: "argument of type 'NoneType' is not a container or iterable" != "argument of type 'NoneType' is not iterable" E - argument of type 'NoneType' is not a container or iterable E ? --------------- E + argument of type 'NoneType' is not iterable tests/test_old_api.py:566: AssertionError =============================== warnings summary =============================== tests/test_assertion_builder.py:547 /<<PKGBUILDDIR>>/tests/test_assertion_builder.py:547: SyntaxWarning: "\w" is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\w"? A raw string is also an option. ("expect('some string').to.match(r'\w{4} \w{6}') matches regex") tests/test_assertion_builder.py:560 /<<PKGBUILDDIR>>/tests/test_assertion_builder.py:560: SyntaxWarning: "\d" is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\d"? A raw string is also an option. "'some string' doesn't match the regular expression /\d{2} \d{4}/") -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ---------- coverage: platform linux, python 3.14.2-final-0 ----------- Name Stmts Miss Cover Missing -------------------------------------------------- sure/__init__.py 628 91 86% 84-88, 100-101, 132, 182-229, 258-275, 347-371, 417, 503, 540, 562, 684-689, 760, 769-770, 773, 857-864, 868-874, 906-914, 923-924, 1110, 1144-1145, 1148, 1154-1155, 1158-1165 sure/cli.py 9 9 0% 1-29 sure/compat.py 71 22 69% 10-11, 17-37, 60, 66-67, 102-104 sure/core.py 161 10 94% 23-24, 152, 162, 220, 259, 265-266, 279-280 sure/deprecated.py 4 0 100% sure/magic.py 22 2 91% 51, 64 sure/old.py 263 34 87% 33-34, 62, 93, 105, 123, 140, 145, 157-184, 214, 238, 392-393, 399-401, 407-416, 420 sure/registry.py 2 0 100% sure/stubs.py 6 6 0% 19-38 sure/terminal.py 29 10 66% 27-31, 34, 42, 48, 54, 58-60 sure/version.py 1 1 0% 1 -------------------------------------------------- TOTAL 1196 185 85% =========================== short test summary info ============================ FAILED tests/test_old_api.py::testOldApi::test_that_none_contains_string - AssertionError: "argument of type 'NoneType' is not a container or iterable" != "argument of type 'NoneType' is not iterable" - argument of type 'NoneType' is not a container or iterable ? --------------- + argument of type 'NoneType' is not iterable !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! =========== 1 failed, 119 passed, 3 deselected, 2 warnings in 0.51s ============ make[1]: *** [debian/rules:23: override_dh_auto_test] Error 1 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:7: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

