diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-01-31 13:57:51 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-01-31 13:57:51 (GMT) |
commit | 8d510cd6e117b4ec827e4a26947ea76971a55763 (patch) | |
tree | 926360993820093f362ae131e1738a72ce1dcc34 | |
parent | 0be506a5baf8b86c519e6074af43a0f91af603c6 (diff) | |
download | cpython-8d510cd6e117b4ec827e4a26947ea76971a55763.zip cpython-8d510cd6e117b4ec827e4a26947ea76971a55763.tar.gz cpython-8d510cd6e117b4ec827e4a26947ea76971a55763.tar.bz2 |
Issue #17049: Localized calendar methods now return unicode if a locale
includes an encoding and the result string contains month or weekday (was
regression from Python 2.6).
-rw-r--r-- | Lib/calendar.py | 1 | ||||
-rw-r--r-- | Lib/test/test_calendar.py | 18 | ||||
-rw-r--r-- | Misc/NEWS | 4 |
3 files changed, 20 insertions, 3 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py index 2329578..441b2f5 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -492,6 +492,7 @@ class TimeEncoding: def __enter__(self): self.oldlocale = _locale.getlocale(_locale.LC_TIME) _locale.setlocale(_locale.LC_TIME, self.locale) + return _locale.getlocale(_locale.LC_TIME)[1] def __exit__(self, *args): _locale.setlocale(_locale.LC_TIME, self.oldlocale) diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 0f91d29..40fb76d 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -255,11 +255,23 @@ class CalendarTestCase(unittest.TestCase): # (it is still not thread-safe though) old_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) 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: # cannot set the system default locale -- skip rest of test - return - calendar.LocaleHTMLCalendar(locale='').formatmonthname(2010, 10) + raise unittest.SkipTest('cannot set the system default locale') + # should be encodable + local_weekday.encode('utf-8') + local_month.encode('utf-8') + 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) + # should be encodable + local_weekday.encode('utf-8') + local_month.encode('utf-8') new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10) self.assertEqual(old_october, new_october) @@ -202,6 +202,10 @@ Core and Builtins Library ------- +- Issue #17049: Localized calendar methods now return unicode if a locale + includes an encoding and the result string contains month or weekday (was + regression from Python 2.6). + - Issue #4844: ZipFile now raises BadZipfile when opens a ZIP file with an incomplete "End of Central Directory" record. Original patch by Guilherme Polo and Alan McIntyre. |