Source: freedombox Version: 23.21 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20231212 ftbfs-trixie
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > PYBUILD_SYSTEM=custom \ > PYBUILD_TEST_ARGS="{interpreter} -m pytest" dh_auto_test > pybuild --test --test-pytest -i python{version} -p "3.12 3.11" > I: pybuild base:310: python3.12 -m pytest > ============================= test session starts > ============================== > platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0 > django: settings: plinth.tests.data.django_test_settings (from option) > rootdir: /<<PKGBUILDDIR>> > configfile: pyproject.toml > plugins: cov-4.1.0, django-4.5.2 > collected 623 items > > plinth/modules/backups/tests/test_api.py ........... [ > 1%] > plinth/modules/backups/tests/test_components.py .. [ > 2%] > plinth/modules/backups/tests/test_ssh_remotes.py ssss [ > 2%] > plinth/modules/backups/tests/test_store.py .... [ > 3%] > plinth/modules/users/tests/test_views.py ........................ [ > 7%] > plinth/tests/test_app.py ... [ > 7%] > plinth/tests/test_kvstore.py .... [ > 8%] > plinth/tests/test_middleware.py .. [ > 8%] > plinth/tests/test_notification.py ...................................... [ > 14%] > .................... [ > 17%] > plinth/tests/test_operation.py . [ > 18%] > plinth/modules/apache/tests/test_components.py ............. [ > 20%] > plinth/modules/apache/tests/test_uws.py . [ > 20%] > plinth/modules/backups/tests/test_backups.py sssssssss [ > 21%] > plinth/modules/backups/tests/test_components.py ........................ [ > 25%] > ..................... [ > 29%] > plinth/modules/backups/tests/test_schedule.py .......................... [ > 33%] > ... [ > 33%] > plinth/modules/backups/tests/test_validators.py ..... [ > 34%] > plinth/modules/bind/tests/test_bind.py .. [ > 34%] > plinth/modules/calibre/tests/test_privileged.py ... [ > 35%] > plinth/modules/calibre/tests/test_views.py ........ [ > 36%] > plinth/modules/config/tests/test_config.py ...ss. [ > 37%] > plinth/modules/coturn/tests/test_components.py ....... [ > 38%] > plinth/modules/deluge/tests/test_utils.py ... [ > 39%] > plinth/modules/diagnostics/tests/test_check.py .. [ > 39%] > plinth/modules/ejabberd/tests/test_turn_config.py ... [ > 39%] > plinth/modules/firewall/tests/test_components.py .......... [ > 41%] > plinth/modules/gitweb/tests/test_privileged.py .............. [ > 43%] > plinth/modules/gitweb/tests/test_views.py ................. [ > 46%] > plinth/modules/help/tests/test_views.py .........sss.s [ > 48%] > plinth/modules/i2p/tests/test_helpers.py ..... [ > 49%] > plinth/modules/i2p/tests/test_router_editor.py .... [ > 50%] > plinth/modules/kiwix/tests/test_privileged.py ... [ > 50%] > plinth/modules/kiwix/tests/test_validations.py . [ > 50%] > plinth/modules/kiwix/tests/test_views.py ...... [ > 51%] > plinth/modules/letsencrypt/tests/test_components.py .................... [ > 55%] > ..... [ > 55%] > plinth/modules/letsencrypt/tests/test_domain_name_changes.py ....... [ > 56%] > plinth/modules/matrixsynapse/tests/test_turn_config.py .... [ > 57%] > plinth/modules/mediawiki/tests/test_settings.py ..... [ > 58%] > plinth/modules/names/tests/test_components.py ........... [ > 60%] > plinth/modules/names/tests/test_names.py .. [ > 60%] > plinth/modules/networks/tests/test_privileged.py . [ > 60%] > plinth/modules/pagekite/tests/test_pagekite.py . [ > 60%] > plinth/modules/samba/tests/test_views.py .s... [ > 61%] > plinth/modules/snapshot/tests/test_privileged.py ssss [ > 62%] > plinth/modules/sso/tests/test_privileged.py . [ > 62%] > plinth/modules/storage/tests/test_storage.py sssssssss.......... [ > 65%] > plinth/modules/tor/tests/test_tor.py s. [ > 65%] > plinth/modules/torproxy/tests/test_torproxy.py ss [ > 66%] > plinth/modules/users/tests/test_components.py ... [ > 66%] > plinth/modules/users/tests/test_privileged.py sssssssssss [ > 68%] > plinth/modules/wireguard/tests/test_forms.py .................. [ > 71%] > plinth/tests/test_action_utils.py .ssss.s [ > 72%] > plinth/tests/test_actions.py ..... [ > 73%] > plinth/tests/test_actions_actions.py ... [ > 73%] > plinth/tests/test_app.py .................................... [ > 79%] > plinth/tests/test_cfg.py ....... [ > 80%] > plinth/tests/test_clients.py .... [ > 81%] > plinth/tests/test_config.py ...... [ > 82%] > plinth/tests/test_context_processors.py .. [ > 82%] > plinth/tests/test_custom_shortcuts.py ...... [ > 83%] > plinth/tests/test_daemon.py .......... [ > 85%] > plinth/tests/test_db.py ... [ > 85%] > plinth/tests/test_frontpage.py ....... [ > 86%] > plinth/tests/test_menu.py ...... [ > 87%] > plinth/tests/test_middleware.py .......... [ > 89%] > plinth/tests/test_module_loader.py . [ > 89%] > plinth/tests/test_network.py sssssssss [ > 90%] > plinth/tests/test_operation.py FF.FF...F......... [ > 93%] > plinth/tests/test_package.py ............ [ > 95%] > plinth/tests/test_templatetags.py . [ > 95%] > plinth/tests/test_utils.py ....... [ > 96%] > plinth/tests/test_version.py .... [ > 97%] > plinth/tests/test_views.py ............ [ > 99%] > plinth/tests/test_web_server.py ... > [100%] > > =================================== FAILURES > =================================== > ____________________ test_operation_default_initialization > _____________________ > > update_notification = <MagicMock name='_update_notification' > id='140540633366752'> > > @patch('plinth.operation.Operation._update_notification') > def test_operation_default_initialization(update_notification): > """Test Operation initialization with default values.""" > target = Mock() > operation = Operation('testid', 'testapp', 'op1', target) > assert operation.op_id == 'testid' > assert operation.app_id == 'testapp' > assert operation.name == 'op1' > assert operation.show_message > assert not operation.show_notification > assert operation.target == target > assert operation.args == [] > assert operation.kwargs == {} > assert operation.on_complete is None > assert operation.state == Operation.State.WAITING > assert operation._message is None > assert operation.exception is None > assert operation.thread_data == {} > assert isinstance(operation.thread, threading.Thread) > assert operation.thread._operation == operation > > assert update_notification.has_calls([call()]) > > plinth/tests/test_operation.py:48: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock name='_update_notification' id='140540633366752'> > name = 'has_calls' > > def __getattr__(self, name): > if name in {'_mock_methods', '_mock_unsafe'}: > raise AttributeError(name) > elif self._mock_methods is not None: > if name not in self._mock_methods or name in _all_magics: > raise AttributeError("Mock object has no attribute %r" % name) > elif _is_magic(name): > raise AttributeError(name) > if not self._mock_unsafe and (not self._mock_methods or name not in > self._mock_methods): > if name.startswith(('assert', 'assret', 'asert', 'aseert', > 'assrt')) or name in _ATTRIB_DENY_LIST: > > raise AttributeError( > f"{name!r} is not a valid assertion. Use a spec " > f"for the mock if {name!r} is meant to be an attribute.") > E AttributeError: 'has_calls' is not a valid assertion. Use a > spec for the mock if 'has_calls' is meant to be an attribute. > > /usr/lib/python3.12/unittest/mock.py:663: AttributeError > ________________________ test_operation_initialization > _________________________ > > update_notification = <MagicMock name='_update_notification' > id='140540633235728'> > > @patch('plinth.operation.Operation._update_notification') > def test_operation_initialization(update_notification): > """Test Operation initialization with explicit values.""" > on_complete = Mock() > operation = Operation('testid', 'testapp', 'op1', Mock(), ['arg1'], > {'arg2': 'value2'}, False, True, > {'data1': 'datavalue1'}, on_complete) > assert not operation.show_message > assert operation.show_notification > assert operation.args == ['arg1'] > assert operation.kwargs == {'arg2': 'value2'} > assert operation.on_complete == on_complete > assert operation.state == Operation.State.WAITING > assert operation._message is None > assert operation.exception is None > assert operation.thread_data == {'data1': 'datavalue1'} > > assert update_notification.has_calls([call()]) > > plinth/tests/test_operation.py:67: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock name='_update_notification' id='140540633235728'> > name = 'has_calls' > > def __getattr__(self, name): > if name in {'_mock_methods', '_mock_unsafe'}: > raise AttributeError(name) > elif self._mock_methods is not None: > if name not in self._mock_methods or name in _all_magics: > raise AttributeError("Mock object has no attribute %r" % name) > elif _is_magic(name): > raise AttributeError(name) > if not self._mock_unsafe and (not self._mock_methods or name not in > self._mock_methods): > if name.startswith(('assert', 'assret', 'asert', 'aseert', > 'assrt')) or name in _ATTRIB_DENY_LIST: > > raise AttributeError( > f"{name!r} is not a valid assertion. Use a spec " > f"for the mock if {name!r} is meant to be an attribute.") > E AttributeError: 'has_calls' is not a valid assertion. Use a > spec for the mock if 'has_calls' is meant to be an attribute. > > /usr/lib/python3.12/unittest/mock.py:663: AttributeError > __________________________ test_successful_operation > ___________________________ > > update_notification = <MagicMock name='_update_notification' > id='140540633553120'> > > @patch('plinth.operation.Operation._update_notification') > def test_successful_operation(update_notification): > """Test running a operation that succeeds.""" > target = Mock() > target.return_value = 'test-return' > on_complete = Mock() > operation = Operation('testid', 'testapp', 'op1', target, ['arg1'], > {'arg2': 'value2'}, on_complete=on_complete) > operation.run() > assert operation.join() == 'test-return' > target.assert_has_calls([call('arg1', arg2='value2')]) > assert operation.state == Operation.State.COMPLETED > assert operation.return_value == 'test-return' > on_complete.assert_has_calls([call(operation)]) > > assert update_notification.has_calls([call(), call()]) > > plinth/tests/test_operation.py:90: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock name='_update_notification' id='140540633553120'> > name = 'has_calls' > > def __getattr__(self, name): > if name in {'_mock_methods', '_mock_unsafe'}: > raise AttributeError(name) > elif self._mock_methods is not None: > if name not in self._mock_methods or name in _all_magics: > raise AttributeError("Mock object has no attribute %r" % name) > elif _is_magic(name): > raise AttributeError(name) > if not self._mock_unsafe and (not self._mock_methods or name not in > self._mock_methods): > if name.startswith(('assert', 'assret', 'asert', 'aseert', > 'assrt')) or name in _ATTRIB_DENY_LIST: > > raise AttributeError( > f"{name!r} is not a valid assertion. Use a spec " > f"for the mock if {name!r} is meant to be an attribute.") > E AttributeError: 'has_calls' is not a valid assertion. Use a > spec for the mock if 'has_calls' is meant to be an attribute. > > /usr/lib/python3.12/unittest/mock.py:663: AttributeError > _____________________________ test_error_operation > _____________________________ > > update_notification = <MagicMock name='_update_notification' > id='140540631605824'> > > @patch('plinth.operation.Operation._update_notification') > def test_error_operation(update_notification): > """Test running an operation that fails.""" > target = Mock() > target.side_effect = RuntimeError('error1') > on_complete = Mock() > operation = Operation('testid', 'testapp', 'op1', target, ['arg1'], > {'arg2': 'value2'}, on_complete=on_complete) > operation.run() > with pytest.raises(RuntimeError): > operation.join() > > target.assert_has_calls([call('arg1', arg2='value2')]) > assert operation.state == Operation.State.COMPLETED > assert operation.exception == target.side_effect > on_complete.assert_has_calls([call(operation)]) > > assert update_notification.has_calls([call(), call()]) > > plinth/tests/test_operation.py:109: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock name='_update_notification' id='140540631605824'> > name = 'has_calls' > > def __getattr__(self, name): > if name in {'_mock_methods', '_mock_unsafe'}: > raise AttributeError(name) > elif self._mock_methods is not None: > if name not in self._mock_methods or name in _all_magics: > raise AttributeError("Mock object has no attribute %r" % name) > elif _is_magic(name): > raise AttributeError(name) > if not self._mock_unsafe and (not self._mock_methods or name not in > self._mock_methods): > if name.startswith(('assert', 'assret', 'asert', 'aseert', > 'assrt')) or name in _ATTRIB_DENY_LIST: > > raise AttributeError( > f"{name!r} is not a valid assertion. Use a spec " > f"for the mock if {name!r} is meant to be an attribute.") > E AttributeError: 'has_calls' is not a valid assertion. Use a > spec for the mock if 'has_calls' is meant to be an attribute. > > /usr/lib/python3.12/unittest/mock.py:663: AttributeError > ___________________________ test_updating_operation > ____________________________ > > update_notification = <MagicMock name='_update_notification' > id='140540631597520'> > > @patch('plinth.operation.Operation._update_notification') > def test_updating_operation(update_notification): > """Test that operation object can be updated from within the > thread.""" > exception = RuntimeError('error1') > > def target(): > operation = Operation.get_operation() > operation.on_update('message1', exception) > > operation = Operation('testid', 'testapp', 'op1', target) > operation.run() > with pytest.raises(RuntimeError): > operation.join() > > assert operation._message == 'message1' > assert operation.exception == exception > > assert update_notification.has_calls([call(), call(), call()]) > > plinth/tests/test_operation.py:176: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <MagicMock name='_update_notification' id='140540631597520'> > name = 'has_calls' > > def __getattr__(self, name): > if name in {'_mock_methods', '_mock_unsafe'}: > raise AttributeError(name) > elif self._mock_methods is not None: > if name not in self._mock_methods or name in _all_magics: > raise AttributeError("Mock object has no attribute %r" % name) > elif _is_magic(name): > raise AttributeError(name) > if not self._mock_unsafe and (not self._mock_methods or name not in > self._mock_methods): > if name.startswith(('assert', 'assret', 'asert', 'aseert', > 'assrt')) or name in _ATTRIB_DENY_LIST: > > raise AttributeError( > f"{name!r} is not a valid assertion. Use a spec " > f"for the mock if {name!r} is meant to be an attribute.") > E AttributeError: 'has_calls' is not a valid assertion. Use a > spec for the mock if 'has_calls' is meant to be an attribute. > > /usr/lib/python3.12/unittest/mock.py:663: AttributeError > =============================== warnings summary > =============================== > ../../../usr/lib/python3/dist-packages/django/conf/__init__.py:241 > /usr/lib/python3/dist-packages/django/conf/__init__.py:241: > RemovedInDjango50Warning: The default value of USE_TZ will change from False > to True in Django 5.0. Set USE_TZ to False in your project settings if you > want to keep the current default behavior. > warnings.warn( > > ../../../usr/lib/python3/dist-packages/axes/__init__.py:1 > /usr/lib/python3/dist-packages/axes/__init__.py:1: DeprecationWarning: > pkg_resources is deprecated as an API. See > https://setuptools.pypa.io/en/latest/pkg_resources.html > from pkg_resources import get_distribution > > ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871 > /usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871: > DeprecationWarning: Deprecated call to > `pkg_resources.declare_namespace('ruamel')`. > Implementing implicit namespace packages (as specified in PEP 420) is > preferred to `pkg_resources.declare_namespace`. See > https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages > declare_namespace(pkg) > > ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871 > /usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871: > DeprecationWarning: Deprecated call to > `pkg_resources.declare_namespace('zc')`. > Implementing implicit namespace packages (as specified in PEP 420) is > preferred to `pkg_resources.declare_namespace`. See > https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages > declare_namespace(pkg) > > ../../../usr/lib/python3/dist-packages/bootstrapform/meta.py:4 > /usr/lib/python3/dist-packages/bootstrapform/meta.py:4: DeprecationWarning: > distutils Version classes are deprecated. Use packaging.version instead. > VERSION = StrictVersion('3.4') > > ../../../usr/lib/python3/dist-packages/gi/overrides/__init__.py:108 > ../../../usr/lib/python3/dist-packages/gi/overrides/__init__.py:108 > ../../../usr/lib/python3/dist-packages/gi/overrides/__init__.py:108 > ../../../usr/lib/python3/dist-packages/gi/overrides/__init__.py:108 > /usr/lib/python3/dist-packages/gi/overrides/__init__.py:108: > DeprecationWarning: 'pkgutil.get_loader' is deprecated and slated for removal > in Python 3.14; use importlib.util.find_spec() instead > override_loader = get_loader(override_package_name) > > ../../../usr/lib/python3.12/pkgutil.py:291 > ../../../usr/lib/python3.12/pkgutil.py:291 > ../../../usr/lib/python3.12/pkgutil.py:291 > ../../../usr/lib/python3.12/pkgutil.py:291 > /usr/lib/python3.12/pkgutil.py:291: DeprecationWarning: > 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; > use importlib.util.find_spec() instead > return find_loader(fullname) > > ../../../usr/lib/python3/dist-packages/cherrypy/lib/httputil.py:15 > /usr/lib/python3/dist-packages/cherrypy/lib/httputil.py:15: > DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13 > from cgi import parse_header > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED plinth/tests/test_operation.py::test_operation_default_initialization > FAILED plinth/tests/test_operation.py::test_operation_initialization - > Attrib... > FAILED plinth/tests/test_operation.py::test_successful_operation - > AttributeE... > FAILED plinth/tests/test_operation.py::test_error_operation - > AttributeError:... > FAILED plinth/tests/test_operation.py::test_updating_operation - > AttributeErr... > =========== 5 failed, 557 passed, 61 skipped, 14 warnings in 36.05s > ============ > E: pybuild pybuild:395: test: plugin custom failed with: exit code=1: > python3.12 -m pytest > I: pybuild base:310: python3.11 -m pytest > ============================= test session starts > ============================== > platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0 > django: settings: plinth.tests.data.django_test_settings (from option) > rootdir: /<<PKGBUILDDIR>> > configfile: pyproject.toml > plugins: cov-4.1.0, django-4.5.2 > collected 623 items > > plinth/modules/backups/tests/test_api.py ........... [ > 1%] > plinth/modules/backups/tests/test_components.py .. [ > 2%] > plinth/modules/backups/tests/test_ssh_remotes.py ssss [ > 2%] > plinth/modules/backups/tests/test_store.py .... [ > 3%] > plinth/modules/users/tests/test_views.py ........................ [ > 7%] > plinth/tests/test_app.py ... [ > 7%] > plinth/tests/test_kvstore.py .... [ > 8%] > plinth/tests/test_middleware.py .. [ > 8%] > plinth/tests/test_notification.py ...................................... [ > 14%] > .................... [ > 17%] > plinth/tests/test_operation.py . [ > 18%] > plinth/modules/apache/tests/test_components.py ............. [ > 20%] > plinth/modules/apache/tests/test_uws.py . [ > 20%] > plinth/modules/backups/tests/test_backups.py sssssssss [ > 21%] > plinth/modules/backups/tests/test_components.py ........................ [ > 25%] > ..................... [ > 29%] > plinth/modules/backups/tests/test_schedule.py .......................... [ > 33%] > ... [ > 33%] > plinth/modules/backups/tests/test_validators.py ..... [ > 34%] > plinth/modules/bind/tests/test_bind.py .. [ > 34%] > plinth/modules/calibre/tests/test_privileged.py ... [ > 35%] > plinth/modules/calibre/tests/test_views.py ........ [ > 36%] > plinth/modules/config/tests/test_config.py ...ss. [ > 37%] > plinth/modules/coturn/tests/test_components.py ....... [ > 38%] > plinth/modules/deluge/tests/test_utils.py ... [ > 39%] > plinth/modules/diagnostics/tests/test_check.py .. [ > 39%] > plinth/modules/ejabberd/tests/test_turn_config.py ... [ > 39%] > plinth/modules/firewall/tests/test_components.py .......... [ > 41%] > plinth/modules/gitweb/tests/test_privileged.py .............. [ > 43%] > plinth/modules/gitweb/tests/test_views.py ................. [ > 46%] > plinth/modules/help/tests/test_views.py .........sss.s [ > 48%] > plinth/modules/i2p/tests/test_helpers.py ..... [ > 49%] > plinth/modules/i2p/tests/test_router_editor.py .... [ > 50%] > plinth/modules/kiwix/tests/test_privileged.py ... [ > 50%] > plinth/modules/kiwix/tests/test_validations.py . [ > 50%] > plinth/modules/kiwix/tests/test_views.py ...... [ > 51%] > plinth/modules/letsencrypt/tests/test_components.py .................... [ > 55%] > ..... [ > 55%] > plinth/modules/letsencrypt/tests/test_domain_name_changes.py ....... [ > 56%] > plinth/modules/matrixsynapse/tests/test_turn_config.py .... [ > 57%] > plinth/modules/mediawiki/tests/test_settings.py ..... [ > 58%] > plinth/modules/names/tests/test_components.py ........... [ > 60%] > plinth/modules/names/tests/test_names.py .. [ > 60%] > plinth/modules/networks/tests/test_privileged.py . [ > 60%] > plinth/modules/pagekite/tests/test_pagekite.py . [ > 60%] > plinth/modules/samba/tests/test_views.py .s... [ > 61%] > plinth/modules/snapshot/tests/test_privileged.py ssss [ > 62%] > plinth/modules/sso/tests/test_privileged.py . [ > 62%] > plinth/modules/storage/tests/test_storage.py sssssssss.......... [ > 65%] > plinth/modules/tor/tests/test_tor.py s. [ > 65%] > plinth/modules/torproxy/tests/test_torproxy.py ss [ > 66%] > plinth/modules/users/tests/test_components.py ... [ > 66%] > plinth/modules/users/tests/test_privileged.py sssssssssss [ > 68%] > plinth/modules/wireguard/tests/test_forms.py .................. [ > 71%] > plinth/tests/test_action_utils.py .ssss.s [ > 72%] > plinth/tests/test_actions.py ..... [ > 73%] > plinth/tests/test_actions_actions.py ... [ > 73%] > plinth/tests/test_app.py .................................... [ > 79%] > plinth/tests/test_cfg.py ....... [ > 80%] > plinth/tests/test_clients.py .... [ > 81%] > plinth/tests/test_config.py ...... [ > 82%] > plinth/tests/test_context_processors.py .. [ > 82%] > plinth/tests/test_custom_shortcuts.py ...... [ > 83%] > plinth/tests/test_daemon.py .......... [ > 85%] > plinth/tests/test_db.py ... [ > 85%] > plinth/tests/test_frontpage.py ....... [ > 86%] > plinth/tests/test_menu.py ...... [ > 87%] > plinth/tests/test_middleware.py .......... [ > 89%] > plinth/tests/test_module_loader.py . [ > 89%] > plinth/tests/test_network.py sssssssss [ > 90%] > plinth/tests/test_operation.py .................. [ > 93%] > plinth/tests/test_package.py ............ [ > 95%] > plinth/tests/test_templatetags.py . [ > 95%] > plinth/tests/test_utils.py ....... [ > 96%] > plinth/tests/test_version.py .... [ > 97%] > plinth/tests/test_views.py ............ [ > 99%] > plinth/tests/test_web_server.py ... > [100%] > > =============================== warnings summary > =============================== > ../../../usr/lib/python3/dist-packages/django/conf/__init__.py:241 > /usr/lib/python3/dist-packages/django/conf/__init__.py:241: > RemovedInDjango50Warning: The default value of USE_TZ will change from False > to True in Django 5.0. Set USE_TZ to False in your project settings if you > want to keep the current default behavior. > warnings.warn( > > ../../../usr/lib/python3/dist-packages/axes/__init__.py:1 > /usr/lib/python3/dist-packages/axes/__init__.py:1: DeprecationWarning: > pkg_resources is deprecated as an API. See > https://setuptools.pypa.io/en/latest/pkg_resources.html > from pkg_resources import get_distribution > > ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871 > /usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871: > DeprecationWarning: Deprecated call to > `pkg_resources.declare_namespace('ruamel')`. > Implementing implicit namespace packages (as specified in PEP 420) is > preferred to `pkg_resources.declare_namespace`. See > https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages > declare_namespace(pkg) > > ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871 > /usr/lib/python3/dist-packages/pkg_resources/__init__.py:2871: > DeprecationWarning: Deprecated call to > `pkg_resources.declare_namespace('zc')`. > Implementing implicit namespace packages (as specified in PEP 420) is > preferred to `pkg_resources.declare_namespace`. See > https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages > declare_namespace(pkg) > > ../../../usr/lib/python3/dist-packages/bootstrapform/meta.py:4 > /usr/lib/python3/dist-packages/bootstrapform/meta.py:4: DeprecationWarning: > distutils Version classes are deprecated. Use packaging.version instead. > VERSION = StrictVersion('3.4') > > ../../../usr/lib/python3/dist-packages/cherrypy/lib/httputil.py:15 > /usr/lib/python3/dist-packages/cherrypy/lib/httputil.py:15: > DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13 > from cgi import parse_header > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > ================= 562 passed, 61 skipped, 6 warnings in 35.27s > ================= > rm -fr -- /tmp/dh-xdg-rundir-tOBcRSu8 > 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/2023/12/12/freedombox_23.21_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&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.