]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Follow-up to [239]: also combine duplicate comments when writing PO files.
authorChristopher Lenz <cmlenz@gmail.com>
Fri, 20 Jul 2007 16:47:08 +0000 (16:47 +0000)
committerChristopher Lenz <cmlenz@gmail.com>
Fri, 20 Jul 2007 16:47:08 +0000 (16:47 +0000)
babel/messages/catalog.py
babel/messages/tests/catalog.py
babel/messages/tests/pofile.py

index d96f9314e53d94c80835bac03487807b1b82c385..fc39a019a61dd25e5dc32511d82b59189aac5102 100644 (file)
@@ -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 == '':
index 8db65ae01744d30ba3d9549c72aa0fb5a2dca954..c2b6f45f235750a10c2fc72e1c4d73246c6feb91 100644 (file)
@@ -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()
index 8d34c85cff6c8be2391f82b2a6069495609670ba..f28735af7e504cb9603e21961339b5f128f33c16 100644 (file)
@@ -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):