Package: src:python-django-crispy-forms Version: 2.5-1 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-django-crispy-forms, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild debian/rules execute_before_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' rm -rf docs/.build make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild [... snipped ...] ______________ TestBootstrapLayoutObjects.test_multiplecheckboxes ______________ self = <tests.test_layout_objects.TestBootstrapLayoutObjects object at 0x7f7e8cd64aa0> def test_multiplecheckboxes(self): test_form = CheckboxesSampleForm() > html = render_crispy_form(test_form) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_layout_objects.py:333: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ crispy_forms/utils.py:168: in render_crispy_form return node.render(node_context) ^^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:199: in render c = self.get_render(context).flatten() ^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:109: in get_render node_context = context.__copy__() ^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'form': <CheckboxesSampleForm bound=False, valid=Unknown, fields=(checkboxes;alphacheckboxes;numeric_multiple_checkboxes;inline_radios)>, 'helper': None}] 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 ________ TestBootstrapLayoutObjects.test_multiple_checkboxes_unique_ids ________ self = <tests.test_layout_objects.TestBootstrapLayoutObjects object at 0x7f7e8cd62350> def test_multiple_checkboxes_unique_ids(self): test_form = CheckboxesSampleForm() > html = render_crispy_form(test_form) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_layout_objects.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ crispy_forms/utils.py:168: in render_crispy_form return node.render(node_context) ^^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:199: in render c = self.get_render(context).flatten() ^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:109: in get_render node_context = context.__copy__() ^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'form': <CheckboxesSampleForm bound=False, valid=Unknown, fields=(checkboxes;alphacheckboxes;numeric_multiple_checkboxes;inline_radios)>, 'helper': None}] 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 ______________ test_as_crispy_errors_formset_with_non_form_errors ______________ def test_as_crispy_errors_formset_with_non_form_errors(): template = Template( """ {% load crispy_forms_tags %} {{ formset|as_crispy_errors }} """ ) SampleFormset = formset_factory(SampleForm, max_num=1, validate_max=True) formset = SampleFormset( { "form-TOTAL_FORMS": "2", "form-INITIAL_FORMS": "0", "form-MAX_NUM_FORMS": "", "form-0-password1": "god", "form-0-password2": "wargame", } ) formset.is_valid() c = Context({"formset": formset}) html = template.render(c) assert "errorMsg" in html or "alert" in html > assert "<li>Please submit at most 1 form.</li>" in html E assert '<li>Please submit at most 1 form.</li>' in '\n \n \n <div class="alert alert-block alert-danger">\n \n <ul>\n \t<li>Por favor, envÃe 1 formulario como máximo.</li>\n </ul>\n </div>\n\n\n\n ' tests/test_tags.py:97: AssertionError ___________________________ test_custom_bound_field ____________________________ def test_custom_bound_field(): from django.forms.boundfield import BoundField extra = "xyxyxyxyxyx" class CustomBoundField(BoundField): @property def auto_id(self): return extra class MyCharField(forms.CharField): def get_bound_field(self, form, field_name): return CustomBoundField(form, self, field_name) class MyForm(forms.Form): f = MyCharField() def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout("f") template = Template('{% load crispy_forms_tags %}\n{% crispy form "bootstrap3" %}') > rendered = template.render(Context({"form": MyForm(data={"f": > "something"})})) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_utils.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /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) ^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:199: in render c = self.get_render(context).flatten() ^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:109: in get_render node_context = context.__copy__() ^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'form': <MyForm bound=True, valid=Unknown, fields=(f)>}] 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 _________________________ test_parse_expected_and_form _________________________ def test_parse_expected_and_form(): form = SampleForm() form.helper.layout = Layout("is_company") > assert parse_form(form) == parse_expected("utils_test.html") ^^^^^^^^^^^^^^^^ tests/test_utils.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/utils.py:18: in parse_form html = render_crispy_form(form) ^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/utils.py:168: in render_crispy_form return node.render(node_context) ^^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:199: in render c = self.get_render(context).flatten() ^^^^^^^^^^^^^^^^^^^^^^^^ crispy_forms/templatetags/crispy_forms_tags.py:109: in get_render node_context = context.__copy__() ^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/django/template/context.py:158: in __copy__ duplicate = super().__copy__() ^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = [{'True': True, 'False': False, 'None': None}, {'form': <SampleForm bound=False, valid=Unknown, fields=(is_company;email;password1;password2;first_name;last_name;datetime_field)>, 'helper': None}] 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 =========================== short test summary info ============================ FAILED tests/test_form_helper.py::test_inputs - AttributeError: 'super' objec... FAILED tests/test_form_helper.py::test_form_with_helper_without_layout - Attr... FAILED tests/test_form_helper.py::test_html5_required - AttributeError: 'supe... FAILED tests/test_form_helper.py::test_media_is_included_by_default_with_bootstrap3 FAILED tests/test_form_helper.py::test_media_removed_when_include_media_is_false_with_bootstrap3 FAILED tests/test_form_helper.py::test_attrs - AttributeError: 'super' object... FAILED tests/test_form_helper.py::test_without_helper - AttributeError: 'supe... FAILED tests/test_form_helper.py::test_template_pack_override_compact - Attri... FAILED tests/test_form_helper.py::test_template_pack_override_verbose - Attri... FAILED tests/test_form_helper.py::test_formset_with_helper_without_layout - A... FAILED tests/test_form_helper.py::test_CSRF_token_POST_form - AttributeError:... FAILED tests/test_form_helper.py::test_CSRF_token_GET_form - AttributeError: ... FAILED tests/test_form_helper.py::test_disable_csrf - AttributeError: 'super'... FAILED tests/test_form_helper.py::test_render_unmentioned_fields - AttributeE... FAILED tests/test_form_helper.py::test_render_unmentioned_fields_order - Attr... FAILED tests/test_form_helper.py::test_render_hidden_fields - AttributeError:... FAILED tests/test_form_helper.py::test_render_required_fields - AttributeErro... FAILED tests/test_form_helper.py::test_helper_custom_template - AttributeErro... FAILED tests/test_form_helper.py::test_helper_custom_field_template - Attribu... FAILED tests/test_form_helper.py::test_helper_custom_field_template_no_layout FAILED tests/test_form_helper.py::test_helper_std_field_template_no_layout - ... FAILED tests/test_form_helper.py::test_error_text_inline - AttributeError: 's... FAILED tests/test_form_helper.py::test_form_show_labels - AttributeError: 'su... FAILED tests/test_form_helper.py::test_passthrough_context - AttributeError: ... FAILED tests/test_layout.py::test_unicode_form_field - AttributeError: 'super... FAILED tests/test_layout.py::test_meta_extra_fields_with_missing_fields - Att... FAILED tests/test_layout.py::test_context_pollution - AttributeError: 'super'... FAILED tests/test_layout.py::test_layout_fieldset_row_html_with_unicode_fieldnames FAILED tests/test_layout.py::test_change_layout_dynamically_delete_field - At... FAILED tests/test_layout.py::test_formset_layout - AttributeError: 'super' ob... FAILED tests/test_layout.py::test_modelformset_layout - AttributeError: 'supe... FAILED tests/test_layout.py::test_i18n - AttributeError: 'super' object has n... FAILED tests/test_layout.py::test_modelform_layout_without_meta - AttributeEr... FAILED tests/test_layout.py::test_specialspaceless_not_screwing_intended_spaces FAILED tests/test_layout.py::test_choice_with_none_is_selected - AttributeErr... FAILED tests/test_layout.py::test_keepcontext_context_manager - AttributeErro... FAILED tests/test_layout.py::test_update_attributes_class - AttributeError: '... FAILED tests/test_layout_objects.py::test_field_with_custom_template - Attrib... FAILED tests/test_layout_objects.py::test_multiwidget_field - AttributeError:... FAILED tests/test_layout_objects.py::test_field_type_hidden - AttributeError:... FAILED tests/test_layout_objects.py::test_field_wrapper_class - AttributeErro... FAILED tests/test_layout_objects.py::test_html_with_carriage_returns - Attrib... FAILED tests/test_layout_objects.py::test_i18n - AttributeError: 'super' obje... FAILED tests/test_layout_objects.py::test_remove_labels - AttributeError: 'su... FAILED tests/test_layout_objects.py::test_passthrough_context - AttributeErro... FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_custom_django_widget FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_inline_radios FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_accordion_and_accordiongroup FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_accordion_active_false_not_rendered FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_alert FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_alert_block FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_tab_and_tab_holder FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_tab_helper_reuse FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_radio_attrs FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_hidden_fields FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_multiplecheckboxes FAILED tests/test_layout_objects.py::TestBootstrapLayoutObjects::test_multiple_checkboxes_unique_ids FAILED tests/test_tags.py::test_as_crispy_errors_formset_with_non_form_errors FAILED tests/test_utils.py::test_custom_bound_field - AttributeError: 'super'... FAILED tests/test_utils.py::test_parse_expected_and_form - AttributeError: 's... ======================== 60 failed, 53 passed in 1.25s ========================= E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_django-crispy-forms/build; python3.14 -m pytest tests I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-crispy-forms/build; python3.13 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 django: version: 4.2.26, settings: tests.test_settings (from ini) rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_django-crispy-forms/build configfile: pyproject.toml plugins: typeguard-4.4.4, django-4.11.1 collected 113 items tests/test_dynamic_api.py ........................ [ 21%] tests/test_form_helper.py .............................. [ 47%] tests/test_layout.py .................. [ 63%] tests/test_layout_objects.py ..................... [ 82%] tests/test_tags.py ............ [ 92%] tests/test_utils.py ........ [100%] ============================= 113 passed in 0.41s ============================== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:8: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

