Пример #1
0
 def test_clear(self):
     md = Metadata()
     md.extend([Meta(id='meta1'), Meta(id='meta2'), Meta(id='meta3')])
     self.assertEqual(len(md), 3)
     md.clear()
     self.assertEqual(len(md), 0)
     self.assertIs(md.get(0), None)
     self.assertIs(md.get('meta1'), None)
Пример #2
0
 def test_clear(self):
     md = Metadata()
     md.extend([Meta(id='meta1'), Meta(id='meta2'), Meta(id='meta3')])
     assert len(md) == 3
     md.clear()
     assert len(md) == 0
     assert md.get(0) is None
     assert md.get('meta1') is None
Пример #3
0
class TestMetadata(unittest.TestCase):

    def setUp(self):
        self.md1 = Metadata()

        self.md2 = Metadata(
            id='md2',
            type='basic',
            attributes={'attr':'val'},
            metas=[Meta(id='meta1', text='meta')]
        )

    def test_init(self):
        self.assertRaises(ValueError, Metadata, id='1')  # invalid id

    def test_id(self):
        self.assertIs(self.md1.id, None)

        self.assertIs(self.md2.id, 'md2')

    def test_type(self):
        self.assertIs(self.md1.type, None)

        self.assertEqual(self.md2.type, 'basic')

    def test_metas(self):
        self.assertEqual(self.md1.metas, [])

        self.assertEqual(len(self.md2.metas), 1)
        self.assertEqual(self.md2[0].text, 'meta')

    def test_attributes(self):
        self.assertEqual(self.md1.attributes, dict())

        self.assertEqual(self.md2.attributes, {'attr':'val'})

    def test_get(self):
        self.assertIs(self.md1.get(0), None)
        self.assertIs(self.md1.get('meta1'), None)
        self.assertEqual(self.md1.get('meta1', default=1), 1)

        self.assertEqual(self.md2.get(0).id, 'meta1')
        self.assertIs(self.md2.get(1), None)
        self.assertEqual(self.md2.get('meta1').id, 'meta1')
        self.assertEqual(
            self.md2.get('meta1', default=Meta(id='meta2')).id, 'meta1'
        )

    def test_append(self):
        md = Metadata()
        self.assertRaises(XigtStructureError, md.append, Item())
        self.assertRaises(XigtStructureError, md.append, Tier())
        self.assertRaises(XigtStructureError, md.append, Igt())
        self.assertRaises(XigtStructureError, md.append, XigtCorpus())
        self.assertRaises(XigtStructureError, md.append, Metadata())
        self.assertEqual(len(md), 0)
        md.append(Meta(id='meta1'))
        self.assertEqual(len(md), 1)
        self.assertRaises(XigtError, md.append, Meta(id='meta1'))
        md.append(Meta(id='meta2'))
        self.assertEqual(len(md), 2)
        self.assertEqual(md[0].id, 'meta1')
        self.assertEqual(md[1].id, 'meta2')

    def test_insert(self):
        md = Metadata()
        self.assertEqual(len(md), 0)
        md.insert(0, Meta(id='meta1'))
        self.assertEqual(len(md), 1)
        self.assertRaises(XigtError, md.insert, 0, Meta(id='meta1'))
        md.insert(0, Meta(id='meta2'))
        md.insert(100, Meta(id='meta3'))
        self.assertEqual(len(md), 3)
        self.assertEqual(md[0].id, 'meta2')
        self.assertEqual(md[1].id, 'meta1')
        self.assertEqual(md[2].id, 'meta3')

    def test_extend(self):
        md = Metadata()
        self.assertEqual(len(md), 0)
        md.extend([Meta(id='meta1')])
        self.assertEqual(len(md), 1)
        md.extend([])
        self.assertEqual(len(md), 1)
        md.extend([Meta(id='meta2'), Meta(id='meta3')])
        self.assertEqual(len(md), 3)
        self.assertEqual(md[0].id, 'meta1')
        self.assertEqual(md[1].id, 'meta2')
        self.assertEqual(md[2].id, 'meta3')

    def test_clear(self):
        md = Metadata()
        md.extend([Meta(id='meta1'), Meta(id='meta2'), Meta(id='meta3')])
        self.assertEqual(len(md), 3)
        md.clear()
        self.assertEqual(len(md), 0)
        self.assertIs(md.get(0), None)
        self.assertIs(md.get('meta1'), None)

    def test_get_attribute(self):
        md = Metadata(
            attributes={'one': 1, 'two': 2, '{http://namespace.org}three': 4},
            nsmap={'pre': 'http://namespace.org'}
        )
        igt = Igt(metadata=[md], attributes={'three': 3})
        self.assertEqual(md.get_attribute('one'), 1)
        self.assertEqual(md.get_attribute('two'), 2)
        self.assertIs(md.get_attribute('three'), None)
        self.assertEqual(
            md.get_attribute('three', namespace='http://namespace.org'), 4
        )
        self.assertEqual(
            md.get_attribute('three', namespace='pre'), 4
        )
        self.assertEqual(md.get_attribute('three', inherit=True), 3)
        self.assertEqual(
            md.get_attribute('three', namespace='pre', inherit=True), 4
        )
        self.assertEqual(md.get_attribute('three', default=5), 5)