From: Christopher Lenz Date: Fri, 20 Jul 2007 16:47:08 +0000 (+0000) Subject: Follow-up to [239]: also combine duplicate comments when writing PO files. X-Git-Tag: 1.0~421 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb26be400e51fe51644ef29bf679207adc0fd2e5;p=thirdparty%2Fbabel.git Follow-up to [239]: also combine duplicate comments when writing PO files. --- diff --git a/babel/messages/catalog.py b/babel/messages/catalog.py index d96f9314..fc39a019 100644 --- a/babel/messages/catalog.py +++ b/babel/messages/catalog.py @@ -471,8 +471,10 @@ class Catalog(object): current.id = message.id current.string = message.string current.locations.extend(message.locations) - current.auto_comments.extend(message.auto_comments) - current.user_comments.extend(message.user_comments) + current.auto_comments = list(distinct(current.auto_comments + + message.auto_comments)) + current.user_comments = list(distinct(current.user_comments + + message.user_comments)) current.flags |= message.flags message = current elif id == '': diff --git a/babel/messages/tests/catalog.py b/babel/messages/tests/catalog.py index 8db65ae0..c2b6f45f 100644 --- a/babel/messages/tests/catalog.py +++ b/babel/messages/tests/catalog.py @@ -54,12 +54,18 @@ class CatalogTestCase(unittest.TestCase): self.assertEqual(1, len(cat)) def test_duplicate_auto_comment(self): - msg = catalog.Message('foo', auto_comments=['A comment', 'A comment']) - self.assertEqual(['A comment'], msg.auto_comments) + cat = catalog.Catalog() + cat.add('foo', auto_comments=['A comment']) + cat.add('foo', auto_comments=['A comment', 'Another comment']) + self.assertEqual(['A comment', 'Another comment'], + cat['foo'].auto_comments) def test_duplicate_user_comment(self): - msg = catalog.Message('foo', user_comments=['A comment', 'A comment']) - self.assertEqual(['A comment'], msg.user_comments) + cat = catalog.Catalog() + cat.add('foo', user_comments=['A comment']) + cat.add('foo', user_comments=['A comment', 'Another comment']) + self.assertEqual(['A comment', 'Another comment'], + cat['foo'].user_comments) def test_update_message_updates_comments(self): cat = catalog.Catalog() diff --git a/babel/messages/tests/pofile.py b/babel/messages/tests/pofile.py index 8d34c85c..f28735af 100644 --- a/babel/messages/tests/pofile.py +++ b/babel/messages/tests/pofile.py @@ -118,6 +118,16 @@ class WritePoTestCase(unittest.TestCase): pofile.write_po(buf, catalog, omit_header=True) self.assertEqual('''#: main.py:1 utils.py:3 msgid "foo" +msgstr ""''', buf.getvalue().strip()) + + def test_duplicate_comments(self): + catalog = Catalog() + catalog.add(u'foo', auto_comments=['A comment']) + catalog.add(u'foo', auto_comments=['A comment']) + buf = StringIO() + pofile.write_po(buf, catalog, omit_header=True) + self.assertEqual('''#. A comment +msgid "foo" msgstr ""''', buf.getvalue().strip()) def test_wrap_long_lines(self):