gh-91928: Add datetime.UTC alias for datetime.timezone.utc (GH-91973)

### fixes #91928

`UTC` is now module attribute aliased to `datetime.timezone.utc`.
You can now do the following:
```python
from datetime import UTC
```
This commit is contained in:
Kabir Kwatra 2022-05-03 15:14:25 -07:00 committed by GitHub
parent ee2205b208
commit 48c6165c28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 3 deletions

View file

@ -28,6 +28,7 @@ from datetime import timedelta
from datetime import tzinfo
from datetime import time
from datetime import timezone
from datetime import UTC
from datetime import date, datetime
import time as _time
@ -66,6 +67,9 @@ class TestModule(unittest.TestCase):
self.assertEqual(datetime.MINYEAR, 1)
self.assertEqual(datetime.MAXYEAR, 9999)
def test_utc_alias(self):
self.assertIs(UTC, timezone.utc)
def test_all(self):
"""Test that __all__ only points to valid attributes."""
all_attrs = dir(datetime_module)
@ -81,7 +85,7 @@ class TestModule(unittest.TestCase):
if not name.startswith('__') and not name.endswith('__'))
allowed = set(['MAXYEAR', 'MINYEAR', 'date', 'datetime',
'datetime_CAPI', 'time', 'timedelta', 'timezone',
'tzinfo', 'sys'])
'tzinfo', 'UTC', 'sys'])
self.assertEqual(names - allowed, set([]))
def test_divide_and_round(self):
@ -310,6 +314,7 @@ class TestTimeZone(unittest.TestCase):
def test_tzname(self):
self.assertEqual('UTC', timezone.utc.tzname(None))
self.assertEqual('UTC', UTC.tzname(None))
self.assertEqual('UTC', timezone(ZERO).tzname(None))
self.assertEqual('UTC-05:00', timezone(-5 * HOUR).tzname(None))
self.assertEqual('UTC+09:30', timezone(9.5 * HOUR).tzname(None))