Example #1
0
    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)
Example #2
0
    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
Example #3
0
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')