| import fontTools.misc.testTools as testTools |
| import unittest |
| |
| |
| class TestToolsTest(unittest.TestCase): |
| def test_parseXML_str(self): |
| self.assertEqual( |
| testTools.parseXML( |
| '<Foo n="1"/>' |
| '<Foo n="2">' |
| " some ünıcòðe text" |
| ' <Bar color="red"/>' |
| " some more text" |
| "</Foo>" |
| '<Foo n="3"/>' |
| ), |
| [ |
| ("Foo", {"n": "1"}, []), |
| ( |
| "Foo", |
| {"n": "2"}, |
| [ |
| " some ünıcòðe text ", |
| ("Bar", {"color": "red"}, []), |
| " some more text", |
| ], |
| ), |
| ("Foo", {"n": "3"}, []), |
| ], |
| ) |
| |
| def test_parseXML_bytes(self): |
| self.assertEqual( |
| testTools.parseXML( |
| b'<Foo n="1"/>' |
| b'<Foo n="2">' |
| b" some \xc3\xbcn\xc4\xb1c\xc3\xb2\xc3\xb0e text" |
| b' <Bar color="red"/>' |
| b" some more text" |
| b"</Foo>" |
| b'<Foo n="3"/>' |
| ), |
| [ |
| ("Foo", {"n": "1"}, []), |
| ( |
| "Foo", |
| {"n": "2"}, |
| [ |
| " some ünıcòðe text ", |
| ("Bar", {"color": "red"}, []), |
| " some more text", |
| ], |
| ), |
| ("Foo", {"n": "3"}, []), |
| ], |
| ) |
| |
| def test_parseXML_str_list(self): |
| self.assertEqual( |
| testTools.parseXML(['<Foo n="1"/>' '<Foo n="2"/>']), |
| [("Foo", {"n": "1"}, []), ("Foo", {"n": "2"}, [])], |
| ) |
| |
| def test_parseXML_bytes_list(self): |
| self.assertEqual( |
| testTools.parseXML([b'<Foo n="1"/>' b'<Foo n="2"/>']), |
| [("Foo", {"n": "1"}, []), ("Foo", {"n": "2"}, [])], |
| ) |
| |
| def test_getXML(self): |
| def toXML(writer, ttFont): |
| writer.simpletag("simple") |
| writer.newline() |
| writer.begintag("tag", attr="value") |
| writer.newline() |
| writer.write("hello world") |
| writer.newline() |
| writer.endtag("tag") |
| writer.newline() # toXML always ends with a newline |
| |
| self.assertEqual( |
| testTools.getXML(toXML), |
| ["<simple/>", '<tag attr="value">', " hello world", "</tag>"], |
| ) |
| |
| |
| if __name__ == "__main__": |
| import sys |
| |
| sys.exit(unittest.main()) |