Package: src:django-classy-tags Version: 4.1.0-1 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:django-classy-tags, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --with python3,sphinxdoc --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild debian/rules override_dh_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' rm -rf docs/_build dh_clean make[1]: Leaving directory '/<<PKGBUILDDIR>>' debian/rules binary dh binary --with python3,sphinxdoc --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild debian/rules override_dh_auto_build [... snipped ...] copying assets: done writing output... [ 12%] arguments writing output... [ 25%] changes writing output... [ 38%] contribute writing output... [ 50%] extend writing output... [ 62%] index writing output... [ 75%] installation writing output... [ 88%] reference writing output... [100%] usage generating indices... genindex py-modindex done writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 2 warnings. The HTML pages are in docs/_build/html. make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_test -O--buildsystem=pybuild I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-classy-tags/build; python3.14 -m pytest --ds=tests.settings ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 django: version: 4.2.26, settings: tests.settings (from option) rootdir: /<<PKGBUILDDIR>> plugins: typeguard-4.4.4, django-4.11.1 collected 73 items tests/test_core.py .........................FFF......................... [ 72%] .................... [100%] =================================== FAILURES =================================== ______________________ ClassytagsTests.test_inclusion_tag ______________________ self = <tests.test_core.ClassytagsTests testMethod=test_inclusion_tag> def test_inclusion_tag(self): class Inc(helpers.InclusionTag): template = 'test.html' options = core.Options( arguments.Argument('var'), ) def get_context(self, context, var): return {'var': var} templates = [ ('{% inc var %}', 'inc', {'var': 'inc'},), ] > self._tag_tester(Inc, templates) tests/test_core.py:717: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_core.py:113: in _tag_tester s = t.render(c) ^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:175: in render return self._render(context) ^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/test/utils.py:112: in instrumented_test_render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:1005: in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:966: in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ classytags/core.py:142: in render return str(self.render_tag(context, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ classytags/helpers.py:87: in render_tag new_context = context.new( /usr/lib/python3/dist-packages/django/template/context.py:110: in new new_context = copy(self) ^^^^^^^^^^ /usr/lib/python3.14/copy.py:82: in copy return copier(x) ^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'var': 'inc'}] def __copy__(self): duplicate = copy(super()) > duplicate.dicts = self.dicts[:] ^^^^^^^^^^^^^^^ E AttributeError: 'super' object has no attribute 'dicts' and no __dict__ for setting new attributes /usr/lib/python3/dist-packages/django/template/context.py:39: AttributeError _____________ ClassytagsTests.test_inclusion_tag_context_pollution _____________ self = <tests.test_core.ClassytagsTests testMethod=test_inclusion_tag_context_pollution> def test_inclusion_tag_context_pollution(self): """ Check the `keep_render_context` and `push_pop_context` attributes on InclusionTag work as advertised and prevent 'context pollution' """ class NoPushPop(helpers.InclusionTag): template = 'inclusion.html' def get_context(self, context): return context.update({'pollution': True}) class Standard(helpers.InclusionTag): template = 'inclusion.html' def get_context(self, context): return {'pollution': True} with TemplateTags(NoPushPop, Standard): # push pop pollution ctx1 = template.Context({'pollution': False}) tpl1 = template.Template("{% no_push_pop %}") > tpl1.render(ctx1) tests/test_core.py:1108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/django/template/base.py:175: in render return self._render(context) ^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/test/utils.py:112: in instrumented_test_render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:1005: in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:966: in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ classytags/core.py:142: in render return str(self.render_tag(context, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ classytags/helpers.py:87: in render_tag new_context = context.new( /usr/lib/python3/dist-packages/django/template/context.py:110: in new new_context = copy(self) ^^^^^^^^^^ /usr/lib/python3.14/copy.py:82: in copy return copier(x) ^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'pollution': False}, {'pollution': True}] def __copy__(self): duplicate = copy(super()) > duplicate.dicts = self.dicts[:] ^^^^^^^^^^^^^^^ E AttributeError: 'super' object has no attribute 'dicts' and no __dict__ for setting new attributes /usr/lib/python3/dist-packages/django/template/context.py:39: AttributeError _____________ ClassytagsTests.test_inclusion_tag_push_pop_context ______________ self = <tests.test_core.ClassytagsTests testMethod=test_inclusion_tag_push_pop_context> def test_inclusion_tag_push_pop_context(self): class IncPollute(helpers.InclusionTag): template = 'test.html' options = core.Options( arguments.Argument('var') ) def get_context(self, context, var): context.update({'var': 'polluted'}) return context with TemplateTags(IncPollute): tpl = template.Template('{% inc_pollute var %}') ctx = template.Context({'var': 'test'}) > out = tpl.render(ctx) ^^^^^^^^^^^^^^^ tests/test_core.py:742: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/django/template/base.py:175: in render return self._render(context) ^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/test/utils.py:112: in instrumented_test_render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:1005: in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/base.py:966: in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ classytags/core.py:142: in render return str(self.render_tag(context, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ classytags/helpers.py:87: in render_tag new_context = context.new( /usr/lib/python3/dist-packages/django/template/context.py:110: in new new_context = copy(self) ^^^^^^^^^^ /usr/lib/python3.14/copy.py:82: in copy return copier(x) ^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'var': 'test'}, {'var': 'polluted'}] def __copy__(self): duplicate = copy(super()) > duplicate.dicts = self.dicts[:] ^^^^^^^^^^^^^^^ E AttributeError: 'super' object has no attribute 'dicts' and no __dict__ for setting new attributes /usr/lib/python3/dist-packages/django/template/context.py:39: 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( .pybuild/cpython3_3.14_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_choice_argument /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 'four' is not a valid choice. Valid choices: ['one', 'two', 'three']. warnings.warn(message, TemplateSyntaxWarning) .pybuild/cpython3_3.14_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_choice_argument /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 4 is not a valid choice. Valid choices: [1, 2, 3]. warnings.warn(message, TemplateSyntaxWarning) .pybuild/cpython3_3.14_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_integer_variable .pybuild/cpython3_3.14_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_integer_variable /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 'one' could not be converted to Integer warnings.warn(message, TemplateSyntaxWarning) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_core.py::ClassytagsTests::test_inclusion_tag - AttributeErr... FAILED tests/test_core.py::ClassytagsTests::test_inclusion_tag_context_pollution FAILED tests/test_core.py::ClassytagsTests::test_inclusion_tag_push_pop_context =================== 3 failed, 70 passed, 5 warnings in 0.27s =================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-classy-tags/build; python3.14 -m pytest --ds=tests.settings I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-classy-tags/build; python3.13 -m pytest --ds=tests.settings ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 django: version: 4.2.26, settings: tests.settings (from option) rootdir: /<<PKGBUILDDIR>> plugins: typeguard-4.4.4, django-4.11.1 collected 73 items tests/test_core.py ..................................................... [ 72%] .................... [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( .pybuild/cpython3_3.13_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_choice_argument /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 'four' is not a valid choice. Valid choices: ['one', 'two', 'three']. warnings.warn(message, TemplateSyntaxWarning) .pybuild/cpython3_3.13_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_choice_argument /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 4 is not a valid choice. Valid choices: [1, 2, 3]. warnings.warn(message, TemplateSyntaxWarning) .pybuild/cpython3_3.13_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_integer_variable .pybuild/cpython3_3.13_django-classy-tags/build/tests/test_core.py::ClassytagsTests::test_integer_variable /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-classy-tags/build/classytags/values.py:36: TemplateSyntaxWarning: 'one' could not be converted to Integer warnings.warn(message, TemplateSyntaxWarning) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======================== 73 passed, 5 warnings in 0.11s ======================== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:10: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

