From 8a51b321f32ba45dd86497f392038df876b65d7a Mon Sep 17 00:00:00 2001 From: montiniz Date: Mon, 30 Mar 2015 12:40:13 -0500 Subject: [PATCH 1/3] django 1.8 fixes --- djadmin2/actions.py | 2 +- example/blog/tests/test_modelforms.py | 28 ++++++++++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/djadmin2/actions.py b/djadmin2/actions.py index edf5c39..38e21eb 100644 --- a/djadmin2/actions.py +++ b/djadmin2/actions.py @@ -41,7 +41,7 @@ class BaseListAction(AdminModel2Mixin, TemplateView): options = utils.model_options(self.model) self.app_label = options.app_label - self.model_name = options.module_name + self.model_name = options.model_name self.item_count = len(queryset) diff --git a/example/blog/tests/test_modelforms.py b/example/blog/tests/test_modelforms.py index 6845d47..7d63b11 100644 --- a/example/blog/tests/test_modelforms.py +++ b/example/blog/tests/test_modelforms.py @@ -12,7 +12,7 @@ from ..models import Post class ModelFormFactoryTest(TestCase): def test_modelform_factory(self): - form_class = modelform_factory(Post) + form_class = modelform_factory(Post, exclude=[]) self.assertTrue(form_class) field = form_class.base_fields['title'] self.assertTrue(isinstance(field.widget, floppyforms.TextInput)) @@ -358,7 +358,7 @@ class ModelFormTest(TestCase): class MyForm(forms.ModelForm): pass - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) form = form_class() self.assertTrue(isinstance( form.fields['title'].widget, @@ -368,7 +368,7 @@ class ModelFormTest(TestCase): class MyForm(forms.ModelForm): subtitle = forms.CharField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) self.assertTrue(isinstance( form_class.base_fields['subtitle'].widget, floppyforms.widgets.TextInput)) @@ -385,7 +385,7 @@ class ModelFormTest(TestCase): class MyForm(forms.ModelForm): subtitle = forms.CharField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) form = form_class() self.assertTrue(isinstance( form.fields['subtitle'].widget, @@ -397,11 +397,12 @@ class ModelFormTest(TestCase): class Meta: model = Post + exclude = [] class ChildForm(MyForm): created = forms.DateField() - form_class = modelform_factory(model=Post, form=ChildForm) + form_class = modelform_factory(model=Post, form=ChildForm, exclude=[]) form = form_class() self.assertTrue(isinstance( form.fields['title'].widget, @@ -427,6 +428,7 @@ class FieldWidgetTest(TestCase): class Meta: model = Post + exclude = [] form_class = floppify_form(MyForm) widget = form_class().fields['email'].widget @@ -437,7 +439,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): float = forms.FloatField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['float'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.NumberInput)) self.assertEqual(widget.input_type, 'number') @@ -446,7 +448,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): decimal = forms.DecimalField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['decimal'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.NumberInput)) self.assertEqual(widget.input_type, 'number') @@ -455,7 +457,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): integer = forms.IntegerField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['integer'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.NumberInput)) self.assertEqual(widget.input_type, 'number') @@ -464,7 +466,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): email = forms.EmailField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['email'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.EmailInput)) self.assertEqual(widget.input_type, 'email') @@ -473,7 +475,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): url = forms.URLField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['url'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.URLInput)) self.assertEqual(widget.input_type, 'url') @@ -482,7 +484,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): slug = forms.SlugField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['slug'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.SlugInput)) self.assertEqual(widget.input_type, 'text') @@ -491,7 +493,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): ipaddress = forms.IPAddressField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['ipaddress'].widget self.assertTrue(isinstance(widget, floppyforms.widgets.IPAddressInput)) self.assertEqual(widget.input_type, 'text') @@ -500,7 +502,7 @@ class FieldWidgetTest(TestCase): class MyForm(forms.ModelForm): splitdatetime = forms.SplitDateTimeField() - form_class = modelform_factory(model=Post, form=MyForm) + form_class = modelform_factory(model=Post, form=MyForm, exclude=[]) widget = form_class().fields['splitdatetime'].widget self.assertTrue(isinstance( widget, floppyforms.widgets.SplitDateTimeWidget)) From 03dea3c00b601c50bbf31fc5a28218dac5c77eb2 Mon Sep 17 00:00:00 2001 From: montiniz Date: Mon, 30 Mar 2015 12:50:08 -0500 Subject: [PATCH 2/3] Fixed datetime_renderer to be compatible with django 1.8. Django ticket #23466 --- djadmin2/renderers.py | 5 +++-- djadmin2/tests/test_renderers.py | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/djadmin2/renderers.py b/djadmin2/renderers.py index 0ead56f..fbfc9b6 100644 --- a/djadmin2/renderers.py +++ b/djadmin2/renderers.py @@ -46,11 +46,12 @@ def datetime_renderer(value, field): """ if isinstance(value, datetime): + # django ticket #23466 Removing seconds from locale formats return formats.localize(timezone.template_localtime(value)) elif isinstance(value, (date, time)): - return formats.localize(value) + return ":".join((formats.localize(value)).split(":")[:2]) else: - return value + return ":".join(value.split(":")[:2]) def title_renderer(value, field): diff --git a/djadmin2/tests/test_renderers.py b/djadmin2/tests/test_renderers.py index abf5429..76c3ef6 100644 --- a/djadmin2/tests/test_renderers.py +++ b/djadmin2/tests/test_renderers.py @@ -17,7 +17,7 @@ class RendererTestModel(models.Model): class BooleanRendererTest(TestCase): - + def setUp(self): self.renderer = renderers.boolean_renderer @@ -59,7 +59,7 @@ class DatetimeRendererTest(TestCase): def test_time_german(self): activate('de') out = self.renderer(dt.time(13, 37, 1), None) - self.assertEqual('13:37:01', out) + self.assertEqual('13:37', out) def test_time_chinese(self): activate('zh') @@ -70,6 +70,10 @@ class DatetimeRendererTest(TestCase): out = self.renderer(dt.datetime(2013, 7, 6, 13, 37, 1), None) self.assertEqual('July 6, 2013, 1:37 p.m.', out) + def test_date_as_string(self): + out = self.renderer('13:37:01', None) + self.assertEqual('13:37', out) + # TODO test timezone localization From afa944e5fff405d041decd1ddce63691ba107323 Mon Sep 17 00:00:00 2001 From: montiniz Date: Mon, 30 Mar 2015 13:09:33 -0500 Subject: [PATCH 3/3] Updated tox for django1.8 testing --- tox.ini | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tox.ini b/tox.ini index 7df12c5..3cae8cf 100644 --- a/tox.ini +++ b/tox.ini @@ -2,6 +2,7 @@ # for py 3.x we are using only django 1.6.x as 1.5.x had only "experimental py3 support" envlist = py27-dj1.6.x, py27-dj1.7.x, py33-dj1.6.x, py34-dj1.6.x, py33-dj1.7.x, py34-dj1.7.x, pypy-dj1.6.x, pypy3-dj1.6.x, + py27-dj1.8.x, py33-dj1.8.x, py34-dj1.8.x, skipsdist = True [testenv] @@ -21,7 +22,7 @@ deps = [testenv:py27-dj1.7.x] basepython=python2.7 deps = - Django>=1.7,<1.8 + Django>=1.7,<1.7.999 {[testenv]deps} [testenv:py33-dj1.6.x] @@ -39,13 +40,13 @@ deps = [testenv:py33-dj1.7.x] basepython=python3.3 deps = - Django>=1.7,<1.8 + Django>=1.7,<1.7.999 {[testenv]deps} [testenv:py34-dj1.7.x] basepython=python3.4 deps = - Django>=1.7,<1.8 + Django>=1.7,<1.7.999 {[testenv]deps} [testenv:pypy-dj1.6.x] @@ -59,3 +60,21 @@ basepython=pypy3 deps = Django>=1.6,<1.7 {[testenv]deps} + +[testenv:py27-dj1.8.x] +basepython=python2.7 +deps = + Django>=1.8.c1,<1.9 + {[testenv]deps} + +[testenv:py34-dj1.8.x] +basepython=python3.4 +deps = + Django>=1.8c1,<1.9 + {[testenv]deps} + +[testenv:py33-dj1.8.x] +basepython=python2.7 +deps = + Django>=1.8.c1,<1.9 + {[testenv]deps}