From ce88b57b9aca0325e5b90944019f602a92f93475 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 27 Feb 2012 21:15:25 +0000 Subject: Fixed #17755 -- Ensured datetime objects that bypass the model layer (for instance, in raw SQL queries) are converted to UTC before sending them to the database when time zone support is enabled. Thanks Anssi for the report. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17596 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/modeltests/timezones/tests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/modeltests/timezones/tests.py b/tests/modeltests/timezones/tests.py index 818405971c..a8d2c0c332 100644 --- a/tests/modeltests/timezones/tests.py +++ b/tests/modeltests/timezones/tests.py @@ -263,6 +263,15 @@ class LegacyDatabaseTests(BaseDateTimeTests): self.assertQuerysetEqual(Event.objects.dates('dt', 'day'), [datetime.datetime(2011, 1, 1)], transform=lambda d: d) + def test_raw_sql(self): + # Regression test for #17755 + dt = datetime.datetime(2011, 9, 1, 13, 20, 30) + event = Event.objects.create(dt=dt) + self.assertQuerysetEqual( + Event.objects.raw('SELECT * FROM timezones_event WHERE dt = %s', [dt]), + [event], + transform=lambda d: d) + LegacyDatabaseTests = override_settings(USE_TZ=False)(LegacyDatabaseTests) @@ -473,6 +482,15 @@ class NewDatabaseTests(BaseDateTimeTests): datetime.datetime(2011, 1, 1, tzinfo=UTC)], transform=lambda d: d) + def test_raw_sql(self): + # Regression test for #17755 + dt = datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT) + event = Event.objects.create(dt=dt) + self.assertQuerysetEqual( + Event.objects.raw('SELECT * FROM timezones_event WHERE dt = %s', [dt]), + [event], + transform=lambda d: d) + def test_null_datetime(self): # Regression for #17294 e = MaybeEvent.objects.create() -- cgit v1.3