Source: pytest-rerunfailures Version: 12.0-1 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20240615 ftbfs-trixie
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > 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:129: Building wheel for python3.12 with "build" > module > I: pybuild base:311: python3.12 -m build --skip-dependency-check > --no-isolation --wheel --outdir > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-rerunfailures > * Building wheel... > running bdist_wheel > running build > running build_py > creating build > creating build/lib > copying pytest_rerunfailures.py -> build/lib > installing to build/bdist.linux-x86_64/wheel > running install > running install_lib > creating build/bdist.linux-x86_64 > creating build/bdist.linux-x86_64/wheel > copying build/lib/pytest_rerunfailures.py -> build/bdist.linux-x86_64/wheel > running install_egg_info > running egg_info > creating pytest_rerunfailures.egg-info > writing pytest_rerunfailures.egg-info/PKG-INFO > writing dependency_links to pytest_rerunfailures.egg-info/dependency_links.txt > writing entry points to pytest_rerunfailures.egg-info/entry_points.txt > writing requirements to pytest_rerunfailures.egg-info/requires.txt > writing top-level names to pytest_rerunfailures.egg-info/top_level.txt > writing manifest file 'pytest_rerunfailures.egg-info/SOURCES.txt' > reading manifest file 'pytest_rerunfailures.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > adding license file 'LICENSE' > writing manifest file 'pytest_rerunfailures.egg-info/SOURCES.txt' > Copying pytest_rerunfailures.egg-info to > build/bdist.linux-x86_64/wheel/pytest_rerunfailures-12.0.egg-info > running install_scripts > creating > build/bdist.linux-x86_64/wheel/pytest_rerunfailures-12.0.dist-info/WHEEL > creating > '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-rerunfailures/.tmp-ref1teng/pytest_rerunfailures-12.0-py3-none-any.whl' > and adding 'build/bdist.linux-x86_64/wheel' to it > adding 'pytest_rerunfailures.py' > adding 'pytest_rerunfailures-12.0.dist-info/LICENSE' > adding 'pytest_rerunfailures-12.0.dist-info/METADATA' > adding 'pytest_rerunfailures-12.0.dist-info/WHEEL' > adding 'pytest_rerunfailures-12.0.dist-info/entry_points.txt' > adding 'pytest_rerunfailures-12.0.dist-info/top_level.txt' > adding 'pytest_rerunfailures-12.0.dist-info/RECORD' > removing build/bdist.linux-x86_64/wheel > Successfully built pytest_rerunfailures-12.0-py3-none-any.whl > I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with > "installer" module > I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" > module > I: pybuild base:311: python3.11 -m build --skip-dependency-check > --no-isolation --wheel --outdir > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-rerunfailures > * Building wheel... > running bdist_wheel > running build > running build_py > installing to build/bdist.linux-x86_64/wheel > running install > running install_lib > creating build/bdist.linux-x86_64/wheel > copying build/lib/pytest_rerunfailures.py -> build/bdist.linux-x86_64/wheel > running install_egg_info > running egg_info > writing pytest_rerunfailures.egg-info/PKG-INFO > writing dependency_links to pytest_rerunfailures.egg-info/dependency_links.txt > writing entry points to pytest_rerunfailures.egg-info/entry_points.txt > writing requirements to pytest_rerunfailures.egg-info/requires.txt > writing top-level names to pytest_rerunfailures.egg-info/top_level.txt > reading manifest file 'pytest_rerunfailures.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > adding license file 'LICENSE' > writing manifest file 'pytest_rerunfailures.egg-info/SOURCES.txt' > Copying pytest_rerunfailures.egg-info to > build/bdist.linux-x86_64/wheel/pytest_rerunfailures-12.0.egg-info > running install_scripts > creating > build/bdist.linux-x86_64/wheel/pytest_rerunfailures-12.0.dist-info/WHEEL > creating > '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-rerunfailures/.tmp-r22l5e9l/pytest_rerunfailures-12.0-py3-none-any.whl' > and adding 'build/bdist.linux-x86_64/wheel' to it > adding 'pytest_rerunfailures.py' > adding 'pytest_rerunfailures-12.0.dist-info/LICENSE' > adding 'pytest_rerunfailures-12.0.dist-info/METADATA' > adding 'pytest_rerunfailures-12.0.dist-info/WHEEL' > adding 'pytest_rerunfailures-12.0.dist-info/entry_points.txt' > adding 'pytest_rerunfailures-12.0.dist-info/top_level.txt' > adding 'pytest_rerunfailures-12.0.dist-info/RECORD' > removing build/bdist.linux-x86_64/wheel > Successfully built pytest_rerunfailures-12.0-py3-none-any.whl > I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with > "installer" module > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:311: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-rerunfailures/build; > python3.12 -m pytest > ============================= test session starts > ============================== > platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0 > rootdir: /<<PKGBUILDDIR>> > configfile: pyproject.toml > plugins: rerunfailures-12.0 > collected 101 items > > test_pytest_rerunfailures.py ...........s........s...................... [ > 42%] > .........................................................F > [100%] > > =================================== FAILURES > =================================== > _________________ test_run_session_teardown_once_after_reruns > __________________ > > testdir = <Testdir > local('/tmp/pytest-of-user42/pytest-0/test_run_session_teardown_once_after_reruns0')> > > def test_run_session_teardown_once_after_reruns(testdir): > testdir.makepyfile( > """ > import logging > import pytest > > from unittest import TestCase > > @pytest.fixture(scope='session', autouse=True) > def session_fixture(): > logging.info('session setup') > yield > logging.info('session teardown') > > @pytest.fixture(scope='class', autouse=True) > def class_fixture(): > logging.info('class setup') > yield > logging.info('class teardown') > > @pytest.fixture(scope='function', autouse=True) > def function_fixture(): > logging.info('function setup') > yield > logging.info('function teardown') > > @pytest.fixture(scope='function') > def function_skip_fixture(): > logging.info('skip fixture setup') > pytest.skip('some reason') > yield > logging.info('skip fixture teardown') > > @pytest.fixture(scope='function') > def function_setup_fail_fixture(): > logging.info('fail fixture setup') > assert False > yield > logging.info('fail fixture teardown') > > class TestFirstPassLastFail: > > @staticmethod > def test_1(): > logging.info("TestFirstPassLastFail 1") > > @staticmethod > def test_2(): > logging.info("TestFirstPassLastFail 2") > assert False > > class TestFirstFailLastPass: > > @staticmethod > def test_1(): > logging.info("TestFirstFailLastPass 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestFirstFailLastPass 2") > > class TestSkipFirst: > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_1(): > logging.info("TestSkipFirst 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestSkipFirst 2") > assert False > > class TestSkipLast: > @staticmethod > def test_1(): > logging.info("TestSkipLast 1") > assert False > > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_2(): > logging.info("TestSkipLast 2") > assert False > > class TestSkipFixture: > @staticmethod > def test_1(function_skip_fixture): > logging.info("TestSkipFixture 1") > > class TestSetupFailed: > @staticmethod > def test_1(function_setup_fail_fixture): > logging.info("TestSetupFailed 1") > > class TestTestCaseFailFirstFailLast(TestCase): > > @staticmethod > def test_1(): > logging.info("TestTestCaseFailFirstFailLast 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestTestCaseFailFirstFailLast 2") > assert False > > class TestTestCaseSkipFirst(TestCase): > > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_1(): > logging.info("TestTestCaseSkipFirst 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestTestCaseSkipFirst 2") > assert False > > class TestTestCaseSkipLast(TestCase): > > @staticmethod > def test_1(): > logging.info("TestTestCaseSkipLast 1") > assert False > > @staticmethod > @pytest.mark.skipif(True, reason="Some reason") > def test_2(): > logging.info("TestTestCaseSkipLast 2") > assert False""" > ) > import logging > > logging.info = mock.MagicMock() > > result = testdir.runpytest("--reruns", "2") > expected_calls = [ > mock.call("session setup"), > # TestFirstPassLastFail > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestFirstFailLastPass > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipFirst > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipFixture > mock.call("class setup"), > mock.call("function setup"), > mock.call("skip fixture setup"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSetupFailed > mock.call("class setup"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseFailFirstFailLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseSkipFirst > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseSkipLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("class teardown"), > mock.call("session teardown"), > ] > > > logging.info.assert_has_calls(expected_calls, any_order=False) > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-rerunfailures/build/test_pytest_rerunfailures.py:1076: > > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock id='139854400045904'> > calls = [call('session setup'), call('class setup'), call('function setup'), > call('TestFirstPassLastFail 1'), call('function teardown'), call('function > setup'), ...] > any_order = False > > def assert_has_calls(self, calls, any_order=False): > """assert the mock has been called with the specified calls. > The `mock_calls` list is checked for the calls. > > If `any_order` is False (the default) then the calls must be > sequential. There can be extra calls before or after the > specified calls. > > If `any_order` is True then the calls can be in any order, but > they must all appear in `mock_calls`.""" > expected = [self._call_matcher(c) for c in calls] > cause = next((e for e in expected if isinstance(e, Exception)), None) > all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls) > if not any_order: > if expected not in all_calls: > if cause is None: > problem = 'Calls not found.' > else: > problem = ('Error processing expected calls.\n' > 'Errors: {}').format( > [e if isinstance(e, Exception) else None > for e in expected]) > > raise AssertionError( > f'{problem}\n' > f'Expected: {_CallList(calls)}' > f'{self._calls_repr(prefix=" Actual").rstrip(".")}' > ) from cause > E AssertionError: Calls not found. > E Expected: [call('session setup'), > E call('class setup'), > E call('function setup'), > E call('TestFirstPassLastFail 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('skip fixture setup'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('class teardown'), > E call('session teardown')] > E Actual: [call('session setup'), > E call('class setup'), > E call('function setup'), > E call('TestFirstPassLastFail 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('skip fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown')] > > /usr/lib/python3.12/unittest/mock.py:981: AssertionError > ----------------------------- Captured stdout call > ----------------------------- > ============================= test session starts > ============================== > platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0 > rootdir: > /tmp/pytest-of-user42/pytest-0/test_run_session_teardown_once_after_reruns0 > plugins: rerunfailures-12.0 > collected 16 items > > test_run_session_teardown_once_after_reruns.py .RRFRRF.sRRFRRFssRRERRFRR [ > 75%] > FsRRFRRFs > [100%] > > ==================================== ERRORS > ==================================== > ___________________ ERROR at setup of TestSetupFailed.test_1 > ___________________ > > @pytest.fixture(scope='function') > def function_setup_fail_fixture(): > logging.info('fail fixture setup') > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:34: AssertionError > =================================== FAILURES > =================================== > _________________________ TestFirstPassLastFail.test_2 > _________________________ > > @staticmethod > def test_2(): > logging.info("TestFirstPassLastFail 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:47: AssertionError > _________________________ TestFirstFailLastPass.test_1 > _________________________ > > @staticmethod > def test_1(): > logging.info("TestFirstFailLastPass 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:54: AssertionError > _____________________________ TestSkipFirst.test_2 > _____________________________ > > @staticmethod > def test_2(): > logging.info("TestSkipFirst 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:70: AssertionError > _____________________________ TestSkipLast.test_1 > ______________________________ > > @staticmethod > def test_1(): > logging.info("TestSkipLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:76: AssertionError > _____________________ TestTestCaseFailFirstFailLast.test_1 > _____________________ > > @staticmethod > def test_1(): > logging.info("TestTestCaseFailFirstFailLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:99: AssertionError > _____________________ TestTestCaseFailFirstFailLast.test_2 > _____________________ > > @staticmethod > def test_2(): > logging.info("TestTestCaseFailFirstFailLast 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:104: AssertionError > _________________________ TestTestCaseSkipFirst.test_2 > _________________________ > > @staticmethod > def test_2(): > logging.info("TestTestCaseSkipFirst 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:117: AssertionError > _________________________ TestTestCaseSkipLast.test_1 > __________________________ > > @staticmethod > def test_1(): > logging.info("TestTestCaseSkipLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:124: AssertionError > =========================== short test summary info > ============================ > FAILED > test_run_session_teardown_once_after_reruns.py::TestFirstPassLastFail::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestFirstFailLastPass::test_1 > FAILED test_run_session_teardown_once_after_reruns.py::TestSkipFirst::test_2 > FAILED test_run_session_teardown_once_after_reruns.py::TestSkipLast::test_1 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseFailFirstFailLast::test_1 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseFailFirstFailLast::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseSkipFirst::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseSkipLast::test_1 > ERROR test_run_session_teardown_once_after_reruns.py::TestSetupFailed::test_1 > ========== 8 failed, 2 passed, 5 skipped, 1 error, 18 rerun in 0.15s > =========== > =========================== short test summary info > ============================ > FAILED > test_pytest_rerunfailures.py::test_run_session_teardown_once_after_reruns > =================== 1 failed, 98 passed, 2 skipped in 4.54s > ==================== > E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pytest-rerunfailures/build; > python3.12 -m pytest > I: pybuild base:311: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-rerunfailures/build; > python3.11 -m pytest > ============================= test session starts > ============================== > platform linux -- Python 3.11.9, pytest-8.2.2, pluggy-1.5.0 > rootdir: /<<PKGBUILDDIR>> > configfile: pyproject.toml > plugins: rerunfailures-12.0 > collected 101 items > > test_pytest_rerunfailures.py ...........s........s...................... [ > 42%] > .........................................................F > [100%] > > =================================== FAILURES > =================================== > _________________ test_run_session_teardown_once_after_reruns > __________________ > > testdir = <Testdir > local('/tmp/pytest-of-user42/pytest-1/test_run_session_teardown_once_after_reruns0')> > > def test_run_session_teardown_once_after_reruns(testdir): > testdir.makepyfile( > """ > import logging > import pytest > > from unittest import TestCase > > @pytest.fixture(scope='session', autouse=True) > def session_fixture(): > logging.info('session setup') > yield > logging.info('session teardown') > > @pytest.fixture(scope='class', autouse=True) > def class_fixture(): > logging.info('class setup') > yield > logging.info('class teardown') > > @pytest.fixture(scope='function', autouse=True) > def function_fixture(): > logging.info('function setup') > yield > logging.info('function teardown') > > @pytest.fixture(scope='function') > def function_skip_fixture(): > logging.info('skip fixture setup') > pytest.skip('some reason') > yield > logging.info('skip fixture teardown') > > @pytest.fixture(scope='function') > def function_setup_fail_fixture(): > logging.info('fail fixture setup') > assert False > yield > logging.info('fail fixture teardown') > > class TestFirstPassLastFail: > > @staticmethod > def test_1(): > logging.info("TestFirstPassLastFail 1") > > @staticmethod > def test_2(): > logging.info("TestFirstPassLastFail 2") > assert False > > class TestFirstFailLastPass: > > @staticmethod > def test_1(): > logging.info("TestFirstFailLastPass 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestFirstFailLastPass 2") > > class TestSkipFirst: > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_1(): > logging.info("TestSkipFirst 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestSkipFirst 2") > assert False > > class TestSkipLast: > @staticmethod > def test_1(): > logging.info("TestSkipLast 1") > assert False > > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_2(): > logging.info("TestSkipLast 2") > assert False > > class TestSkipFixture: > @staticmethod > def test_1(function_skip_fixture): > logging.info("TestSkipFixture 1") > > class TestSetupFailed: > @staticmethod > def test_1(function_setup_fail_fixture): > logging.info("TestSetupFailed 1") > > class TestTestCaseFailFirstFailLast(TestCase): > > @staticmethod > def test_1(): > logging.info("TestTestCaseFailFirstFailLast 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestTestCaseFailFirstFailLast 2") > assert False > > class TestTestCaseSkipFirst(TestCase): > > @staticmethod > @pytest.mark.skipif(True, reason='Some reason') > def test_1(): > logging.info("TestTestCaseSkipFirst 1") > assert False > > @staticmethod > def test_2(): > logging.info("TestTestCaseSkipFirst 2") > assert False > > class TestTestCaseSkipLast(TestCase): > > @staticmethod > def test_1(): > logging.info("TestTestCaseSkipLast 1") > assert False > > @staticmethod > @pytest.mark.skipif(True, reason="Some reason") > def test_2(): > logging.info("TestTestCaseSkipLast 2") > assert False""" > ) > import logging > > logging.info = mock.MagicMock() > > result = testdir.runpytest("--reruns", "2") > expected_calls = [ > mock.call("session setup"), > # TestFirstPassLastFail > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstPassLastFail 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestFirstFailLastPass > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestFirstFailLastPass 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipFirst > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipFirst 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestSkipLast 1"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSkipFixture > mock.call("class setup"), > mock.call("function setup"), > mock.call("skip fixture setup"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestSetupFailed > mock.call("class setup"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("fail fixture setup"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseFailFirstFailLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseFailFirstFailLast 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseSkipFirst > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipFirst 2"), > mock.call("function teardown"), > mock.call("class teardown"), > # TestTestCaseSkipLast > mock.call("class setup"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("function setup"), > mock.call("TestTestCaseSkipLast 1"), > mock.call("function teardown"), > mock.call("class teardown"), > mock.call("session teardown"), > ] > > > logging.info.assert_has_calls(expected_calls, any_order=False) > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-rerunfailures/build/test_pytest_rerunfailures.py:1076: > > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock id='139634796037456'> > calls = [call('session setup'), call('class setup'), call('function setup'), > call('TestFirstPassLastFail 1'), call('function teardown'), call('function > setup'), ...] > any_order = False > > def assert_has_calls(self, calls, any_order=False): > """assert the mock has been called with the specified calls. > The `mock_calls` list is checked for the calls. > > If `any_order` is False (the default) then the calls must be > sequential. There can be extra calls before or after the > specified calls. > > If `any_order` is True then the calls can be in any order, but > they must all appear in `mock_calls`.""" > expected = [self._call_matcher(c) for c in calls] > cause = next((e for e in expected if isinstance(e, Exception)), None) > all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls) > if not any_order: > if expected not in all_calls: > if cause is None: > problem = 'Calls not found.' > else: > problem = ('Error processing expected calls.\n' > 'Errors: {}').format( > [e if isinstance(e, Exception) else None > for e in expected]) > > raise AssertionError( > f'{problem}\n' > f'Expected: {_CallList(calls)}' > f'{self._calls_repr(prefix=" Actual").rstrip(".")}' > ) from cause > E AssertionError: Calls not found. > E Expected: [call('session setup'), > E call('class setup'), > E call('function setup'), > E call('TestFirstPassLastFail 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('skip fixture setup'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('class teardown'), > E call('class setup'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('class teardown'), > E call('session teardown')] > E Actual: [call('session setup'), > E call('class setup'), > E call('function setup'), > E call('TestFirstPassLastFail 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstPassLastFail 2'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 1'), > E call('function teardown'), > E call('function setup'), > E call('TestFirstFailLastPass 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('skip fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('fail fixture setup'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseFailFirstFailLast 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipFirst 2'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown'), > E call('function setup'), > E call('TestTestCaseSkipLast 1'), > E call('function teardown')] > > /usr/lib/python3.11/unittest/mock.py:976: AssertionError > ----------------------------- Captured stdout call > ----------------------------- > ============================= test session starts > ============================== > platform linux -- Python 3.11.9, pytest-8.2.2, pluggy-1.5.0 > rootdir: > /tmp/pytest-of-user42/pytest-1/test_run_session_teardown_once_after_reruns0 > plugins: rerunfailures-12.0 > collected 16 items > > test_run_session_teardown_once_after_reruns.py .RRFRRF.sRRFRRFssRRERRFRR [ > 75%] > FsRRFRRFs > [100%] > > ==================================== ERRORS > ==================================== > ___________________ ERROR at setup of TestSetupFailed.test_1 > ___________________ > > @pytest.fixture(scope='function') > def function_setup_fail_fixture(): > logging.info('fail fixture setup') > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:34: AssertionError > =================================== FAILURES > =================================== > _________________________ TestFirstPassLastFail.test_2 > _________________________ > > @staticmethod > def test_2(): > logging.info("TestFirstPassLastFail 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:47: AssertionError > _________________________ TestFirstFailLastPass.test_1 > _________________________ > > @staticmethod > def test_1(): > logging.info("TestFirstFailLastPass 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:54: AssertionError > _____________________________ TestSkipFirst.test_2 > _____________________________ > > @staticmethod > def test_2(): > logging.info("TestSkipFirst 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:70: AssertionError > _____________________________ TestSkipLast.test_1 > ______________________________ > > @staticmethod > def test_1(): > logging.info("TestSkipLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:76: AssertionError > _____________________ TestTestCaseFailFirstFailLast.test_1 > _____________________ > > @staticmethod > def test_1(): > logging.info("TestTestCaseFailFirstFailLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:99: AssertionError > _____________________ TestTestCaseFailFirstFailLast.test_2 > _____________________ > > @staticmethod > def test_2(): > logging.info("TestTestCaseFailFirstFailLast 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:104: AssertionError > _________________________ TestTestCaseSkipFirst.test_2 > _________________________ > > @staticmethod > def test_2(): > logging.info("TestTestCaseSkipFirst 2") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:117: AssertionError > _________________________ TestTestCaseSkipLast.test_1 > __________________________ > > @staticmethod > def test_1(): > logging.info("TestTestCaseSkipLast 1") > > assert False > E assert False > > test_run_session_teardown_once_after_reruns.py:124: AssertionError > =========================== short test summary info > ============================ > FAILED > test_run_session_teardown_once_after_reruns.py::TestFirstPassLastFail::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestFirstFailLastPass::test_1 > FAILED test_run_session_teardown_once_after_reruns.py::TestSkipFirst::test_2 > FAILED test_run_session_teardown_once_after_reruns.py::TestSkipLast::test_1 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseFailFirstFailLast::test_1 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseFailFirstFailLast::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseSkipFirst::test_2 > FAILED > test_run_session_teardown_once_after_reruns.py::TestTestCaseSkipLast::test_1 > ERROR test_run_session_teardown_once_after_reruns.py::TestSetupFailed::test_1 > ========== 8 failed, 2 passed, 5 skipped, 1 error, 18 rerun in 0.14s > =========== > =========================== short test summary info > ============================ > FAILED > test_pytest_rerunfailures.py::test_run_session_teardown_once_after_reruns > =================== 1 failed, 98 passed, 2 skipped in 4.97s > ==================== > E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-rerunfailures/build; > python3.11 -m pytest > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 > 3.11" returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2024/06/15/pytest-rerunfailures_12.0-1_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240615;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240615&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.