Mercurial > babel > old > mirror
changeset 514:b226c4d5386e
add tests from r563 to trunk
author | fschwarz |
---|---|
date | Fri, 04 Mar 2011 22:36:22 +0000 |
parents | db2bf9d221fc |
children | 53186cab0091 |
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