Added test to ensure localized calendar methods return strings and not bytes.

This commit is contained in:
Serhiy Storchaka 2013-01-31 16:01:21 +02:00
commit cc9e5369d3
1 changed files with 13 additions and 3 deletions

View File

@ -457,11 +457,21 @@ class CalendarTestCase(unittest.TestCase):
# (it is still not thread-safe though) # (it is still not thread-safe though)
old_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) old_october = calendar.TextCalendar().formatmonthname(2010, 10, 10)
try: try:
calendar.LocaleTextCalendar(locale='').formatmonthname(2010, 10, 10) cal = calendar.LocaleTextCalendar(locale='')
local_weekday = cal.formatweekday(1, 10)
local_month = cal.formatmonthname(2010, 10, 10)
except locale.Error: except locale.Error:
# cannot set the system default locale -- skip rest of test # cannot set the system default locale -- skip rest of test
return raise unittest.SkipTest('cannot set the system default locale')
calendar.LocaleHTMLCalendar(locale='').formatmonthname(2010, 10) self.assertIsInstance(local_weekday, str)
self.assertIsInstance(local_month, str)
self.assertEqual(len(local_weekday), 10)
self.assertGreaterEqual(len(local_month), 10)
cal = calendar.LocaleHTMLCalendar(locale='')
local_weekday = cal.formatweekday(1)
local_month = cal.formatmonthname(2010, 10)
self.assertIsInstance(local_weekday, str)
self.assertIsInstance(local_month, str)
new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10)
self.assertEqual(old_october, new_october) self.assertEqual(old_october, new_october)