[Commits] (twl) Real unit tests for Kinds
commits at osafoundation.org
commits at osafoundation.org
Sun Jan 11 22:28:09 PST 2004
Commit by: twl
Modified files:
osaf/chandler/Chandler/repository/tests/TestKinds.py 1.2 1.3
Log message:
Real unit tests for Kinds
ViewCVS links:
http://cvs.osafoundation.org/index.cgi/osaf/chandler/Chandler/repository/tests/TestKinds.py.diff?r1=text&tr1=1.2&r2=text&tr2=1.3
Index: osaf/chandler/Chandler/repository/tests/TestKinds.py
diff -u osaf/chandler/Chandler/repository/tests/TestKinds.py:1.2 osaf/chandler/Chandler/repository/tests/TestKinds.py:1.3
--- osaf/chandler/Chandler/repository/tests/TestKinds.py:1.2 Sun Jan 4 17:26:20 2004
+++ osaf/chandler/Chandler/repository/tests/TestKinds.py Sun Jan 11 22:27:39 2004
@@ -2,8 +2,8 @@
Unit tests for kinds
"""
-__revision__ = "$Revision: 1.2 $"
-__date__ = "$Date: 2004/01/05 01:26:20 $"
+__revision__ = "$Revision: 1.3 $"
+__date__ = "$Date: 2004/01/12 06:27:39 $"
__copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
__license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
@@ -15,13 +15,103 @@
class KindTest(RepositoryTestCase.RepositoryTestCase):
""" Test Kinds """
+
+ def setUp(self):
+ super(KindTest, self).setUp()
+
+ self.kind = self._find("//Schema/Core/Kind")
+ self.itemKind = self._find("//Schema/Core/Item")
+ self.attrKind = self.itemKind.getAttribute('kind').kind
+
+ self.kind1 = self.kind.newItem('kind1',self.rep)
+ self.kind1Attr1 = Attribute('k1a1', self.rep, self.attrKind)
+ self.kind1Attr1.cardinality = 'list'
+ self.kind1Attr1.otherName = 'owner'
+ self.kind1.addValue('attributes', self.kind1Attr1, alias='k1a1')
+
+ kind1Attr1Bad = Attribute('k1a1bad', self.kind1, self.attrKind)
+ kind1Attr1Bad.cardinality = 'list'
+ kind1Attr1Bad.otherName = 'owner'
+ self.kind1.addValue('attribute', kind1Attr1Bad, alias='k1a1bad')
+
+ self.kind2 = self.kind.newItem('kind2', self.kind1)
+
- def testToXML(self):
+ def testBasic(self):
+ """ Test basic Kind methods """
+ kindClass = self.kind.getItemClass()
+ itemKindClass = self.itemKind.getItemClass()
+ self.assertEquals(kindClass.__name__,"Kind")
+ self.assertEquals(itemKindClass.__name__,"Item")
+
+ def testResolve(self):
+ """ Test child attribute and aliased attribute resolution """
+ # resolve a non-child, non aliased attribute
+ self.assert_(self.kind1.resolve('attributes') is None)
+ # resolve a non existent attribute
+ self.assert_(self.kind1.resolve('bogus') is None)
+
+ # resolve a child non attribute
+ self.assertEquals(self.kind1.resolve('kind2'), self.kind2.getUUID())
+
+ # resolve an attribute (alias)
+ self.assert_(self.kind1.resolve('k1a1') is self.kind1Attr1.getUUID())
+
+ def testGetAttribute(self):
+ """ Test getAttribute and has Attribute """
+
+ # an attribute that is a child but not on the atts list should
+ # not be returned
+ self.assert_(self.kind1.getAttribute('k1a1bad') is None)
+ self.assert_(not self.kind1.hasAttribute('k1a1bad'))
- kind = self.rep.find('//Schema/Core/Kind')
- xml = kind.toXML()
+ # basic getAttribute and hasAttribute
+ self.assert_(self.kind1.hasAttribute('k1a1'))
+ self.assert_(self.kind1.getAttribute('k1a1') is self.kind1Attr1)
+
+ # add an inherited attribute, kind2 inherits from kind1
+ self.kind2.addValue('superKinds', self.kind1)
+
+ # retreive an inherited attribute
+ self.assert_(self.kind2.hasAttribute('k1a1'))
+ self.assert_(self.kind2.getAttribute('k1a1') is not None)
+
+ def testIsAlias(self):
+ """ A kind is not an alias """
+ self.assert_(not self.kind1.isAlias())
+
+ def testIsSubKindOf(self):
+ """ Test IsSubKindOf on multiple super kinds """
+ # make kind2 a subkind of kind1
+ self.kind2.addValue('superKinds', self.kind1)
+ self.assert_(self.kind2.isSubKindOf(self.itemKind))
+ self.assert_(self.kind2.isSubKindOf(self.kind1))
+
+
+ def testToXML(self):
+ """ Non realistic test of to XML """
+ xml = self.kind.toXML()
self.failIf(xml is None)
+ def testRekinding(self):
+ # rekind an item
+ # re super kind a kind
+ # we do this in TestReferenceAttributes.py but should do it for real here
+ #@@@TODO we need to define what it means to rekind first
+
+# self.kind2.addValue('superKinds', self.kind1)
+
+# item = self.kind2.newItem('item', self.rep)
+# item.setValue('k1a1','value')
+# self.assertEquals(len(item.k1a1),1)
+
+# newKind = self.kind.newItem('newKind', self.rep)
+# item.kind = newKind
+# self.assert_('value' in item.k1a1)
+
+# newSuperKind = self.kind.newItem('newSuperKind', self.rep)
+
+ pass
if __name__ == "__main__":
More information about the Commits
mailing list