Merged revisions 85223 via svnmerge from

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

........
  r85223 | eric.araujo | 2010-10-05 01:52:37 +0200 (mar., 05 oct. 2010) | 3 lines

  Fix interaction of custom translation classes and caching (#9042)
........
This commit is contained in:
Éric Araujo 2010-10-04 23:59:35 +00:00
parent 6aab8d09b1
commit c17776f96e
3 changed files with 35 additions and 1 deletions

View File

@ -471,7 +471,7 @@ def translation(domain, localedir=None, languages=None,
# once. # once.
result = None result = None
for mofile in mofiles: for mofile in mofiles:
key = os.path.abspath(mofile) key = (class_, os.path.abspath(mofile))
t = _translations.get(key) t = _translations.get(key)
if t is None: if t is None:
with open(mofile, 'rb') as fp: with open(mofile, 'rb') as fp:

View File

@ -334,6 +334,37 @@ class WeirdMetadataTest(GettextBaseTest):
'John Doe <jdoe@example.com>\nJane Foobar <jfoobar@example.com>') 'John Doe <jdoe@example.com>\nJane Foobar <jfoobar@example.com>')
class DummyGNUTranslations(gettext.GNUTranslations):
def foo(self):
return 'foo'
class GettextCacheTestCase(GettextBaseTest):
def test_cache(self):
self.localedir = os.curdir
self.mofile = MOFILE
self.assertEqual(len(gettext._translations), 0)
t = gettext.translation('gettext', self.localedir)
self.assertEqual(len(gettext._translations), 1)
t = gettext.translation('gettext', self.localedir,
class_=DummyGNUTranslations)
self.assertEqual(len(gettext._translations), 2)
self.assertEqual(t.__class__, DummyGNUTranslations)
# Calling it again doesn't add to the cache
t = gettext.translation('gettext', self.localedir,
class_=DummyGNUTranslations)
self.assertEqual(len(gettext._translations), 2)
self.assertEqual(t.__class__, DummyGNUTranslations)
def test_main(): def test_main():
test_support.run_unittest(__name__) test_support.run_unittest(__name__)

View File

@ -50,6 +50,9 @@ Core and Builtins
Library Library
------- -------
- Issue #9042: Fix interaction of custom translation classes and caching in
gettext.
- Issue #9065: tarfile no longer uses "root" as the default for the uname and - Issue #9065: tarfile no longer uses "root" as the default for the uname and
gname field. gname field.