コード例 #1
0
ファイル: test_model.py プロジェクト: pombredanne/xigt
 def test_clear(self):
     igt = Igt()
     igt.extend([Tier(id='t'), Tier(id='x'), Tier(id='y')])
     self.assertEqual(len(igt), 3)
     igt.clear()
     self.assertEqual(len(igt), 0)
     self.assertIs(igt.get(0), None)
     self.assertIs(igt.get('t'), None)
コード例 #2
0
ファイル: test_model.py プロジェクト: xigt/xigt
 def test_clear(self):
     igt = Igt()
     igt.extend([Tier(id='t'), Tier(id='x'), Tier(id='y')])
     assert len(igt) == 3
     igt.clear()
     assert len(igt) == 0
     assert igt.get(0) is None
     assert igt.get('t') is None
コード例 #3
0
ファイル: test_model.py プロジェクト: pombredanne/xigt
class TestIgt(unittest.TestCase):
    def setUp(self):
        self.i1 = Igt()

        self.i2 = Igt(
            id='i1',
            type='basic',
            attributes={'attr':'val'},
            metadata=[Metadata(type='meta',
                               metas=[Meta(text='meta')])],
            tiers=[Tier(id='a', items=[Item(id='a1'), Item(id='a2')]),
                   Tier(id='b', items=[Item(id='b1'), Item(id='b2')])]
        )

    def test_init(self):
        self.assertRaises(ValueError, Igt, id='1')  # invalid id
        # don't allow multiple tiers with the same ID
        self.assertRaises(XigtError, Igt, tiers=[Tier(id='a'),
                                                 Tier(id='a')])

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

        self.assertEqual(self.i2.id, 'i1')

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

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

    def test_tiers(self):
        self.assertEqual(len(self.i1.tiers), 0)

        self.assertEqual(len(self.i2.tiers), 2)
        # contained Tiers should now have their igt specified
        for t in self.i2.tiers:
            self.assertIs(t.igt, self.i2)

    def test_parents(self):
        self.assertIs(self.i1.corpus, None)

        self.assertIs(self.i2.corpus, None)

    def test_metadata(self):
        self.assertEqual(len(self.i1.metadata), 0)

        self.assertEqual(self.i2.metadata[0].type, 'meta')
        self.assertEqual(len(self.i2.metadata[0].metas), 1)
        self.assertEqual(self.i2.metadata[0][0].text, 'meta')

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

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

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

        self.assertEqual(self.i2.get(0).id, 'a')
        self.assertIs(self.i2.get(3), None)
        self.assertEqual(self.i2.get('a').id, 'a')
        self.assertEqual(
            self.i2.get('a', default=Tier(id='x')).id, 'a'
        )

    def test_get_item(self):
        self.assertIs(self.i1.get_item('a'), None)
        self.assertIs(self.i1.get_item('a1'), None)

        self.assertIs(self.i2.get_item('a'), None)
        self.assertEqual(self.i2.get_item('a1').id, 'a1')
        self.assertEqual(self.i2.get_item('b2').id, 'b2')

    def test_get_any(self):
        self.assertIs(self.i1.get_any('a'), None)
        self.assertIs(self.i1.get_any('a1'), None)

        self.assertIs(self.i2.get_any('a').id, 'a')
        self.assertEqual(self.i2.get_any('a1').id, 'a1')
        self.assertEqual(self.i2.get_any('b2').id, 'b2')

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

    def test_insert(self):
        igt = Igt()
        self.assertEqual(len(igt), 0)
        igt.insert(0, Tier(id='t'))
        self.assertEqual(len(igt), 1)
        self.assertRaises(XigtError, igt.insert, 0, Tier(id='t'))
        igt.insert(0, Tier(id='x'))
        igt.insert(100, Tier(id='y'))
        self.assertEqual(len(igt), 3)
        self.assertEqual(igt[0].id, 'x')
        self.assertEqual(igt[1].id, 't')
        self.assertEqual(igt[2].id, 'y')

    def test_extend(self):
        igt = Igt()
        self.assertEqual(len(igt), 0)
        igt.extend([Tier(id='t')])
        self.assertEqual(len(igt), 1)
        igt.extend([])
        self.assertEqual(len(igt), 1)
        igt.extend([Tier(id='x'), Tier(id='y')])
        self.assertEqual(len(igt), 3)
        self.assertEqual(igt[0].id, 't')
        self.assertEqual(igt[1].id, 'x')
        self.assertEqual(igt[2].id, 'y')

    def test_clear(self):
        igt = Igt()
        igt.extend([Tier(id='t'), Tier(id='x'), Tier(id='y')])
        self.assertEqual(len(igt), 3)
        igt.clear()
        self.assertEqual(len(igt), 0)
        self.assertIs(igt.get(0), None)
        self.assertIs(igt.get('t'), None)

    def test_get_attribute(self):
        igt = Igt(id='i1', attributes={'one': 1, 'two': 2})
        xc = XigtCorpus(igts=[igt], attributes={'three': 3})
        self.assertEqual(igt.get_attribute('one'), 1)
        self.assertEqual(igt.get_attribute('two'), 2)
        self.assertIs(igt.get_attribute('three'), None)
        self.assertEqual(igt.get_attribute('three', inherit=True), 3)
        self.assertEqual(igt.get_attribute('three', default=4), 4)