| LEFT | RIGHT |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # -*- coding: utf-8 -*- | 2 # -*- coding: utf-8 -*- |
| 3 | 3 |
| 4 from translate.storage import test_po | 4 from translate.storage import test_po |
| 5 from translate.storage import cpo | 5 from translate.storage import cpo |
| 6 from translate.misc.multistring import multistring | 6 from translate.misc.multistring import multistring |
| 7 from translate.misc import wStringIO | 7 from translate.misc import wStringIO |
| 8 from py.test import raises | 8 from py.test import raises |
| 9 | 9 |
| 10 class TestCPOUnit(test_po.TestPOUnit): | 10 class TestCPOUnit(test_po.TestPOUnit): |
| 11 UnitClass = cpo.pounit | 11 UnitClass = cpo.pounit |
| 12 | 12 |
| 13 def test_plurals(self): | 13 def test_plurals(self): |
| 14 """Tests that plurals are handled correctly.""" | 14 """Tests that plurals are handled correctly.""" |
| 15 unit = self.UnitClass("Cow") | 15 unit = self.UnitClass("Cow") |
| 16 unit.msgid_plural = ["Cows"] | 16 unit.msgid_plural = ["Cows"] |
| 17 assert isinstance(unit.source, multistring) | 17 assert isinstance(unit.source, multistring) |
| 18 assert unit.source.strings == ["Cow", "Cows"] | 18 assert unit.source.strings == ["Cow", "Cows"] |
| 19 assert unit.source == "Cow" | 19 assert unit.source == "Cow" |
| 20 | 20 |
| 21 unit.target = ["Koei", "Koeie"] | 21 unit.target = ["Koei", "Koeie"] |
| 22 assert isinstance(unit.target, multistring) | 22 assert isinstance(unit.target, multistring) |
| 23 assert unit.target.strings == ["Koei", "Koeie"] | 23 assert unit.target.strings == ["Koei", "Koeie"] |
| 24 assert unit.target == "Koei" | 24 assert unit.target == "Koei" |
| 25 | 25 |
| 26 unit.target = {0:"Koei", 3:"Koeie"} | 26 unit.target = {0:"Koei", 3:"Koeie"} |
| 27 assert isinstance(unit.target, multistring) | 27 assert isinstance(unit.target, multistring) |
| 28 assert unit.target.strings == ["Koei", "Koeie"] | 28 assert unit.target.strings == ["Koei", "Koeie"] |
| 29 assert unit.target == "Koei" | 29 assert unit.target == "Koei" |
| 30 | 30 |
| 31 unit.target = [u"Sk\u00ear", u"Sk\u00eare"] | 31 unit.target = [u"Sk\u00ear", u"Sk\u00eare"] |
| 32 assert isinstance(unit.target, multistring) | 32 assert isinstance(unit.target, multistring) |
| 33 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"] | 33 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"] |
| 34 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"] | 34 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"] |
| 35 assert unit.target == u"Sk\u00ear" | 35 assert unit.target == u"Sk\u00ear" |
| 36 | 36 |
| 37 def test_plural_reduction(self): | 37 def test_plural_reduction(self): |
| 38 """checks that reducing the number of plurals supplied works""" | 38 """checks that reducing the number of plurals supplied works""" |
| 39 unit = self.UnitClass("Tree") | 39 unit = self.UnitClass("Tree") |
| 40 unit.msgid_plural = ["Trees"] | 40 unit.msgid_plural = ["Trees"] |
| 41 assert isinstance(unit.source, multistring) | 41 assert isinstance(unit.source, multistring) |
| 42 assert unit.source.strings == ["Tree", "Trees"] | 42 assert unit.source.strings == ["Tree", "Trees"] |
| 43 unit.target = multistring(["Boom", "Bome", "Baie Bome"]) | 43 unit.target = multistring(["Boom", "Bome", "Baie Bome"]) |
| 44 assert isinstance(unit.source, multistring) | 44 assert isinstance(unit.source, multistring) |
| 45 assert unit.target.strings == ["Boom", "Bome", "Baie Bome"] | 45 assert unit.target.strings == ["Boom", "Bome", "Baie Bome"] |
| 46 unit.target = multistring(["Boom", "Bome"]) | 46 unit.target = multistring(["Boom", "Bome"]) |
| 47 assert unit.target.strings == ["Boom", "Bome"] | 47 assert unit.target.strings == ["Boom", "Bome"] |
| 48 unit.target = "Boom" | 48 unit.target = "Boom" |
| 49 # FIXME: currently assigning the target to the same as the first string
won't change anything | 49 # FIXME: currently assigning the target to the same as the first string
won't change anything |
| 50 # we need to verify that this is the desired behaviour... | 50 # we need to verify that this is the desired behaviour... |
| 51 assert unit.target.strings == ["Boom", "Bome"] | 51 assert unit.target.strings == ["Boom", "Bome"] |
| 52 unit.target = "Een Boom" | 52 unit.target = "Een Boom" |
| 53 assert unit.target.strings == ["Een Boom"] | 53 assert unit.target.strings == ["Een Boom"] |
| 54 | 54 |
| 55 def test_notes(self): | 55 def test_notes(self): |
| 56 """tests that the generic notes API works""" | 56 """tests that the generic notes API works""" |
| 57 unit = self.UnitClass("File") | 57 unit = self.UnitClass("File") |
| 58 assert unit.getnotes() == "" | 58 assert unit.getnotes() == "" |
| 59 unit.addnote("Which meaning of file?") | 59 unit.addnote("Which meaning of file?") |
| 60 assert unit.getnotes("translator") == "Which meaning of file?" | 60 assert unit.getnotes("translator") == "Which meaning of file?" |
| 61 assert unit.getnotes("developer") == "" | 61 assert unit.getnotes("developer") == "" |
| 62 unit.addnote("Verb", origin="programmer") | 62 unit.addnote("Verb", origin="programmer") |
| 63 assert unit.getnotes("developer") == "Verb" | 63 assert unit.getnotes("developer") == "Verb" |
| 64 unit.addnote("Thank you", origin="translator") | 64 unit.addnote("Thank you", origin="translator") |
| 65 assert unit.getnotes("translator") == "Which meaning of file?\nThank you
" | 65 assert unit.getnotes("translator") == "Which meaning of file?\nThank you
" |
| 66 assert unit.getnotes() == "Which meaning of file?\nThank you\nVerb" | 66 assert unit.getnotes() == "Which meaning of file?\nThank you\nVerb" |
| 67 assert raises(ValueError, unit.getnotes, "devteam") | 67 assert raises(ValueError, unit.getnotes, "devteam") |
| 68 | 68 |
| 69 def test_notes_withcomments(self): | 69 def test_notes_withcomments(self): |
| 70 """tests that when we add notes that look like comments that we treat th
em properly""" | 70 """tests that when we add notes that look like comments that we treat th
em properly""" |
| 71 unit = self.UnitClass("File") | 71 unit = self.UnitClass("File") |
| 72 unit.addnote("# Double commented comment") | 72 unit.addnote("# Double commented comment") |
| 73 assert unit.getnotes() == "# Double commented comment" | 73 assert unit.getnotes() == "# Double commented comment" |
| 74 | 74 |
| 75 def test_previous_source(self): | 75 def test_previous_source(self): |
| 76 """tests if we handle previous msgid properly""" | 76 """tests if we handle previous msgid properly""" |
| 77 unit = self.UnitClass("Cat") | 77 unit = self.UnitClass("Cat") |
| 78 assert unit.prev_source == "" | 78 assert unit.prev_source == "" |
| 79 assert isinstance(unit.prev_source, multistring) |
| 79 | 80 |
| 80 unit.prev_source = "Feline" | 81 unit.prev_source = "Feline" |
| 81 assert unit.prev_source == "Feline" | 82 assert unit.prev_source == "Feline" |
| 83 assert isinstance(unit.prev_source, multistring) |
| 84 |
| 85 unit.prev_source = ["Feline", "Felines"] |
| 86 assert unit.prev_source.strings == ["Feline", "Felines"] |
| 87 assert unit.prev_source == "Feline" |
| 88 assert isinstance(unit.prev_source, multistring) |
| 82 | 89 |
| 83 unit.prev_source = "" | 90 unit.prev_source = "" |
| 84 assert unit.prev_source == "" | 91 assert unit.prev_source == "" |
| 92 assert unit.source == "Cat" |
| 93 assert len(unit.prev_source.strings) == 1 |
| 94 assert isinstance(unit.prev_source, multistring) |
| 95 |
| 96 unit.source = "" |
| 97 unit.prev_source = "Feline" |
| 98 assert unit.prev_source == "" |
| 99 unit.source = "Cat" |
| 100 |
| 101 unit.markfuzzy() |
| 102 unit.prev_source = "Feline" |
| 103 assert unit.prev_source == "" |
| 104 assert len(unit.prev_source.strings) == 1 |
| 105 assert isinstance(unit.prev_source, multistring) |
| 85 | 106 |
| 86 def test_previous_context(self): | 107 def test_previous_context(self): |
| 87 """tests if we handle previous context messages properly""" | 108 """tests if we handle previous context messages properly""" |
| 88 unit = self.UnitClass("Cat") | 109 unit = self.UnitClass("Cat") |
| 89 assert unit.prev_context == "" | 110 assert unit.prev_context == "" |
| 90 | 111 |
| 91 context = "A sort of a cute animal" | 112 context = "A sort of a cute animal" |
| 92 unit.prev_context = context | 113 unit.prev_context = context |
| 93 assert unit.prev_context == context | 114 assert unit.prev_context == context |
| 94 | 115 |
| 95 unit.prev_context = "" | 116 unit.prev_context = "" |
| 96 assert unit.prev_context == "" | 117 assert unit.prev_context == "" |
| 97 | 118 |
| 98 def test_previous_plural(self): | 119 unit.markfuzzy() |
| 99 """tests if we handle previous plural properly""" | 120 unit.prev_context = "A sort of a cute animal" |
| 100 unit = self.UnitClass("Cat") | 121 assert unit.prev_context == "" |
| 101 assert unit.prev_plural == "" | |
| 102 | |
| 103 unit.prev_plural = "Cats" | |
| 104 assert unit.prev_plural == "Cats" | |
| 105 | |
| 106 unit.prev_plural = "" | |
| 107 assert unit.prev_plural == "" | |
| 108 | 122 |
| 109 def test_set_as_previous(self): | 123 def test_set_as_previous(self): |
| 110 """tests if we set previous messages properly""" | 124 """tests if we set previous messages properly""" |
| 111 # This is just a sanity test, for a more complete test look | 125 # This is just a sanity test, for a more complete test look |
| 112 # at convert/test_pot2po.py | 126 # at convert/test_pot2po.py |
| 113 unit = self.UnitClass("Test %d") | 127 unit = self.UnitClass(["Test %d", "Tests %d"]) |
| 114 unit.msgid_plural = ["Tests %d"] | |
| 115 unit.target = ["Teste %d", "Testes %d"] | 128 unit.target = ["Teste %d", "Testes %d"] |
| 116 unit.set_as_previous() | 129 unit.set_as_previous() |
| 117 unit.source = "Test %s" | 130 unit.source = "Test %s" |
| 118 test_unit = '''#, fuzzy\n#| msgid "Test %d"\n#| msgid_plural "Tests %d" | 131 test_unit = '''#, fuzzy\n#| msgid "Test %d"\n#| msgid_plural "Tests %d" |
| 119 msgid "Test %s"\nmsgstr "Teste %d"\n''' | 132 msgid "Test %s"\nmsgstr "Teste %d"\n''' |
| 120 assert str(unit) == test_unit | 133 assert str(unit) == test_unit |
| 121 assert unit.isfuzzy() | 134 assert unit.isfuzzy() |
| 122 | 135 |
| 123 # without a target, the unit remain the same | 136 # without a target, the unit remain the same |
| 124 unit2 = self.UnitClass("Other") | 137 unit2 = self.UnitClass(["Other", "Others"]) |
| 125 unit2.msgid_plural = ["Others"] | |
| 126 expected = str(unit2) | 138 expected = str(unit2) |
| 127 unit2.set_as_previous() | 139 unit2.set_as_previous() |
| 128 assert str(unit2) == expected | 140 assert str(unit2) == expected |
| 141 |
| 142 # we can't set a message as previous if the message is marked as fuzzy |
| 143 unit = self.UnitClass("Pizza") |
| 144 unit.msgid_plural = ["Pizzas"] |
| 145 unit.target = ["Pizza", "Pizzas"] |
| 146 unit.markfuzzy() |
| 147 unit.set_as_previous() |
| 148 assert unit.prev_context == "" |
| 149 assert unit.prev_source == "" |
| 129 | 150 |
| 130 | 151 |
| 131 class TestCPOFile(test_po.TestPOFile): | 152 class TestCPOFile(test_po.TestPOFile): |
| 132 StoreClass = cpo.pofile | 153 StoreClass = cpo.pofile |
| 133 def test_msgidcomments(self): | 154 def test_msgidcomments(self): |
| 134 """checks that we handle msgid comments""" | 155 """checks that we handle msgid comments""" |
| 135 posource = 'msgid "test me"\nmsgstr ""' | 156 posource = 'msgid "test me"\nmsgstr ""' |
| 136 pofile = self.poparse(posource) | 157 pofile = self.poparse(posource) |
| 137 thepo = pofile.units[0] | 158 thepo = pofile.units[0] |
| 138 thepo.msgidcomment = "first comment" | 159 thepo.msgidcomment = "first comment" |
| 139 print pofile | 160 print pofile |
| 140 print "Blah", thepo.source | 161 print "Blah", thepo.source |
| 141 assert thepo.source == "test me" | 162 assert thepo.source == "test me" |
| 142 thepo.msgidcomment = "second comment" | 163 thepo.msgidcomment = "second comment" |
| 143 assert str(pofile).count("_:") == 1 | 164 assert str(pofile).count("_:") == 1 |
| 144 | 165 |
| 145 # def test_merge_duplicates_msgctxt(self): | 166 # def test_merge_duplicates_msgctxt(self): |
| 146 # """checks that merging duplicates works for msgctxt""" | 167 # """checks that merging duplicates works for msgctxt""" |
| 147 # posource = '#: source1\nmsgid "test me"\nmsgstr ""\n\n#: source2\nmsgid
"test me"\nmsgstr ""\n' | 168 # posource = '#: source1\nmsgid "test me"\nmsgstr ""\n\n#: source2\nmsgid
"test me"\nmsgstr ""\n' |
| 148 # pofile = self.poparse(posource) | 169 # pofile = self.poparse(posource) |
| 149 # assert len(pofile.units) == 2 | 170 # assert len(pofile.units) == 2 |
| 150 # pofile.removeduplicates("msgctxt") | 171 # pofile.removeduplicates("msgctxt") |
| 151 # print pofile | 172 # print pofile |
| 152 # assert len(pofile.units) == 2 | 173 # assert len(pofile.units) == 2 |
| 153 # assert str(pofile.units[0]).count("source1") == 2 | 174 # assert str(pofile.units[0]).count("source1") == 2 |
| 154 # assert str(pofile.units[1]).count("source2") == 2 | 175 # assert str(pofile.units[1]).count("source2") == 2 |
| 155 | 176 |
| 156 # def test_merge_blanks(self): | 177 # def test_merge_blanks(self): |
| 157 # """checks that merging adds msgid_comments to blanks""" | 178 # """checks that merging adds msgid_comments to blanks""" |
| 158 # posource = '#: source1\nmsgid ""\nmsgstr ""\n\n#: source2\nmsgid ""\nms
gstr ""\n' | 179 # posource = '#: source1\nmsgid ""\nmsgstr ""\n\n#: source2\nmsgid ""\nms
gstr ""\n' |
| 159 # pofile = self.poparse(posource) | 180 # pofile = self.poparse(posource) |
| 160 # assert len(pofile.units) == 2 | 181 # assert len(pofile.units) == 2 |
| 161 # pofile.removeduplicates("merge") | 182 # pofile.removeduplicates("merge") |
| 162 # assert len(pofile.units) == 2 | 183 # assert len(pofile.units) == 2 |
| 163 # print pofile.units[0].msgidcomments | 184 # print pofile.units[0].msgidcomments |
| 164 # print pofile.units[1].msgidcomments | 185 # print pofile.units[1].msgidcomments |
| 165 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "_: source1\n
" | 186 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "_: source1\n
" |
| 166 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "_: source2\n
" | 187 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "_: source2\n
" |
| 167 | 188 |
| 168 # def test_msgid_comment(self): | 189 # def test_msgid_comment(self): |
| 169 # """checks that when adding msgid_comments we place them on a newline""" | 190 # """checks that when adding msgid_comments we place them on a newline""" |
| 170 # posource = '#: source0\nmsgid "Same"\nmsgstr ""\n\n#: source1\nmsgid "S
ame"\nmsgstr ""\n' | 191 # posource = '#: source0\nmsgid "Same"\nmsgstr ""\n\n#: source1\nmsgid "S
ame"\nmsgstr ""\n' |
| 171 # pofile = self.poparse(posource) | 192 # pofile = self.poparse(posource) |
| 172 # assert len(pofile.units) == 2 | 193 # assert len(pofile.units) == 2 |
| 173 # pofile.removeduplicates("msgid_comment") | 194 # pofile.removeduplicates("msgid_comment") |
| 174 # assert len(pofile.units) == 2 | 195 # assert len(pofile.units) == 2 |
| 175 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "_: source0\n
" | 196 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "_: source0\n
" |
| 176 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "_: source1\n
" | 197 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "_: source1\n
" |
| 177 # # Now lets check for formating | 198 # # Now lets check for formating |
| 178 # for i in (0, 1): | 199 # for i in (0, 1): |
| 179 # expected = '''#: source%d\nmsgid ""\n"_: source%d\\n"\n"Same"\nmsgstr
""\n''' % (i, i) | 200 # expected = '''#: source%d\nmsgid ""\n"_: source%d\\n"\n"Same"\nmsgstr
""\n''' % (i, i) |
| 180 # assert pofile.units[i].__str__() == expected | 201 # assert pofile.units[i].__str__() == expected |
| 181 | 202 |
| 182 # def test_keep_blanks(self): | 203 # def test_keep_blanks(self): |
| 183 # """checks that keeping keeps blanks and doesn't add msgid_comments""" | 204 # """checks that keeping keeps blanks and doesn't add msgid_comments""" |
| 184 # posource = '#: source1\nmsgid ""\nmsgstr ""\n\n#: source2\nmsgid ""\nms
gstr ""\n' | 205 # posource = '#: source1\nmsgid ""\nmsgstr ""\n\n#: source2\nmsgid ""\nms
gstr ""\n' |
| 185 # pofile = self.poparse(posource) | 206 # pofile = self.poparse(posource) |
| 186 # assert len(pofile.units) == 2 | 207 # assert len(pofile.units) == 2 |
| 187 # pofile.removeduplicates("keep") | 208 # pofile.removeduplicates("keep") |
| 188 # assert len(pofile.units) == 2 | 209 # assert len(pofile.units) == 2 |
| 189 # # check we don't add msgidcomments | 210 # # check we don't add msgidcomments |
| 190 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "" | 211 # assert po.unquotefrompo(pofile.units[0].msgidcomments) == "" |
| 191 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "" | 212 # assert po.unquotefrompo(pofile.units[1].msgidcomments) == "" |
| 192 | 213 |
| 193 def test_output_str_unicode(self): | 214 def test_output_str_unicode(self): |
| 194 """checks that we can str(pofile) which is in unicode""" | 215 """checks that we can str(pofile) which is in unicode""" |
| 195 posource = u'''#: nb\nmsgid "Norwegian Bokm\xe5l"\nmsgstr ""\n''' | 216 posource = u'''#: nb\nmsgid "Norwegian Bokm\xe5l"\nmsgstr ""\n''' |
| 196 pofile = self.StoreClass(wStringIO.StringIO(posource.encode("UTF-8")), e
ncoding="UTF-8") | 217 pofile = self.StoreClass(wStringIO.StringIO(posource.encode("UTF-8")), e
ncoding="UTF-8") |
| 197 assert len(pofile.units) == 1 | 218 assert len(pofile.units) == 1 |
| 198 print str(pofile) | 219 print str(pofile) |
| 199 thepo = pofile.units[0] | 220 thepo = pofile.units[0] |
| 200 # assert str(pofile) == posource.encode("UTF-8") | 221 # assert str(pofile) == posource.encode("UTF-8") |
| 201 # extra test: what if we set the msgid to a unicode? this happens in pro
p2po etc | 222 # extra test: what if we set the msgid to a unicode? this happens in pro
p2po etc |
| 202 thepo.source = u"Norwegian Bokm\xe5l" | 223 thepo.source = u"Norwegian Bokm\xe5l" |
| 203 # assert str(thepo) == posource.encode("UTF-8") | 224 # assert str(thepo) == posource.encode("UTF-8") |
| 204 # Now if we set the msgstr to Unicode | 225 # Now if we set the msgstr to Unicode |
| 205 # this is an escaped half character (1/2) | 226 # this is an escaped half character (1/2) |
| 206 halfstr = "\xbd ...".decode("latin-1") | 227 halfstr = "\xbd ...".decode("latin-1") |
| 207 thepo.target = halfstr | 228 thepo.target = halfstr |
| 208 # assert halfstr in str(pofile).decode("UTF-8") | 229 # assert halfstr in str(pofile).decode("UTF-8") |
| 209 thepo.target = halfstr.encode("UTF-8") | 230 thepo.target = halfstr.encode("UTF-8") |
| 210 # assert halfstr.encode("UTF-8") in str(pofile) | 231 # assert halfstr.encode("UTF-8") in str(pofile) |
| 211 | 232 |
| 212 def test_posections(self): | 233 def test_posections(self): |
| 213 """checks the content of all the expected sections of a PO message""" | 234 """checks the content of all the expected sections of a PO message""" |
| 214 posource = '# other comment\n#. automatic comment\n#: source comment\n#,
fuzzy\nmsgid "One"\nmsgstr "Een"\n' | 235 posource = '# other comment\n#. automatic comment\n#: source comment\n#,
fuzzy\nmsgid "One"\nmsgstr "Een"\n' |
| 215 pofile = self.poparse(posource) | 236 pofile = self.poparse(posource) |
| 216 print pofile | 237 print pofile |
| 217 assert len(pofile.units) == 1 | 238 assert len(pofile.units) == 1 |
| 218 assert str(pofile) == posource | 239 assert str(pofile) == posource |
| 219 | 240 |
| 220 def test_multiline_obsolete(self): | 241 def test_multiline_obsolete(self): |
| 221 """Tests for correct output of mulitline obsolete messages""" | 242 """Tests for correct output of mulitline obsolete messages""" |
| 222 posource = '#~ msgid ""\n#~ "Old thing\\n"\n#~ "Second old thing"\n#~ ms
gstr ""\n#~ "Ou ding\\n"\n#~ "Tweede ou ding"\n' | 243 posource = '#~ msgid ""\n#~ "Old thing\\n"\n#~ "Second old thing"\n#~ ms
gstr ""\n#~ "Ou ding\\n"\n#~ "Tweede ou ding"\n' |
| 223 pofile = self.poparse(posource) | 244 pofile = self.poparse(posource) |
| 224 print "Source:\n%s" % posource | 245 print "Source:\n%s" % posource |
| 225 print "Output:\n%s" % str(pofile) | 246 print "Output:\n%s" % str(pofile) |
| 226 assert len(pofile.units) == 1 | 247 assert len(pofile.units) == 1 |
| 227 assert pofile.units[0].isobsolete() | 248 assert pofile.units[0].isobsolete() |
| 228 assert not pofile.units[0].istranslatable() | 249 assert not pofile.units[0].istranslatable() |
| 229 assert str(pofile) == posource | 250 assert str(pofile) == posource |
| 230 | 251 |
| 231 def test_unassociated_comments(self): | 252 def test_unassociated_comments(self): |
| 232 """tests behaviour of unassociated comments.""" | 253 """tests behaviour of unassociated comments.""" |
| 233 oldsource = '# old lonesome comment\n\nmsgid "one"\nmsgstr "een"\n' | 254 oldsource = '# old lonesome comment\n\nmsgid "one"\nmsgstr "een"\n' |
| 234 oldfile = self.poparse(oldsource) | 255 oldfile = self.poparse(oldsource) |
| 235 print "__str__", str(oldfile) | 256 print "__str__", str(oldfile) |
| 236 assert len(oldfile.units) == 1 | 257 assert len(oldfile.units) == 1 |
| 237 assert str(oldfile).find("# old lonesome comment\nmsgid") >= 0 | 258 assert str(oldfile).find("# old lonesome comment\nmsgid") >= 0 |
| 238 | 259 |
| LEFT | RIGHT |