changeset 512:0effa7def363

add tests from r563 to trunk
author fschwarz
date Fri, 04 Mar 2011 22:36:22 +0000
parents b3dd65de2a5a
children bd4503892806
files babel/tests/dates.py
diffstat 1 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/babel/tests/dates.py
+++ b/babel/tests/dates.py
@@ -13,11 +13,13 @@
 
 from datetime import date, datetime, time
 import doctest
+import new
 import unittest
 
 from pytz import timezone
 
 from babel import dates
+from babel.util import FixedOffsetTimezone
 
 
 class DateTimeFormatTestCase(unittest.TestCase):
@@ -262,12 +264,31 @@
         self.assertEqual('1 hour', string)
 
 
+class TimeZoneAdjustTestCase(unittest.TestCase):
+    def _utc(self):
+        UTC = FixedOffsetTimezone(0, 'UTC')
+        def fake_localize(self, dt, is_dst=False):
+            raise NotImplementedError()
+        UTC.localize = new.instancemethod(fake_localize, UTC, UTC.__class__)
+        # This is important to trigger the actual bug (#257)
+        self.assertEqual(False, hasattr(UTC, 'normalize'))
+        return UTC
+
+    def test_can_format_time_with_non_pytz_timezone(self):
+        # regression test for #257
+        utc = self._utc()
+        t = datetime(2007, 4, 1, 15, 30, tzinfo=utc)
+        formatted_time = dates.format_time(t, 'long', tzinfo=utc, locale='en')
+        self.assertEqual('3:30:00 PM +0000', formatted_time)
+
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(doctest.DocTestSuite(dates))
     suite.addTest(unittest.makeSuite(DateTimeFormatTestCase))
     suite.addTest(unittest.makeSuite(FormatDateTestCase))
     suite.addTest(unittest.makeSuite(FormatTimeTestCase))
+    suite.addTest(unittest.makeSuite(TimeZoneAdjustTestCase))
     return suite
 
 
Copyright (C) 2012-2017 Edgewall Software