Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(47)

Issue 62: CPO support for previous messages

Unified Diff

File: translate/storage/test_cpo.py
Patch Set: Fixed minor issues Created 1 year, 5 months ago
Jump to:
View side by-side-diff with in line comments
« translate/storage/cpo.py ('k') | no next file »
Index: translate/storage/test_cpo.py
===================================================================
--- translate/storage/test_cpo.py	(revision 7803)
+++ translate/storage/test_cpo.py	(working copy)
@@ -72,6 +72,83 @@
         unit.addnote("# Double commented comment")
         assert unit.getnotes() == "# Double commented comment"
 
+    def test_previous_source(self):
+        """tests if we handle previous msgid properly"""
+        unit = self.UnitClass("Cat")
+        assert unit.prev_source == ""
+        assert isinstance(unit.prev_source, multistring)
+
+        unit.prev_source = "Feline"
+        assert unit.prev_source == "Feline"
+        assert isinstance(unit.prev_source, multistring)
+
+        unit.prev_source = ["Feline", "Felines"]
+        assert unit.prev_source.strings == ["Feline", "Felines"]
+        assert unit.prev_source == "Feline"
+        assert isinstance(unit.prev_source, multistring)
+
+        unit.prev_source = ""
+        assert unit.prev_source == ""
+        assert unit.source == "Cat"
+        assert len(unit.prev_source.strings) == 1
+        assert isinstance(unit.prev_source, multistring)
+
+        unit.source = ""
+        unit.prev_source = "Feline"
+        assert unit.prev_source == ""
+        unit.source = "Cat"
+
+        unit.markfuzzy()
+        unit.prev_source = "Feline"
+        assert unit.prev_source == ""
+        assert len(unit.prev_source.strings) == 1
+        assert isinstance(unit.prev_source, multistring)
+
+    def test_previous_context(self):
+        """tests if we handle previous context messages properly"""
+        unit = self.UnitClass("Cat")
+        assert unit.prev_context == ""
+
+        context = "A sort of a cute animal"
+        unit.prev_context = context
+        assert unit.prev_context == context
+
+        unit.prev_context = ""
+        assert unit.prev_context == ""
+
+        unit.markfuzzy()
+        unit.prev_context = "A sort of a cute animal"
+        assert unit.prev_context == ""
+
+    def test_set_as_previous(self):
+        """tests if we set previous messages properly"""
+        # This is just a sanity test, for a more complete test look
+        # at convert/test_pot2po.py
+        unit = self.UnitClass(["Test %d", "Tests %d"])
+        unit.target = ["Teste %d", "Testes %d"]
+        unit.set_as_previous()
+        unit.source = "Test %s"
+        test_unit = '''#, fuzzy\n#| msgid "Test %d"\n#| msgid_plural "Tests %d"
+msgid "Test %s"\nmsgstr "Teste %d"\n'''
+        assert str(unit) == test_unit
+        assert unit.isfuzzy()
+
+        # without a target, the unit remain the same
+        unit2 = self.UnitClass(["Other", "Others"])
+        expected = str(unit2)
+        unit2.set_as_previous()
+        assert str(unit2) == expected
+
+        # we can't set a message as previous if the message is marked as fuzzy
+        unit = self.UnitClass("Pizza")
+        unit.msgid_plural = ["Pizzas"]
+        unit.target = ["Pizza", "Pizzas"]
+        unit.markfuzzy()
+        unit.set_as_previous()
+        assert unit.prev_context == ""
+        assert unit.prev_source == ""
+
+
 class TestCPOFile(test_po.TestPOFile):
     StoreClass = cpo.pofile
     def test_msgidcomments(self):

« translate/storage/cpo.py ('k') | no next file »

Powered by Google App Engine
This is Rietveld r159