--- Begin Message ---
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.
--- End Message ---