Spaces:
Running
Running
| # -*- coding: utf-8 -*- | |
| from __future__ import absolute_import | |
| from __future__ import print_function | |
| from __future__ import unicode_literals | |
| from unittest import TestCase | |
| import logging | |
| from hwp5.dataio import Struct | |
| from hwp5.dataio import INT32, BSTR | |
| from hwp5.treeop import STARTEVENT | |
| from hwp5.treeop import ENDEVENT | |
| from hwp5.xmlformat import element | |
| from hwp5.xmlformat import xmlattr_uniqnames | |
| class TestHello(TestCase): | |
| def test_hello(self): | |
| context = dict(logging=logging) | |
| class SomeStruct(Struct): | |
| def attributes(): | |
| yield INT32, 'a' | |
| yield BSTR, 'b' | |
| class SomeStruct2(Struct): | |
| def attributes(): | |
| yield SomeStruct, 'somestruct' | |
| result = element( | |
| context, | |
| (SomeStruct2, dict(somestruct=dict(a=1, b=u'b'))) | |
| ) | |
| result = list(result) | |
| # for x in result: x[0](*x[1:]) | |
| expected = [ | |
| (STARTEVENT, ('SomeStruct2', dict())), | |
| (STARTEVENT, ('SomeStruct', {'attribute-name': 'somestruct', | |
| 'a': '1', 'b': 'b'})), | |
| (ENDEVENT, 'SomeStruct'), | |
| (ENDEVENT, 'SomeStruct2'), | |
| ] | |
| self.assertEqual(expected, result) | |
| result = element( | |
| context, | |
| (SomeStruct, dict(a=1, b=u'b', c=dict(foo=1))) | |
| ) | |
| result = list(result) | |
| # for x in result: x[0](*x[1:]) | |
| expected = [ | |
| (STARTEVENT, ('SomeStruct', dict(a='1', b='b'))), | |
| (STARTEVENT, ('dict', {'attribute-name': 'c', 'foo': '1'})), | |
| (ENDEVENT, 'dict'), | |
| (ENDEVENT, 'SomeStruct') | |
| ] | |
| self.assertEqual(expected, result) | |
| def test_xmlattr_uniqnames(self): | |
| a = [('a', 1), ('b', 2)] | |
| self.assertEqual([('a', 1), ('b', 2)], list(xmlattr_uniqnames(a))) | |
| a = [('a', 1), ('a', 2)] | |
| result = xmlattr_uniqnames(a) | |
| self.assertRaises(Exception, list, result) | |