def test_strings_literals(self): src = '''\ s = "One" t = (2, "Two") f = dict(key="Three") ''' _, str_lines = export_pot._parse_source(src) self.assertEqual(str_lines, {"One": 1, "Two": 2, "Three": 3})
def test_classes_nested(self): src = ''' class Matroska(object): class Smaller(object): class Smallest(object): pass ''' cls_lines, _ = export_pot._parse_source(src) self.assertEqual(cls_lines, {"Matroska": 2, "Smaller": 3, "Smallest":4})
def test_classes(self): src = ''' class Ancient: """Old style class""" class Modern(object): """New style class""" ''' cls_lines, _ = export_pot._parse_source(src) self.assertEqual(cls_lines, {"Ancient": 2, "Modern": 5})
def test_classes_nested(self): src = ''' class Matroska(object): class Smaller(object): class Smallest(object): pass ''' cls_lines, _ = export_pot._parse_source(src) self.assertEqual(cls_lines, { "Matroska": 2, "Smaller": 3, "Smallest": 4 })
def test_strings_multiline(self): src = '''\ """Start End """ t = ( "A" "B" "C" ) ''' _, str_lines = export_pot._parse_source(src) self.assertEqual(str_lines, {"Start\n\nEnd\n": 1, "ABC": 6})
def test_strings_docstrings(self): src = '''\ """Module""" def function(): """Function""" class Class(object): """Class""" def method(self): """Method""" ''' _, str_lines = export_pot._parse_source(src) self.assertEqual(str_lines, {"Module": 1, "Function": 4, "Class": 7, "Method": 10})
def test_strings_multiline_escapes(self): src = '''\ s = "Escaped\\n" r = r"Raw\\n" t = ( "A\\n\\n" "B\\n\\n" "C\\n\\n" ) ''' _, str_lines = export_pot._parse_source(src) self.expectFailure("Escaped newlines confuses the multiline handling", self.assertNotEqual, str_lines, {"Escaped\n": 0, "Raw\\n": 2, "A\n\nB\n\nC\n\n": -2}) self.assertEqual(str_lines, {"Escaped\n": 1, "Raw\\n": 2, "A\n\nB\n\nC\n\n": 4})
def test_strings_docstrings(self): src = '''\ """Module""" def function(): """Function""" class Class(object): """Class""" def method(self): """Method""" ''' _, str_lines = export_pot._parse_source(src) self.assertEqual(str_lines, { "Module": 1, "Function": 4, "Class": 7, "Method": 10 })
def test_strings_multiline_escapes(self): src = '''\ s = "Escaped\\n" r = r"Raw\\n" t = ( "A\\n\\n" "B\\n\\n" "C\\n\\n" ) ''' _, str_lines = export_pot._parse_source(src) self.expectFailure("Escaped newlines confuses the multiline handling", self.assertNotEqual, str_lines, { "Escaped\n": 0, "Raw\\n": 2, "A\n\nB\n\nC\n\n": -2 }) self.assertEqual(str_lines, { "Escaped\n": 1, "Raw\\n": 2, "A\n\nB\n\nC\n\n": 4 })