summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2016-08-31 17:19:33 -0700
committerGitHub <noreply@github.com>2016-08-31 17:19:33 -0700
commitff1e7b4eb43737bf2752197036663cee58922317 (patch)
tree3ef2013de20c59e91dbe2532383ea62bb4763f20 /tests/utils_tests
parentd8ef5b0e6501692b8b767ebccddc936f496d77e8 (diff)
Fixed #25181 -- Added localdate() function to get date in a different time zone.
Thanks Konrad Świat for the original patch.
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/test_timezone.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py
index 5f21c06bae..9dc7941b4b 100644
--- a/tests/utils_tests/test_timezone.py
+++ b/tests/utils_tests/test_timezone.py
@@ -4,7 +4,7 @@ import pickle
import sys
import unittest
-from django.test import SimpleTestCase, override_settings
+from django.test import SimpleTestCase, mock, override_settings
from django.utils import timezone
try:
@@ -27,7 +27,10 @@ class TimezoneTests(SimpleTestCase):
def test_localtime(self):
now = datetime.datetime.utcnow().replace(tzinfo=timezone.utc)
local_tz = timezone.LocalTimezone()
- local_now = timezone.localtime(now, local_tz)
+ with timezone.override(local_tz):
+ local_now = timezone.localtime(now)
+ self.assertEqual(local_now.tzinfo, local_tz)
+ local_now = timezone.localtime(now, timezone=local_tz)
self.assertEqual(local_now.tzinfo, local_tz)
def test_localtime_naive(self):
@@ -54,6 +57,27 @@ class TimezoneTests(SimpleTestCase):
with override_settings(USE_TZ=False):
self.assertTrue(timezone.is_naive(timezone.now()))
+ def test_localdate(self):
+ naive = datetime.datetime(2015, 1, 1, 0, 0, 1)
+ if PY36:
+ self.assertEqual(timezone.localdate(naive), datetime.date(2015, 1, 1))
+ self.assertEqual(timezone.localdate(naive, timezone=EAT), datetime.date(2015, 1, 1))
+ else:
+ with self.assertRaisesMessage(ValueError, 'astimezone() cannot be applied to a naive datetime'):
+ timezone.localdate(naive)
+ with self.assertRaisesMessage(ValueError, 'astimezone() cannot be applied to a naive datetime'):
+ timezone.localdate(naive, timezone=EAT)
+
+ aware = datetime.datetime(2015, 1, 1, 0, 0, 1, tzinfo=ICT)
+ self.assertEqual(timezone.localdate(aware, timezone=EAT), datetime.date(2014, 12, 31))
+ with timezone.override(EAT):
+ self.assertEqual(timezone.localdate(aware), datetime.date(2014, 12, 31))
+
+ with mock.patch('django.utils.timezone.now', return_value=aware):
+ self.assertEqual(timezone.localdate(timezone=EAT), datetime.date(2014, 12, 31))
+ with timezone.override(EAT):
+ self.assertEqual(timezone.localdate(), datetime.date(2014, 12, 31))
+
def test_override(self):
default = timezone.get_default_timezone()
try: