Package: src:python-pytest-subtests Version: 0.15.0-1 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-pytest-subtests, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild 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 I: pybuild plugin_pyproject:131: Building wheel for python3.14 with "build" module I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pytest-subtests * Building wheel... /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. [... snipped ...] def test_foo(self): for i in range(10): with self.subTest("custom message", i=i): if i < 4: self.skipTest(f"skip subtest i={i}") > assert i < 4 E AssertionError: assert 7 < 4 test_skip_with_failure_and_non_subskip.py:10: AssertionError __________________________________________________________________________________ T.test_foo [custom message] (i=8) ___________________________________________________________________________________ self = <test_skip_with_failure_and_non_subskip.T testMethod=test_foo> def test_foo(self): for i in range(10): with self.subTest("custom message", i=i): if i < 4: self.skipTest(f"skip subtest i={i}") > assert i < 4 E AssertionError: assert 8 < 4 test_skip_with_failure_and_non_subskip.py:10: AssertionError __________________________________________________________________________________ T.test_foo [custom message] (i=9) ___________________________________________________________________________________ self = <test_skip_with_failure_and_non_subskip.T testMethod=test_foo> def test_foo(self): for i in range(10): with self.subTest("custom message", i=i): if i < 4: self.skipTest(f"skip subtest i={i}") > assert i < 4 E AssertionError: assert 9 < 4 test_skip_with_failure_and_non_subskip.py:10: AssertionError ======================================================================================= short test summary info ======================================================================================== SUBSKIPPED[custom message] (i=0) [1] test_skip_with_failure_and_non_subskip.py:5: skip subtest i=0 SUBSKIPPED[custom message] (i=0) [1] test_skip_with_failure_and_non_subskip.py:5: skip subtest i=1 SUBSKIPPED[custom message] (i=0) [1] test_skip_with_failure_and_non_subskip.py:5: skip subtest i=2 SUBSKIPPED[custom message] (i=0) [1] test_skip_with_failure_and_non_subskip.py:5: skip subtest i=3 SUBSKIPPED[custom message] (i=0) [1] test_skip_with_failure_and_non_subskip.py:5: skip the test SUBFAILED[custom message] (i=4) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 4 < 4 SUBFAILED[custom message] (i=5) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 5 < 4 SUBFAILED[custom message] (i=6) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 6 < 4 SUBFAILED[custom message] (i=7) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 7 < 4 SUBFAILED[custom message] (i=8) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 8 < 4 SUBFAILED[custom message] (i=9) test_skip_with_failure_and_non_subskip.py::T::test_foo - AssertionError: assert 9 < 4 ===================================================================================== 6 failed, 5 skipped in 0.01s ===================================================================================== _________________________ TestLogging.test_no_logging __________________________ self = <test_subtests.TestLogging object at 0x7f8e4be76060> pytester = <Pytester PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_no_logging0')> def test_no_logging(self, pytester: pytest.Pytester) -> None: pytester.makepyfile( """ import logging def test(subtests): logging.info("start log line") with subtests.test("sub passing"): logging.info("inside %s", "passing log line") with subtests.test("sub failing"): logging.info("inside %s", "failing log line") assert False logging.info("end log line") """ ) result = pytester.runpytest("-p no:logging") > result.stdout.fnmatch_lines( [ "*1 passed*", ] ) E Failed: nomatch: '*1 passed*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-sbuild/pytest-1/test_no_logging0' E and: 'plugins: typeguard-4.4.4, xdist-3.8.0' E and: 'collected 1 item' E and: '' E and: 'test_no_logging.py uF [100%]' E and: '' E and: '=================================== FAILURES ===================================' E and: '______________________________ test [sub failing] ______________________________' E and: '' E and: 'subtests = <_pytest.subtests.Subtests object at 0x7f8e4a102cf0>' E and: '' E and: ' def test(subtests):' E and: ' logging.info("start log line")' E and: ' ' E and: ' with subtests.test("sub passing"):' E and: ' logging.info("inside %s", "passing log line")' E and: ' ' E and: ' with subtests.test("sub failing"):' E and: ' logging.info("inside %s", "failing log line")' E and: '> assert False' E and: 'E assert False' E and: '' E and: 'test_no_logging.py:11: AssertionError' E and: '_____________________________________ test _____________________________________' E and: 'contains 1 failed subtest' E and: '=========================== short test summary info ============================' E and: 'SUBFAILED[sub failing] test_no_logging.py::test - assert False' E and: 'FAILED test_no_logging.py::test - contains 1 failed subtest' E and: '============================== 2 failed in 0.00s ===============================' E remains unmatched: '*1 passed*' /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-subtests/build/tests/test_subtests.py:738: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-sbuild/pytest-1/test_no_logging0 plugins: typeguard-4.4.4, xdist-3.8.0 collected 1 item test_no_logging.py uF [100%] =================================== FAILURES =================================== ______________________________ test [sub failing] ______________________________ subtests = <_pytest.subtests.Subtests object at 0x7f8e4a102cf0> def test(subtests): logging.info("start log line") with subtests.test("sub passing"): logging.info("inside %s", "passing log line") with subtests.test("sub failing"): logging.info("inside %s", "failing log line") > assert False E assert False test_no_logging.py:11: AssertionError _____________________________________ test _____________________________________ contains 1 failed subtest =========================== short test summary info ============================ SUBFAILED[sub failing] test_no_logging.py::test - assert False FAILED test_no_logging.py::test - contains 1 failed subtest ============================== 2 failed in 0.00s =============================== ________________________________ test_exitfirst ________________________________ pytester = <Pytester PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_exitfirst0')> def test_exitfirst(pytester: pytest.Pytester) -> None: """ Validate that when passing --exitfirst the test exits after the first failed subtest. """ pytester.makepyfile( """ def test_foo(subtests): with subtests.test("sub1"): assert False with subtests.test("sub2"): assert False """ ) result = pytester.runpytest("--exitfirst") assert result.parseoutcomes()["failed"] == 2 > result.stdout.fnmatch_lines( [ "*[[]sub1[]] SUBFAIL test_exitfirst.py::test_foo - assert False*", "FAILED test_exitfirst.py::test_foo - assert False", "* stopping after 2 failures*", ], consecutive=True, ) E Failed: nomatch: '*[[]sub1[]] SUBFAIL test_exitfirst.py::test_foo - assert False*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-sbuild/pytest-1/test_exitfirst0' E and: 'plugins: typeguard-4.4.4, xdist-3.8.0' E and: 'collected 1 item' E and: '' E and: 'test_exitfirst.py uF' E and: '' E and: '=================================== FAILURES ===================================' E and: '_______________________________ test_foo [sub1] ________________________________' E and: '' E and: 'subtests = <_pytest.subtests.Subtests object at 0x7f8e49f28d10>' E and: '' E and: ' def test_foo(subtests):' E and: ' with subtests.test("sub1"):' E and: '> assert False' E and: 'E assert False' E and: '' E and: 'test_exitfirst.py:3: AssertionError' E and: '___________________________________ test_foo ___________________________________' E and: '' E and: 'subtests = <_pytest.subtests.Subtests object at 0x7f8e49f28d10>' E and: '' E and: ' def test_foo(subtests):' E and: ' with subtests.test("sub1"):' E and: '> assert False' E and: 'E assert False' E and: '' E and: 'test_exitfirst.py:3: AssertionError' E and: '=========================== short test summary info ============================' E and: 'SUBFAILED[sub1] test_exitfirst.py::test_foo - assert False' E and: 'FAILED test_exitfirst.py::test_foo - assert False' E and: '!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 2 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!' E and: '============================== 2 failed in 0.01s ===============================' E remains unmatched: '*[[]sub1[]] SUBFAIL test_exitfirst.py::test_foo - assert False*' /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-subtests/build/tests/test_subtests.py:828: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-sbuild/pytest-1/test_exitfirst0 plugins: typeguard-4.4.4, xdist-3.8.0 collected 1 item test_exitfirst.py uF =================================== FAILURES =================================== _______________________________ test_foo [sub1] ________________________________ subtests = <_pytest.subtests.Subtests object at 0x7f8e49f28d10> def test_foo(subtests): with subtests.test("sub1"): > assert False E assert False test_exitfirst.py:3: AssertionError ___________________________________ test_foo ___________________________________ subtests = <_pytest.subtests.Subtests object at 0x7f8e49f28d10> def test_foo(subtests): with subtests.test("sub1"): > assert False E assert False test_exitfirst.py:3: AssertionError =========================== short test summary info ============================ SUBFAILED[sub1] test_exitfirst.py::test_foo - assert False FAILED test_exitfirst.py::test_foo - assert False !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 2 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! ============================== 2 failed in 0.01s =============================== =========================== short test summary info ============================ XFAIL tests/test_subtests.py::TestSubTest::test_skip[pytest-normal] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_skip[pytest-xdist] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_xfail[unittest] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_xfail[pytest-normal] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_xfail[pytest-xdist] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_skip_with_failure[pytest-xdist] - Not producing the expected results (#5) XFAIL tests/test_subtests.py::TestSubTest::test_skip_with_failure_and_non_subskip[pytest-xdist] - Not producing the expected results (#5) FAILED tests/test_subtests.py::TestFixture::test_simple_terminal_normal[normal] FAILED tests/test_subtests.py::TestFixture::test_simple_terminal_normal[xdist] FAILED tests/test_subtests.py::TestFixture::test_simple_terminal_verbose[normal] FAILED tests/test_subtests.py::TestFixture::test_simple_terminal_verbose[xdist] FAILED tests/test_subtests.py::TestFixture::test_skip[normal] - Failed: nomat... FAILED tests/test_subtests.py::TestFixture::test_skip[xdist] - Failed: nomatc... FAILED tests/test_subtests.py::TestFixture::test_xfail[normal] - Failed: noma... FAILED tests/test_subtests.py::TestFixture::test_xfail[xdist] - Failed: nomat... FAILED tests/test_subtests.py::TestFixture::test_typing_exported[normal] - Fa... FAILED tests/test_subtests.py::TestFixture::test_typing_exported[xdist] - Fai... FAILED tests/test_subtests.py::TestFixture::test_no_subtests_reports[normal] FAILED tests/test_subtests.py::TestFixture::test_no_subtests_reports[xdist] FAILED tests/test_subtests.py::TestSubTest::test_simple_terminal_normal[pytest-normal] FAILED tests/test_subtests.py::TestSubTest::test_simple_terminal_normal[pytest-xdist] FAILED tests/test_subtests.py::TestSubTest::test_simple_terminal_verbose[pytest-normal] FAILED tests/test_subtests.py::TestSubTest::test_simple_terminal_verbose[pytest-xdist] FAILED tests/test_subtests.py::TestSubTest::test_skip_with_failure[pytest-normal] FAILED tests/test_subtests.py::TestSubTest::test_skip_with_failure_and_non_subskip[pytest-normal] FAILED tests/test_subtests.py::TestLogging::test_no_logging - Failed: nomatch... FAILED tests/test_subtests.py::test_exitfirst - Failed: nomatch: '*[[]sub1[]]... =================== 20 failed, 14 passed, 7 xfailed in 2.60s =================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pytest-subtests/build; python3.13 -m pytest tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:9: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

