Index: Lib/test/test_gettext.py =================================================================== --- Lib/test/test_gettext.py (Revision 50687) +++ Lib/test/test_gettext.py (Arbeitskopie) @@ -54,10 +54,27 @@ bGUKR2VuZXJhdGVkLUJ5OiBweWdldHRleHQucHkgMS4zCgA= ''' +# Bug 1448060 +''' +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"#-#-#-#-# plo.po (PACKAGE VERSION) #-#-#-#-#\n" +''' +DATA_1448060 = '''\ +3hIElQAAAAABAAAAHAAAACQAAAADAAAALAAAAAAAAAA4AAAAgAAAADkAAAABAAAAAAAAAAAAAAAA +Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04ClBsdXJhbC1Gb3JtczogbnBs +dXJhbHM9MjsgcGx1cmFsPShuICE9IDEpOwojLSMtIy0jLSMgcGxvLnBvIChQQUNLQUdFIFZFUlNJ +T04pICMtIy0jLSMtIwoA +''' + LOCALEDIR = os.path.join('xx', 'LC_MESSAGES') MOFILE = os.path.join(LOCALEDIR, 'gettext.mo') UMOFILE = os.path.join(LOCALEDIR, 'ugettext.mo') MMOFILE = os.path.join(LOCALEDIR, 'metadata.mo') +FILE_1448060 = os.path.join(LOCALEDIR, 'data1448080.mo') + try: LANG = os.environ['LANGUAGE'] except: @@ -77,6 +94,9 @@ fp = open(MMOFILE, 'wb') fp.write(base64.decodestring(MMO_DATA)) fp.close() + fp = open(FILE_1448060, 'wb') + fp.write(base64.decodestring(DATA_1448060)) + fp.close() os.environ['LANGUAGE'] = 'xx' def tearDown(self): @@ -335,6 +355,10 @@ self.assertEqual(info['last-translator'], 'John Doe \nJane Foobar ') +class Bug1448060(GettextBaseTest): + def test_weird_metadata(self): + fp = open(FILE_1448060, 'rb') + self.t = gettext.GNUTranslations(fp) def suite(): suite = unittest.TestSuite() @@ -343,6 +367,7 @@ suite.addTest(unittest.makeSuite(PluralFormsTestCase)) suite.addTest(unittest.makeSuite(UnicodeTranslationsTest)) suite.addTest(unittest.makeSuite(WeirdMetadataTest)) + suite.addTest(unittest.makeSuite(Bug1448060)) return suite