mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
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
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user