diff options
| author | Nick Pope <nick@nickpope.me.uk> | 2021-05-07 10:42:59 +0100 |
|---|---|---|
| committer | Carlton Gibson <carlton.gibson@noumenal.es> | 2021-05-12 11:08:41 +0200 |
| commit | d06c5b358149c02a62da8a5469264d05f29ac659 (patch) | |
| tree | 2ca0d6884062980dea5e8085af0868f9d9b5a266 /tests/utils_tests | |
| parent | 69ffb1acf38bd34f76707468bb592eb4b164e2da (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/utils_tests')
| -rw-r--r-- | tests/utils_tests/test_dateformat.py | 4 | ||||
| -rw-r--r-- | tests/utils_tests/test_http.py | 50 |
2 files changed, 34 insertions, 20 deletions
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): |
