def test_get_attribute(self): self.assertIs(self.mc1.get_attribute('id'), None) self.assertIs(self.mc1.get_attribute('attr'), None) self.assertEqual(self.mc1.get_attribute('attr', 1), 1) self.assertEqual(self.mc2.get_attribute('id'), 'mc2') self.assertEqual(self.mc2.get_attribute('type'), 'childtype') self.assertEqual(self.mc2.get_attribute('one'), 1) self.assertIs(self.mc2.get_attribute('two'), None) mc = MetaChild('childname', attributes={'one': 1}) m = Meta(children=[mc]) md = Metadata( attributes={'two': 2}, metas=[m] ) self.assertEqual(mc.get_attribute('two', inherit=True), 2)
def test_get_attribute(self): assert self.mc1.get_attribute('id') is None assert self.mc1.get_attribute('attr') is None assert self.mc1.get_attribute('attr', 1) == 1 assert self.mc2.get_attribute('id') == 'mc2' assert self.mc2.get_attribute('type') == 'childtype' assert self.mc2.get_attribute('one') == 1 assert self.mc2.get_attribute('two') is None mc = MetaChild('childname', attributes={'one': 1}) m = Meta(children=[mc]) md = Metadata( attributes={'two': 2}, metas=[m] ) assert mc.get_attribute('two', inherit=True) == 2
class TestMetaChild(unittest.TestCase): def setUp(self): self.mc1 = MetaChild('childname') self.mc2 = MetaChild( 'childname', attributes={'id': 'mc2', 'type': 'childtype', 'one': 1}, text='childtext', children=[MetaChild('grandchild1'), MetaChild('grandchild2')] ) def test_init(self): # name (i.e. tag in XML) is mandatory self.assertRaises(TypeError, MetaChild) # invalid names self.assertRaises(ValueError, MetaChild, '1') self.assertRaises(ValueError, MetaChild, 'a:1') # id and type not allowed as parameters (they can be attributes) self.assertRaises(TypeError, MetaChild, 'mc0', id='mc1') self.assertRaises(TypeError, MetaChild, 'mc0', type='childtype') def test_name(self): self.assertEqual(self.mc1.name, 'childname') self.assertEqual(self.mc2.name, 'childname') def test_attributes(self): self.assertEqual(self.mc1.attributes, dict()) self.assertEqual(self.mc2.attributes, {'id': 'mc2', 'type': 'childtype', 'one': 1}) def test_get_attribute(self): self.assertIs(self.mc1.get_attribute('id'), None) self.assertIs(self.mc1.get_attribute('attr'), None) self.assertEqual(self.mc1.get_attribute('attr', 1), 1) self.assertEqual(self.mc2.get_attribute('id'), 'mc2') self.assertEqual(self.mc2.get_attribute('type'), 'childtype') self.assertEqual(self.mc2.get_attribute('one'), 1) self.assertIs(self.mc2.get_attribute('two'), None) mc = MetaChild('childname', attributes={'one': 1}) m = Meta(children=[mc]) md = Metadata( attributes={'two': 2}, metas=[m] ) self.assertEqual(mc.get_attribute('two', inherit=True), 2) def test_text(self): self.assertIs(self.mc1.text, None) self.assertEqual(self.mc2.text, 'childtext') def test_children(self): self.assertEqual(self.mc1.children, []) self.assertEqual(len(self.mc2.children), 2) self.assertEqual(self.mc2.children[0].name, 'grandchild1') self.assertEqual(self.mc2.children[1].name, 'grandchild2')