| | |
| | 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): |
| | @staticmethod |
| | def attributes(): |
| | yield INT32, 'a' |
| | yield BSTR, 'b' |
| |
|
| | class SomeStruct2(Struct): |
| | @staticmethod |
| | def attributes(): |
| | yield SomeStruct, 'somestruct' |
| |
|
| | result = element( |
| | context, |
| | (SomeStruct2, dict(somestruct=dict(a=1, b=u'b'))) |
| | ) |
| | result = list(result) |
| | |
| | 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) |
| | |
| | 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) |
| |
|