Commit e76dd4cd authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

[1.6.x] 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.

Backport of 5444a9c6 from master.
parent ece8d652
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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__'
+13 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ from django.utils import timezone
from django.utils.tzinfo import FixedOffset
from django.utils.unittest import skipIf, skipUnless

from .forms import EventForm, EventSplitForm, EventModelForm
from .forms import EventForm, EventSplitForm, EventLocalizedForm, EventModelForm, EventLocalizedModelForm
from .models import Event, MaybeEvent, Session, SessionEvent, Timestamp, AllDayEvent


@@ -1036,12 +1036,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',))