1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
import pyxb
import normal as custom
import raw.custom as raw_custom
import unittest
class TestComplex (unittest.TestCase):
def setUp (self):
xmls = open('test.xml').read()
self.instance = custom.CreateFromDocument(xmls)
def testRawSubclassHierarchy (self):
self.assertTrue(issubclass(raw_custom.tc01, raw_custom.ta0))
self.assertTrue(issubclass(raw_custom.tc02, raw_custom.ta0))
self.assertTrue(issubclass(raw_custom.tc03, raw_custom.ta0))
self.assertTrue(issubclass(raw_custom.ta04, raw_custom.ta0))
self.assertTrue(issubclass(raw_custom.tc041, raw_custom.ta04))
self.assertTrue(issubclass(raw_custom.tc042, raw_custom.ta04))
def testCustomSubclassesRaw(self):
self.assertTrue(issubclass(custom.tc01, raw_custom.tc01))
self.assertTrue(issubclass(custom.tc02, raw_custom.tc02))
self.assertTrue(issubclass(custom.tc03, raw_custom.tc03))
self.assertTrue(issubclass(custom.ta04, raw_custom.ta04))
self.assertTrue(issubclass(custom.tc041, raw_custom.tc041))
self.assertTrue(issubclass(custom.tc042, raw_custom.tc042))
def testCustomConcreteHierarchy(self):
self.assertFalse(issubclass(custom.tc01, custom.ta0))
self.assertTrue(issubclass(custom.tc02, custom.ta0))
self.assertFalse(issubclass(custom.tc03, custom.ta0))
def test_c01 (self):
ec01 = self.instance.ec01
self.assertTrue(isinstance(ec01, custom.tc01))
self.assertEqual(ec01.ea0, 'ec01')
self.assertEqual(ec01.ec01, 'c01')
# Direct customization works...
self.assertEqual(ec01.xc01(), 'extend tc01')
# No inheritance from customized superclass
self.assertRaises(AttributeError, lambda _i: _i.xa0, ec01)
def test_c02 (self):
# Dual-inheritance customization works
ec02 = self.instance.ec02
self.assertTrue(isinstance(ec02, custom.tc02))
self.assertEqual(ec02.ea0, 'ec02')
self.assertEqual(ec02.ec02_i, 2)
# Direct customization works
self.assertEqual(ec02.xc02(), 'extend tc02')
# Inherited customization works
self.assertEqual(ec02.xa0(), 'extend ta0')
def test_c03 (self):
ec03 = self.instance.ec03
self.assertTrue(isinstance(ec03, custom.tc03))
self.assertEqual(ec03.ea0, 'ec03')
self.assertTrue(ec03.ec03_b)
# No inheritance from customized superclass
self.assertRaises(AttributeError, lambda _i: _i.xa0, ec03)
if __name__ == '__main__':
unittest.main()
|