diff options
author | Morgan Aubert <morgan.aubert@impakfinance.com> | 2018-04-27 17:18:15 -0400 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-05-09 11:40:28 -0400 |
commit | 704443acacf0dfbcb1c52df4b260585055754ce7 (patch) | |
tree | 600147bf6114d7b490fcd253ff9797b7e7531c09 /tests/timezones | |
parent | 7ba040de7703fd06b9b35ddd31da40103d911c30 (diff) | |
download | django-704443acacf0dfbcb1c52df4b260585055754ce7.tar.gz |
Fixed #29363 -- Added SimpleTestCase.assertWarnsMessage().
Diffstat (limited to 'tests/timezones')
-rw-r--r-- | tests/timezones/tests.py | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/tests/timezones/tests.py b/tests/timezones/tests.py index 33b7897b82..3f7f70c7fb 100644 --- a/tests/timezones/tests.py +++ b/tests/timezones/tests.py @@ -1,7 +1,6 @@ import datetime import re import sys -import warnings from contextlib import contextmanager from unittest import SkipTest, skipIf from xml.dom.minidom import parseString @@ -226,17 +225,13 @@ class LegacyDatabaseTests(TestCase): @override_settings(TIME_ZONE='Africa/Nairobi', USE_TZ=True) class NewDatabaseTests(TestCase): + naive_warning = 'DateTimeField Event.dt received a naive datetime' @requires_tz_support def test_naive_datetime(self): dt = datetime.datetime(2011, 9, 1, 13, 20, 30) - with warnings.catch_warnings(record=True) as recorded: - warnings.simplefilter('always') + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): Event.objects.create(dt=dt) - self.assertEqual(len(recorded), 1) - msg = str(recorded[0].message) - self.assertTrue(msg.startswith("DateTimeField Event.dt received " - "a naive datetime")) event = Event.objects.get() # naive datetimes are interpreted in local time self.assertEqual(event.dt, dt.replace(tzinfo=EAT)) @@ -244,26 +239,16 @@ class NewDatabaseTests(TestCase): @requires_tz_support def test_datetime_from_date(self): dt = datetime.date(2011, 9, 1) - with warnings.catch_warnings(record=True) as recorded: - warnings.simplefilter('always') + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): Event.objects.create(dt=dt) - self.assertEqual(len(recorded), 1) - msg = str(recorded[0].message) - self.assertTrue(msg.startswith("DateTimeField Event.dt received " - "a naive datetime")) event = Event.objects.get() self.assertEqual(event.dt, datetime.datetime(2011, 9, 1, tzinfo=EAT)) @requires_tz_support def test_naive_datetime_with_microsecond(self): dt = datetime.datetime(2011, 9, 1, 13, 20, 30, 405060) - with warnings.catch_warnings(record=True) as recorded: - warnings.simplefilter('always') + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): Event.objects.create(dt=dt) - self.assertEqual(len(recorded), 1) - msg = str(recorded[0].message) - self.assertTrue(msg.startswith("DateTimeField Event.dt received " - "a naive datetime")) event = Event.objects.get() # naive datetimes are interpreted in local time self.assertEqual(event.dt, dt.replace(tzinfo=EAT)) @@ -330,17 +315,13 @@ class NewDatabaseTests(TestCase): dt = datetime.datetime(2011, 9, 1, 12, 20, 30, tzinfo=EAT) Event.objects.create(dt=dt) dt = dt.replace(tzinfo=None) - with warnings.catch_warnings(record=True) as recorded: - warnings.simplefilter('always') - # naive datetimes are interpreted in local time + # naive datetimes are interpreted in local time + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): self.assertEqual(Event.objects.filter(dt__exact=dt).count(), 1) + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): self.assertEqual(Event.objects.filter(dt__lte=dt).count(), 1) + with self.assertWarnsMessage(RuntimeWarning, self.naive_warning): self.assertEqual(Event.objects.filter(dt__gt=dt).count(), 0) - self.assertEqual(len(recorded), 3) - for warning in recorded: - msg = str(warning.message) - self.assertTrue(msg.startswith("DateTimeField Event.dt " - "received a naive datetime")) @skipUnlessDBFeature('has_zoneinfo_database') def test_query_datetime_lookups(self): |