]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
add tests from r563 to trunk
authorFelix Schwarz <felix.schwarz@oss.schwarz.eu>
Fri, 4 Mar 2011 22:36:22 +0000 (22:36 +0000)
committerFelix Schwarz <felix.schwarz@oss.schwarz.eu>
Fri, 4 Mar 2011 22:36:22 +0000 (22:36 +0000)
babel/tests/dates.py

index 2bc46b4b030c278d379a143b7a46828e740a5663..09349822468012fa8fbed4508ddf4f0251c0d5e1 100644 (file)
 
 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 @@ class FormatTimedeltaTestCase(unittest.TestCase):
         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