Mercurial > babel > old > babel-test
comparison babel/tests/dates.py @ 511:f2098e9c05b4 stable-0.9.x
Fix bad check in format_time (closes #257), reported with patch and tests by jomae
author | fschwarz |
---|---|
date | Fri, 04 Mar 2011 22:34:14 +0000 |
parents | 61cb2233fa49 |
children |
comparison
equal
deleted
inserted
replaced
510:d877836a8455 | 511:f2098e9c05b4 |
---|---|
11 # individuals. For the exact contribution history, see the revision | 11 # individuals. For the exact contribution history, see the revision |
12 # history and logs, available at http://babel.edgewall.org/log/. | 12 # history and logs, available at http://babel.edgewall.org/log/. |
13 | 13 |
14 from datetime import date, datetime, time | 14 from datetime import date, datetime, time |
15 import doctest | 15 import doctest |
16 import new | |
16 import unittest | 17 import unittest |
17 | 18 |
18 from pytz import timezone | 19 from pytz import timezone |
19 | 20 |
20 from babel import dates | 21 from babel import dates |
22 from babel.util import FixedOffsetTimezone | |
21 | 23 |
22 | 24 |
23 class DateTimeFormatTestCase(unittest.TestCase): | 25 class DateTimeFormatTestCase(unittest.TestCase): |
24 | 26 |
25 def test_quarter_format(self): | 27 def test_quarter_format(self): |
245 self.assertRaises(AttributeError, dates.format_time, | 247 self.assertRaises(AttributeError, dates.format_time, |
246 datetime(2007, 04, 01, 15, 30), | 248 datetime(2007, 04, 01, 15, 30), |
247 "yyyy-MM-dd HH:mm", locale='en_US') | 249 "yyyy-MM-dd HH:mm", locale='en_US') |
248 | 250 |
249 | 251 |
252 class TimeZoneAdjustTestCase(unittest.TestCase): | |
253 def _utc(self): | |
254 UTC = FixedOffsetTimezone(0, 'UTC') | |
255 def fake_localize(self, dt, is_dst=False): | |
256 raise NotImplementedError() | |
257 UTC.localize = new.instancemethod(fake_localize, UTC, UTC.__class__) | |
258 # This is important to trigger the actual bug (#257) | |
259 self.assertEqual(False, hasattr(UTC, 'normalize')) | |
260 return UTC | |
261 | |
262 def test_can_format_time_with_non_pytz_timezone(self): | |
263 # regression test for #257 | |
264 utc = self._utc() | |
265 t = datetime(2007, 4, 1, 15, 30, tzinfo=utc) | |
266 formatted_time = dates.format_time(t, 'long', tzinfo=utc, locale='en') | |
267 self.assertEqual('3:30:00 PM +0000', formatted_time) | |
268 | |
269 | |
250 def suite(): | 270 def suite(): |
251 suite = unittest.TestSuite() | 271 suite = unittest.TestSuite() |
252 suite.addTest(doctest.DocTestSuite(dates)) | 272 suite.addTest(doctest.DocTestSuite(dates)) |
253 suite.addTest(unittest.makeSuite(DateTimeFormatTestCase)) | 273 suite.addTest(unittest.makeSuite(DateTimeFormatTestCase)) |
254 suite.addTest(unittest.makeSuite(FormatDateTestCase)) | 274 suite.addTest(unittest.makeSuite(FormatDateTestCase)) |
255 suite.addTest(unittest.makeSuite(FormatTimeTestCase)) | 275 suite.addTest(unittest.makeSuite(FormatTimeTestCase)) |
276 suite.addTest(unittest.makeSuite(TimeZoneAdjustTestCase)) | |
256 return suite | 277 return suite |
257 | 278 |
258 if __name__ == '__main__': | 279 if __name__ == '__main__': |
259 unittest.main(defaultTest='suite') | 280 unittest.main(defaultTest='suite') |