Control: tag -1 + patch On Wed, 13 Aug 2014, Thomas Goirand wrote: > After applying the fix for calling django.setup(), there's still the > below errors which do not appear with Django 1.6:
Indeed. This is due to Django 1.7 adding an id attribute to radio buttons. It doesn't break the package itself but only the testsuite. Please find attached the needed patches. Cheers, -- Raphaël Hertzog ◈ Debian Developer Discover the Debian Administrator's Handbook: → http://debian-handbook.info/get/
>From a910e8a2c0a8d99008c811eb65096fbaaa7bf9f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= <hert...@debian.org> Date: Fri, 5 Sep 2014 10:05:22 +0200 Subject: [PATCH 1/2] Add django.setup() for Django 1.7 compatibility --- tests/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index aadc141..4533d82 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -13,13 +13,16 @@ from django.template import Template, Context from django.core.management import call_command from django import forms +import django +if hasattr(django, 'setup'): + django.setup() TEST_DIR = os.path.abspath(os.path.join(__file__, '..')) CHOICES = ( - (0, 'Zero'), - (1, 'One'), + (0, 'Zero'), + (1, 'One'), (2, 'Two'), ) -- 2.1.0
>From 6a04f63c3eadc164f75c6719b362949014f889da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= <hert...@debian.org> Date: Fri, 5 Sep 2014 11:20:08 +0200 Subject: [PATCH 2/2] Fix test case for Django 1.7's addition of an id attribute to radio widgets As documented on https://docs.djangoproject.com/en/1.7/ref/forms/widgets/#radioselect Django 1.7 now adds id attribute to the radio fields. The test case must be adapted to cope with this. --- tests/__init__.py | 12 ++++++++++++ tests/fixtures/basic.html | 6 +++--- tests/fixtures/horizontal.html | 6 +++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 4533d82..979c2a4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,5 +1,6 @@ import os import sys +import re os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.test_settings' @@ -41,6 +42,13 @@ class ExampleForm(forms.Form): class BootstrapTemplateTagTests(TestCase): def setUp(self): call_command('syncdb', interactive=False) + self.maxDiff = None + + @classmethod + def drop_radio_id_with_old_django(cls, content): + if django.VERSION < ('1', '7'): + return re.sub(r' id="id_radio_choice_\d"', '', content) + return content def test_basic_form(self): form = ExampleForm() @@ -51,6 +59,8 @@ class BootstrapTemplateTagTests(TestCase): with open(os.path.join(TEST_DIR, tpl)) as f: content = f.read() + content = self.drop_radio_id_with_old_django(content) + self.assertHTMLEqual(html, content) def test_horizontal_form(self): @@ -62,4 +72,6 @@ class BootstrapTemplateTagTests(TestCase): with open(os.path.join(TEST_DIR, tpl)) as f: content = f.read() + content = self.drop_radio_id_with_old_django(content) + self.assertHTMLEqual(html, content) diff --git a/tests/fixtures/basic.html b/tests/fixtures/basic.html index 322806e..636dfe7 100644 --- a/tests/fixtures/basic.html +++ b/tests/fixtures/basic.html @@ -56,21 +56,21 @@ <div class="radio"> <label> - <input name="radio_choice" type="radio" value="0" /> + <input id="id_radio_choice_0" name="radio_choice" type="radio" value="0" /> Zero </label> </div> <div class="radio"> <label> - <input name="radio_choice" type="radio" value="1" /> + <input id="id_radio_choice_1" name="radio_choice" type="radio" value="1" /> One </label> </div> <div class="radio"> <label> - <input name="radio_choice" type="radio" value="2" /> + <input id="id_radio_choice_2" name="radio_choice" type="radio" value="2" /> Two </label> </div> diff --git a/tests/fixtures/horizontal.html b/tests/fixtures/horizontal.html index b255d51..e49ee15 100644 --- a/tests/fixtures/horizontal.html +++ b/tests/fixtures/horizontal.html @@ -56,21 +56,21 @@ <div class="radio"> <label> - <input name="radio_choice" type="radio" value="0" /> + <input id="id_radio_choice_0" name="radio_choice" type="radio" value="0" /> Zero </label> </div> <div class="radio"> <label> - <input name="radio_choice" type="radio" value="1" /> + <input id="id_radio_choice_1" name="radio_choice" type="radio" value="1" /> One </label> </div> <div class="radio"> <label> - <input name="radio_choice" type="radio" value="2" /> + <input id="id_radio_choice_2" name="radio_choice" type="radio" value="2" /> Two </label> </div> -- 2.1.0