From 5444a9c68353d8108df1cf69c9557740d626a18d Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 21 Sep 2013 22:50:33 +0200 Subject: [PATCH] Fixed #21074 -- Added tests for localized datetime fields. Fields must render values in the current time zone. This commit only contains tests because this ticket was just a symptom of a regression from #18777 that was fixed separately. --- tests/timezones/forms.py | 9 +++++++++ tests/timezones/tests.py | 14 +++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/tests/timezones/forms.py b/tests/timezones/forms.py index 45fb1d080b..d99c9b77d5 100644 --- a/tests/timezones/forms.py +++ b/tests/timezones/forms.py @@ -8,7 +8,16 @@ class EventForm(forms.Form): class EventSplitForm(forms.Form): dt = forms.SplitDateTimeField() +class EventLocalizedForm(forms.Form): + dt = forms.DateTimeField(localize=True) + class EventModelForm(forms.ModelForm): class Meta: model = Event fields = '__all__' + +class EventLocalizedModelForm(forms.ModelForm): + class Meta: + model = Event + fields = '__all__' + localized_fields = '__all__' diff --git a/tests/timezones/tests.py b/tests/timezones/tests.py index 66d25f5e8a..3875fa698c 100644 --- a/tests/timezones/tests.py +++ b/tests/timezones/tests.py @@ -26,7 +26,7 @@ from django.test.utils import override_settings from django.utils import six from django.utils import timezone -from .forms import EventForm, EventSplitForm, EventModelForm +from .forms import EventForm, EventSplitForm, EventLocalizedForm, EventModelForm, EventLocalizedModelForm from .models import Event, MaybeEvent, Session, SessionEvent, Timestamp, AllDayEvent @@ -1040,12 +1040,24 @@ class NewFormsTests(TestCase): self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data['dt'], datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC)) + @requires_tz_support + def test_localized_form(self): + form = EventLocalizedForm(initial={'dt': datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT)}) + with timezone.override(ICT): + self.assertIn("2011-09-01 17:20:30", str(form)) + @requires_tz_support def test_model_form(self): EventModelForm({'dt': '2011-09-01 13:20:30'}).save() e = Event.objects.get() self.assertEqual(e.dt, datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC)) + @requires_tz_support + def test_localized_model_form(self): + form = EventLocalizedModelForm(instance=Event(dt=datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT))) + with timezone.override(ICT): + self.assertIn("2011-09-01 17:20:30", str(form)) + @override_settings(DATETIME_FORMAT='c', TIME_ZONE='Africa/Nairobi', USE_L10N=False, USE_TZ=True, PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))