diff babel/messages/tests/catalog.py @ 352:90849c44c531

More work on msgctxt support (#54).
author cmlenz
date Mon, 16 Jun 2008 16:49:56 +0000
parents 654b632e5482
children 36408f068138
line wrap: on
line diff
--- a/babel/messages/tests/catalog.py
+++ b/babel/messages/tests/catalog.py
@@ -146,6 +146,36 @@
         self.assertEqual(None, cat['foo'].string)
         self.assertEqual(False, cat['foo'].fuzzy)
 
+    def test_update_fuzzy_matching_with_new_context(self):
+        cat = catalog.Catalog()
+        cat.add('foo', 'Voh')
+        cat.add('bar', 'Bahr')
+        tmpl = catalog.Catalog()
+        tmpl.add('Foo', context='Menu')
+        cat.update(tmpl)
+        self.assertEqual(1, len(cat.obsolete))
+        assert 'foo' not in cat
+
+        message = cat.get('Foo', 'Menu')
+        self.assertEqual('Voh', message.string)
+        self.assertEqual(True, message.fuzzy)
+        self.assertEqual('Menu', message.context)
+
+    def test_update_fuzzy_matching_with_changed_context(self):
+        cat = catalog.Catalog()
+        cat.add('foo', 'Voh', context='Menu|File')
+        cat.add('bar', 'Bahr', context='Menu|File')
+        tmpl = catalog.Catalog()
+        tmpl.add('Foo', context='Menu|Edit')
+        cat.update(tmpl)
+        self.assertEqual(1, len(cat.obsolete))
+        assert cat.get('Foo', 'Menu|File') is None
+
+        message = cat.get('Foo', 'Menu|Edit')
+        self.assertEqual('Voh', message.string)
+        self.assertEqual(True, message.fuzzy)
+        self.assertEqual('Menu|Edit', message.context)
+
     def test_update_fuzzy_matching_no_cascading(self):
         cat = catalog.Catalog()
         cat.add('fo', 'Voh')
@@ -186,6 +216,7 @@
         self.assertEqual(None, cat2['foo'].string)
         self.assertEqual(False, cat2['foo'].fuzzy)
 
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(doctest.DocTestSuite(catalog, optionflags=doctest.ELLIPSIS))
Copyright (C) 2012-2017 Edgewall Software