summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNick Pope <nick@nickpope.me.uk>2021-05-07 10:42:59 +0100
committerCarlton Gibson <carlton.gibson@noumenal.es>2021-05-12 11:08:41 +0200
commitd06c5b358149c02a62da8a5469264d05f29ac659 (patch)
tree2ca0d6884062980dea5e8085af0868f9d9b5a266 /tests
parent69ffb1acf38bd34f76707468bb592eb4b164e2da (diff)
Fixed #32366 -- Updated datetime module usage to recommended approach.
- Replaced datetime.utcnow() with datetime.now(). - Replaced datetime.utcfromtimestamp() with datetime.fromtimestamp(). - Replaced datetime.utctimetuple() with datetime.timetuple(). - Replaced calendar.timegm() and datetime.utctimetuple() with datetime.timestamp().
Diffstat (limited to 'tests')
-rw-r--r--tests/foreign_object/tests.py2
-rw-r--r--tests/migrations/test_writer.py8
-rw-r--r--tests/responses/test_cookie.py4
-rw-r--r--tests/utils_tests/test_dateformat.py4
-rw-r--r--tests/utils_tests/test_http.py50
5 files changed, 41 insertions, 27 deletions
diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py
index 2473a0a732..72d50cad6b 100644
--- a/tests/foreign_object/tests.py
+++ b/tests/foreign_object/tests.py
@@ -92,7 +92,7 @@ class MultiColumnFKTests(TestCase):
def test_reverse_query_filters_correctly(self):
- timemark = datetime.datetime.utcnow()
+ timemark = datetime.datetime.now(tz=datetime.timezone.utc).replace(tzinfo=None)
timedelta = datetime.timedelta(days=1)
# Creating a to valid memberships
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
index 96b2140089..bb7506c052 100644
--- a/tests/migrations/test_writer.py
+++ b/tests/migrations/test_writer.py
@@ -479,8 +479,8 @@ class WriterTests(SimpleTestCase):
self.serialize_round_trip(models.SET(42))
def test_serialize_datetime(self):
- self.assertSerializedEqual(datetime.datetime.utcnow())
- self.assertSerializedEqual(datetime.datetime.utcnow)
+ self.assertSerializedEqual(datetime.datetime.now())
+ self.assertSerializedEqual(datetime.datetime.now)
self.assertSerializedEqual(datetime.datetime.today())
self.assertSerializedEqual(datetime.datetime.today)
self.assertSerializedEqual(datetime.date.today())
@@ -662,8 +662,8 @@ class WriterTests(SimpleTestCase):
Tests serializing a simple migration.
"""
fields = {
- 'charfield': models.DateTimeField(default=datetime.datetime.utcnow),
- 'datetimefield': models.DateTimeField(default=datetime.datetime.utcnow),
+ 'charfield': models.DateTimeField(default=datetime.datetime.now),
+ 'datetimefield': models.DateTimeField(default=datetime.datetime.now),
}
options = {
diff --git a/tests/responses/test_cookie.py b/tests/responses/test_cookie.py
index fd3a55442c..96dd603aac 100644
--- a/tests/responses/test_cookie.py
+++ b/tests/responses/test_cookie.py
@@ -19,7 +19,7 @@ class SetCookieTests(SimpleTestCase):
# evaluated expiration time and the time evaluated in set_cookie(). If
# this difference doesn't exist, the cookie time will be 1 second
# larger. The sleep guarantees that there will be a time difference.
- expires = datetime.utcnow() + timedelta(seconds=10)
+ expires = datetime.now(tz=utc).replace(tzinfo=None) + timedelta(seconds=10)
time.sleep(0.001)
response.set_cookie('datetime', expires=expires)
datetime_cookie = response.cookies['datetime']
@@ -28,7 +28,7 @@ class SetCookieTests(SimpleTestCase):
def test_aware_expiration(self):
"""set_cookie() accepts an aware datetime as expiration time."""
response = HttpResponse()
- expires = (datetime.utcnow() + timedelta(seconds=10)).replace(tzinfo=utc)
+ expires = datetime.now(tz=utc) + timedelta(seconds=10)
time.sleep(0.001)
response.set_cookie('datetime', expires=expires)
datetime_cookie = response.cookies['datetime']
diff --git a/tests/utils_tests/test_dateformat.py b/tests/utils_tests/test_dateformat.py
index f57c67078f..17ddd573ed 100644
--- a/tests/utils_tests/test_dateformat.py
+++ b/tests/utils_tests/test_dateformat.py
@@ -54,8 +54,8 @@ class DateFormatTests(SimpleTestCase):
self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U')), ltz), dt)
# astimezone() is safe here because the target timezone doesn't have DST
self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U'))), dt.astimezone(ltz).replace(tzinfo=None))
- self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U')), tz).utctimetuple(), dt.utctimetuple())
- self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U')), ltz).utctimetuple(), dt.utctimetuple())
+ self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U')), tz).timetuple(), dt.astimezone(tz).timetuple())
+ self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U')), ltz).timetuple(), dt.astimezone(ltz).timetuple())
def test_epoch(self):
udt = datetime(1970, 1, 1, tzinfo=utc)
diff --git a/tests/utils_tests/test_http.py b/tests/utils_tests/test_http.py
index 675a6e186e..6867ed8274 100644
--- a/tests/utils_tests/test_http.py
+++ b/tests/utils_tests/test_http.py
@@ -1,6 +1,6 @@
import platform
import unittest
-from datetime import datetime
+from datetime import datetime, timezone
from unittest import mock
from django.test import SimpleTestCase
@@ -288,38 +288,52 @@ class HttpDateProcessingTests(unittest.TestCase):
def test_parsing_rfc1123(self):
parsed = parse_http_date('Sun, 06 Nov 1994 08:49:37 GMT')
- self.assertEqual(datetime.utcfromtimestamp(parsed), datetime(1994, 11, 6, 8, 49, 37))
+ self.assertEqual(
+ datetime.fromtimestamp(parsed, timezone.utc),
+ datetime(1994, 11, 6, 8, 49, 37, tzinfo=timezone.utc),
+ )
@unittest.skipIf(platform.architecture()[0] == '32bit', 'The Year 2038 problem.')
@mock.patch('django.utils.http.datetime.datetime')
def test_parsing_rfc850(self, mocked_datetime):
mocked_datetime.side_effect = datetime
- mocked_datetime.utcnow = mock.Mock()
- utcnow_1 = datetime(2019, 11, 6, 8, 49, 37)
- utcnow_2 = datetime(2020, 11, 6, 8, 49, 37)
- utcnow_3 = datetime(2048, 11, 6, 8, 49, 37)
+ mocked_datetime.now = mock.Mock()
+ now_1 = datetime(2019, 11, 6, 8, 49, 37, tzinfo=timezone.utc)
+ now_2 = datetime(2020, 11, 6, 8, 49, 37, tzinfo=timezone.utc)
+ now_3 = datetime(2048, 11, 6, 8, 49, 37, tzinfo=timezone.utc)
tests = (
- (utcnow_1, 'Tuesday, 31-Dec-69 08:49:37 GMT', datetime(2069, 12, 31, 8, 49, 37)),
- (utcnow_1, 'Tuesday, 10-Nov-70 08:49:37 GMT', datetime(1970, 11, 10, 8, 49, 37)),
- (utcnow_1, 'Sunday, 06-Nov-94 08:49:37 GMT', datetime(1994, 11, 6, 8, 49, 37)),
- (utcnow_2, 'Wednesday, 31-Dec-70 08:49:37 GMT', datetime(2070, 12, 31, 8, 49, 37)),
- (utcnow_2, 'Friday, 31-Dec-71 08:49:37 GMT', datetime(1971, 12, 31, 8, 49, 37)),
- (utcnow_3, 'Sunday, 31-Dec-00 08:49:37 GMT', datetime(2000, 12, 31, 8, 49, 37)),
- (utcnow_3, 'Friday, 31-Dec-99 08:49:37 GMT', datetime(1999, 12, 31, 8, 49, 37)),
+ (now_1, 'Tuesday, 31-Dec-69 08:49:37 GMT', datetime(2069, 12, 31, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_1, 'Tuesday, 10-Nov-70 08:49:37 GMT', datetime(1970, 11, 10, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_1, 'Sunday, 06-Nov-94 08:49:37 GMT', datetime(1994, 11, 6, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_2, 'Wednesday, 31-Dec-70 08:49:37 GMT', datetime(2070, 12, 31, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_2, 'Friday, 31-Dec-71 08:49:37 GMT', datetime(1971, 12, 31, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_3, 'Sunday, 31-Dec-00 08:49:37 GMT', datetime(2000, 12, 31, 8, 49, 37, tzinfo=timezone.utc)),
+ (now_3, 'Friday, 31-Dec-99 08:49:37 GMT', datetime(1999, 12, 31, 8, 49, 37, tzinfo=timezone.utc)),
)
- for utcnow, rfc850str, expected_date in tests:
+ for now, rfc850str, expected_date in tests:
with self.subTest(rfc850str=rfc850str):
- mocked_datetime.utcnow.return_value = utcnow
+ mocked_datetime.now.return_value = now
parsed = parse_http_date(rfc850str)
- self.assertEqual(datetime.utcfromtimestamp(parsed), expected_date)
+ mocked_datetime.now.assert_called_once_with(tz=timezone.utc)
+ self.assertEqual(
+ datetime.fromtimestamp(parsed, timezone.utc),
+ expected_date,
+ )
+ mocked_datetime.reset_mock()
def test_parsing_asctime(self):
parsed = parse_http_date('Sun Nov 6 08:49:37 1994')
- self.assertEqual(datetime.utcfromtimestamp(parsed), datetime(1994, 11, 6, 8, 49, 37))
+ self.assertEqual(
+ datetime.fromtimestamp(parsed, timezone.utc),
+ datetime(1994, 11, 6, 8, 49, 37, tzinfo=timezone.utc),
+ )
def test_parsing_year_less_than_70(self):
parsed = parse_http_date('Sun Nov 6 08:49:37 0037')
- self.assertEqual(datetime.utcfromtimestamp(parsed), datetime(2037, 11, 6, 8, 49, 37))
+ self.assertEqual(
+ datetime.fromtimestamp(parsed, timezone.utc),
+ datetime(2037, 11, 6, 8, 49, 37, tzinfo=timezone.utc),
+ )
class EscapeLeadingSlashesTests(unittest.TestCase):