Merged revisions 85728 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85728 | georg.brandl | 2010-10-19 20:54:25 +0200 (Di, 19 Okt 2010) | 1 line

  #10092: Properly reset locale in Locale*Calendar classes.  The context manager was buggy because setlocale() returns the *new* locale, not the old.  Also add a test for this.
........
This commit is contained in:
Georg Brandl 2010-11-26 07:57:57 +00:00
parent b8d0e365e2
commit 79f096a7aa
4 changed files with 31 additions and 5 deletions

View file

@ -2,6 +2,7 @@ import calendar
import unittest
from test import test_support
import locale
result_2004_text = """
@ -248,6 +249,22 @@ class CalendarTestCase(unittest.TestCase):
# verify it "acts like a sequence" in two forms of iteration
self.assertEqual(value[::-1], list(reversed(value)))
def test_localecalendars(self):
# ensure that Locale{Text,HTML}Calendar resets the locale properly
# (it is still not thread-safe though)
try:
def_locale = locale.getdefaultlocale()
except locale.Error:
# cannot determine a default locale -- skip test
return
old_october = calendar.TextCalendar().formatmonthname(2010, 10, 10)
calendar.LocaleTextCalendar(
locale=def_locale).formatmonthname(2010, 10, 10)
calendar.LocaleHTMLCalendar(
locale=def_locale).formatmonthname(2010, 10)
new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10)
self.assertEquals(old_october, new_october)
class MonthCalendarTestCase(unittest.TestCase):
def setUp(self):