[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