| # -*- coding: utf-8 -*- |
| from __future__ import print_function, division, absolute_import |
| from __future__ import unicode_literals |
| from fontTools.misc.py23 import * |
| 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()) |