mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Optimized make_aware/naive by removing redundant checks. Refs #22625.
Also added tests with pytz and removed misplaced tests.
This commit is contained in:
parent
fa89acf1d0
commit
1109ebd7b3
3 changed files with 42 additions and 36 deletions
|
@ -3,10 +3,17 @@ import datetime
|
|||
import pickle
|
||||
import unittest
|
||||
|
||||
try:
|
||||
import pytz
|
||||
except ImportError:
|
||||
pytz = None
|
||||
|
||||
from django.test import override_settings
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
if pytz is not None:
|
||||
CET = pytz.timezone("Europe/Paris")
|
||||
EAT = timezone.get_fixed_timezone(180) # Africa/Nairobi
|
||||
ICT = timezone.get_fixed_timezone(420) # Asia/Bangkok
|
||||
|
||||
|
@ -19,6 +26,10 @@ class TimezoneTests(unittest.TestCase):
|
|||
local_now = timezone.localtime(now, local_tz)
|
||||
self.assertEqual(local_now.tzinfo, local_tz)
|
||||
|
||||
def test_localtime_naive(self):
|
||||
with self.assertRaises(ValueError):
|
||||
timezone.localtime(datetime.datetime.now())
|
||||
|
||||
def test_localtime_out_of_range(self):
|
||||
local_tz = timezone.LocalTimezone()
|
||||
long_ago = datetime.datetime(1900, 1, 1, tzinfo=timezone.utc)
|
||||
|
@ -96,3 +107,22 @@ class TimezoneTests(unittest.TestCase):
|
|||
datetime.datetime(2011, 9, 1, 13, 20, 30))
|
||||
with self.assertRaises(ValueError):
|
||||
timezone.make_naive(datetime.datetime(2011, 9, 1, 13, 20, 30), EAT)
|
||||
|
||||
@unittest.skipIf(pytz is None, "this test requires pytz")
|
||||
def test_make_aware(self):
|
||||
self.assertEqual(
|
||||
timezone.make_aware(datetime.datetime(2011, 9, 1, 12, 20, 30), CET),
|
||||
CET.localize(datetime.datetime(2011, 9, 1, 12, 20, 30)))
|
||||
with self.assertRaises(ValueError):
|
||||
timezone.make_aware(CET.localize(datetime.datetime(2011, 9, 1, 12, 20, 30)), CET)
|
||||
|
||||
@unittest.skipIf(pytz is None, "this test requires pytz")
|
||||
def test_make_aware_pytz(self):
|
||||
self.assertEqual(
|
||||
timezone.make_naive(CET.localize(datetime.datetime(2011, 9, 1, 12, 20, 30)), CET),
|
||||
datetime.datetime(2011, 9, 1, 12, 20, 30))
|
||||
self.assertEqual(
|
||||
timezone.make_naive(pytz.timezone("Asia/Bangkok").localize(datetime.datetime(2011, 9, 1, 17, 20, 30)), CET),
|
||||
datetime.datetime(2011, 9, 1, 12, 20, 30))
|
||||
with self.assertRaises(ValueError):
|
||||
timezone.make_naive(datetime.datetime(2011, 9, 1, 12, 20, 30), CET)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue