Debian Bug report logs - #1123302
python-pytest-subtests: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13

version graph

Package: src:python-pytest-subtests; Maintainer for src:python-pytest-subtests is Debian Python Team <team+python@tracker.debian.org>;

Reported by: Santiago Vila <sanvila@debian.org>

Date: Tue, 16 Dec 2025 19:49:54 UTC

Severity: serious

Tags: forky, ftbfs, sid, wontfix

Found in version python-pytest-subtests/0.15.0-1

Reply or subscribe to this bug.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, sanvila@debian.org (additional cc recipient for {1123302}), Debian Python Team <team+python@tracker.debian.org> (src:python-pytest-subtests for {1123302}):
Bug#1123302; Package src:python-pytest-subtests. (Tue, 16 Dec 2025 19:49:55 GMT) (full text, mbox, link).


Acknowledgement sent to Santiago Vila <sanvila@debian.org>:
New Bug report received and forwarded. Copy sent to sanvila@debian.org, team+python@tracker.debian.org. (Tue, 16 Dec 2025 19:49:55 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Santiago Vila <sanvila@debian.org>
To: Debian BTS <submit@bugs.debian.org>
Subject: python-pytest-subtests: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13
Date: Tue, 16 Dec 2025 19:48:58 +0000
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
--------------------------------------------------------------------------------




Added tag(s) wontfix. Request was from Alexandre Detiste <alexandre.detiste@gmail.com> to control@bugs.debian.org. (Mon, 29 Dec 2025 19:51:02 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Fri Jan 2 09:38:16 2026; Machine Name: bembo

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU General Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.