Kaydet (Commit) 6108bf5e authored tarafından Éric Araujo's avatar Éric Araujo

Fix interaction of custom translation classes and caching (#9042)

üst 70176169
......@@ -419,7 +419,7 @@ def translation(domain, localedir=None, languages=None,
# once.
result = None
for mofile in mofiles:
key = os.path.abspath(mofile)
key = (class_, os.path.abspath(mofile))
t = _translations.get(key)
if t is None:
with open(mofile, 'rb') as fp:
......
......@@ -335,6 +335,37 @@ class WeirdMetadataTest(GettextBaseTest):
'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():
support.run_unittest(__name__)
......
......@@ -88,6 +88,9 @@ Core and Builtins
Library
-------
- Issue #9042: Fix interaction of custom translation classes and caching in
gettext.
- Issue 6706: asyncore.dispatcher now provides a handle_accepted() method
returning a (sock, addr) pair which is called when a connection has been
established with a new remote endpoint. This is supposed to be used as a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment