import polib from lingua.extract import POEntry from lingua.extract import POFile from lingua.extract import identical from lingua.extract import strip_linenumbers STRIPPED_LINENUMBERS_PO = """\ #: file.txt msgid "A" msgstr "" """ class Test_identical: def test_ignore_metadata_differences(self): a = POFile() a.metadata["Last-Translator"] = u"Jane" b = polib.POFile() b.metadata["Last-Translator"] = u"Alice" assert identical(a, b) def test_identical_entries(self): a = POFile() b = polib.POFile() a.append(POEntry(msgid=u"id 1")) b.append(polib.POEntry(msgid=u"id 1")) assert identical(a, b) a.append(POEntry(msgid=u"id 1", msgctxt="form")) assert not identical(a, b) b.append(polib.POEntry(msgid=u"id 1", msgctxt="form")) assert identical(a, b) def test_comment_change(self): a = POFile() b = polib.POFile() a.append(POEntry(msgid=u"id")) a[0]._comments.append(u"Comment") b.append(polib.POEntry(msgid=u"id")) assert not identical(a, b) b[0].comment = u"Comment" assert identical(a, b) def test_tcomment_change(self): a = POFile() b = polib.POFile() a.append(POEntry(msgid=u"id")) a[0]._tcomments.append(u"Comment") b.append(polib.POEntry(msgid=u"id")) assert not identical(a, b) b[0].tcomment = u"Comment" assert identical(a, b) def test_ignore_comment_whitespace_change(self): a = POFile() b = polib.POFile() a.append(POEntry(msgid=u"id")) a[0]._comments.append(u"Comment one") b.append(polib.POEntry(msgid=u"id")) b[0].comment = u"Comment\none" assert identical(a, b) def test_strip_linenumbers(self): a = POFile() b = polib.pofile(STRIPPED_LINENUMBERS_PO) a.append(POEntry(msgid=u"A", occurrences=[("file.txt", "1")])) for entry in a: strip_linenumbers(entry) assert identical(a, b)