diff -r 49294e55311f Lib/calendar.py --- a/Lib/calendar.py Sat Jan 26 18:08:22 2013 -0800 +++ b/Lib/calendar.py Sun Jan 27 12:00:42 2013 +0200 @@ -492,6 +492,7 @@ 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 -r 49294e55311f Lib/test/test_calendar.py --- a/Lib/test/test_calendar.py Sat Jan 26 18:08:22 2013 -0800 +++ b/Lib/test/test_calendar.py Sun Jan 27 12:00:42 2013 +0200 @@ -255,11 +255,23 @@ # (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)