summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-05-16 23:12:59 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-05-16 23:12:59 +0200
commit1109ebd7b373e14b68616346ea5dd3e89a8ae2fe (patch)
treeace55cb69900fe2953ec562a8a072939c15f6dbf /tests
parentfa89acf1d0a4adbf0802c1275494f5159a912c9e (diff)
Optimized make_aware/naive by removing redundant checks. Refs #22625.
Also added tests with pytz and removed misplaced tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/timezones/tests.py28
-rw-r--r--tests/utils_tests/test_timezone.py30
2 files changed, 30 insertions, 28 deletions
diff --git a/tests/timezones/tests.py b/tests/timezones/tests.py
index d16c7f7fd2..ab9ed6b1a1 100644
--- a/tests/timezones/tests.py
+++ b/tests/timezones/tests.py
@@ -1120,31 +1120,3 @@ class AdminTests(TestCase):
with timezone.override(ICT):
response = self.client.get(reverse('admin:timezones_timestamp_change', args=(t.pk,)))
self.assertContains(response, t.created.astimezone(ICT).isoformat())
-
-
-@override_settings(TIME_ZONE='Africa/Nairobi')
-class UtilitiesTests(TestCase):
-
- def test_make_aware(self):
- self.assertEqual(
- timezone.make_aware(datetime.datetime(2011, 9, 1, 13, 20, 30), EAT),
- datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT)
- )
- self.assertEqual(
- timezone.make_aware(datetime.datetime(2011, 9, 1, 10, 20, 30), UTC),
- datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC)
- )
-
- def test_make_naive(self):
- self.assertEqual(
- timezone.make_naive(datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT), EAT),
- datetime.datetime(2011, 9, 1, 13, 20, 30)
- )
- self.assertEqual(
- timezone.make_naive(datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT), UTC),
- datetime.datetime(2011, 9, 1, 10, 20, 30)
- )
- self.assertEqual(
- timezone.make_naive(datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC), UTC),
- datetime.datetime(2011, 9, 1, 10, 20, 30)
- )
diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py
index 4b5a39a928..aec58e394f 100644
--- a/tests/utils_tests/test_timezone.py
+++ b/tests/utils_tests/test_timezone.py
@@ -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)