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.
........
diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py
index fad517c..8396bdf 100644
--- a/Lib/test/test_calendar.py
+++ b/Lib/test/test_calendar.py
@@ -2,6 +2,7 @@
 import unittest
 
 from test import test_support
+import locale
 
 
 result_2004_text = """
@@ -248,6 +249,22 @@
             # 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):