diff babel/messages/tests/catalog.py @ 314:5c0bda4f20b1

Fix catalog updating with fuzzy matches. Closes #82.
author cmlenz
date Fri, 01 Feb 2008 13:38:09 +0000
parents 3308e9971fab
children 654b632e5482
line wrap: on
line diff
--- a/babel/messages/tests/catalog.py
+++ b/babel/messages/tests/catalog.py
@@ -131,6 +131,40 @@
         self.assertEqual('Voh', cat['foo'].string)
         self.assertEqual(True, cat['foo'].fuzzy)
 
+    def test_update_fuzzy_matching_no_msgstr(self):
+        cat = catalog.Catalog()
+        cat.add('fo', '')
+        tmpl = catalog.Catalog()
+        tmpl.add('fo')
+        tmpl.add('foo')
+        cat.update(tmpl)
+        assert 'fo' in cat
+        assert 'foo' in cat
+
+        self.assertEqual('', cat['fo'].string)
+        self.assertEqual(False, cat['fo'].fuzzy)
+        self.assertEqual(None, cat['foo'].string)
+        self.assertEqual(False, cat['foo'].fuzzy)
+
+    def test_update_fuzzy_matching_no_cascading(self):
+        cat = catalog.Catalog()
+        cat.add('fo', 'Voh')
+        cat.add('foo', 'Vohe')
+        tmpl = catalog.Catalog()
+        tmpl.add('fo')
+        tmpl.add('foo')
+        tmpl.add('fooo')
+        cat.update(tmpl)
+        assert 'fo' in cat
+        assert 'foo' in cat
+
+        self.assertEqual('Voh', cat['fo'].string)
+        self.assertEqual(False, cat['fo'].fuzzy)
+        self.assertEqual('Vohe', cat['foo'].string)
+        self.assertEqual(False, cat['foo'].fuzzy)
+        self.assertEqual('Vohe', cat['fooo'].string)
+        self.assertEqual(True, cat['fooo'].fuzzy)
+
     def test_update_without_fuzzy_matching(self):
         cat = catalog.Catalog()
         cat.add('fo', 'Voh')
Copyright (C) 2012-2017 Edgewall Software