From 671757b507a60330ee37ef749a3f3a0301258f88 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 4 Oct 2013 21:55:16 +0200 Subject: [PATCH] Fixed #21161 -- Timezone-related tests on Windows. Thanks Xelnor for the patch. --- AUTHORS | 1 + tests/template_tests/filters.py | 17 ++++++++++------- tests/utils_tests/test_timesince.py | 7 +++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/AUTHORS b/AUTHORS index af2d591ee3..0b270fec81 100644 --- a/AUTHORS +++ b/AUTHORS @@ -96,6 +96,7 @@ answer newbie questions, and generally made Django that much better: Mikaël Barbero Randy Barlow Scott Barr + Raphaël Barrois Jiri Barton Jorge Bastida Ned Batchelder diff --git a/tests/template_tests/filters.py b/tests/template_tests/filters.py index 317b8bcd23..87c6429835 100644 --- a/tests/template_tests/filters.py +++ b/tests/template_tests/filters.py @@ -10,7 +10,7 @@ from __future__ import unicode_literals from datetime import date, datetime, time, timedelta -from django.test.utils import str_prefix +from django.test.utils import str_prefix, TZ_SUPPORT from django.utils.encoding import python_2_unicode_compatible from django.utils.safestring import mark_safe from django.utils import timezone @@ -56,9 +56,10 @@ def get_filter_tests(): 'filter-timesince10': ('{{ later|timesince:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '0\xa0minutes'), # Ensures that differing timezones are calculated correctly + # Tests trying to compare a timezone-aware 'now' to now aren't supported on no-tz-support systems (e.g Windows). 'filter-timesince11' : ('{{ a|timesince }}', {'a': now}, '0\xa0minutes'), - 'filter-timesince12' : ('{{ a|timesince }}', {'a': now_tz}, '0\xa0minutes'), - 'filter-timesince13' : ('{{ a|timesince }}', {'a': now_tz_i}, '0\xa0minutes'), + 'filter-timesince12' : ('{{ a|timesince }}', {'a': now_tz}, '0\xa0minutes') if TZ_SUPPORT else ('', {}, ''), + 'filter-timesince13' : ('{{ a|timesince }}', {'a': now_tz_i}, '0\xa0minutes') if TZ_SUPPORT else ('', {}, ''), 'filter-timesince14' : ('{{ a|timesince:b }}', {'a': now_tz, 'b': now_tz_i}, '0\xa0minutes'), 'filter-timesince15' : ('{{ a|timesince:b }}', {'a': now, 'b': now_tz_i}, ''), 'filter-timesince16' : ('{{ a|timesince:b }}', {'a': now_tz_i, 'b': now}, ''), @@ -83,12 +84,14 @@ def get_filter_tests(): 'filter-timeuntil09': ('{{ later|timeuntil:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '1\xa0week'), # Ensures that differing timezones are calculated correctly - 'filter-timeuntil10' : ('{{ a|timeuntil }}', {'a': now_tz_i}, '0\xa0minutes'), - 'filter-timeuntil11' : ('{{ a|timeuntil:b }}', {'a': now_tz_i, 'b': now_tz}, '0\xa0minutes'), + # Tests trying to compare a timezone-aware 'now' to now aren't supported on no-tz-support systems (e.g Windows). + 'filter-timeuntil10' : ('{{ a|timeuntil }}', {'a': now_tz}, '0\xa0minutes') if TZ_SUPPORT else ('', {}, ''), + 'filter-timeuntil11' : ('{{ a|timeuntil }}', {'a': now_tz_i}, '0\xa0minutes') if TZ_SUPPORT else ('', {}, ''), + 'filter-timeuntil12' : ('{{ a|timeuntil:b }}', {'a': now_tz_i, 'b': now_tz}, '0\xa0minutes'), # Regression for #9065 (two date objects). - 'filter-timeuntil12' : ('{{ a|timeuntil:b }}', {'a': today, 'b': today}, '0\xa0minutes'), - 'filter-timeuntil13' : ('{{ a|timeuntil:b }}', {'a': today, 'b': today - timedelta(hours=24)}, '1\xa0day'), + 'filter-timeuntil13' : ('{{ a|timeuntil:b }}', {'a': today, 'b': today}, '0\xa0minutes'), + 'filter-timeuntil14' : ('{{ a|timeuntil:b }}', {'a': today, 'b': today - timedelta(hours=24)}, '1\xa0day'), 'filter-addslash01': ("{% autoescape off %}{{ a|addslashes }} {{ b|addslashes }}{% endautoescape %}", {"a": "'", "b": mark_safe("'")}, r"\' \'"), 'filter-addslash02': ("{{ a|addslashes }} {{ b|addslashes }}", {"a": "'", "b": mark_safe("'")}, r"<a>\' \'"), diff --git a/tests/utils_tests/test_timesince.py b/tests/utils_tests/test_timesince.py index b454131b2d..5814a7cb90 100644 --- a/tests/utils_tests/test_timesince.py +++ b/tests/utils_tests/test_timesince.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals import datetime import unittest +from django.test.utils import requires_tz_support from django.utils.timesince import timesince, timeuntil from django.utils import timezone @@ -93,6 +94,7 @@ class TimesinceTests(unittest.TestCase): self.assertEqual(timesince(self.t, self.t-4*self.oneday-5*self.oneminute), '0\xa0minutes') + @requires_tz_support def test_different_timezones(self): """ When using two different timezones. """ now = datetime.datetime.now() @@ -101,6 +103,11 @@ class TimesinceTests(unittest.TestCase): self.assertEqual(timesince(now), '0\xa0minutes') self.assertEqual(timesince(now_tz), '0\xa0minutes') + self.assertEqual(timesince(now_tz_i), '0\xa0minutes') + self.assertEqual(timesince(now_tz, now_tz_i), '0\xa0minutes') + self.assertEqual(timeuntil(now), '0\xa0minutes') + self.assertEqual(timeuntil(now_tz), '0\xa0minutes') + self.assertEqual(timeuntil(now_tz_i), '0\xa0minutes') self.assertEqual(timeuntil(now_tz, now_tz_i), '0\xa0minutes') def test_date_objects(self):