← Back to team overview

oship-dev team mailing list archive

[Branch ~oship-dev/oship/devel] Rev 466: Implemented ItemList methods and added tests.

 

------------------------------------------------------------
revno: 466
committer: Wagner Francisco Mezaroba <wagner@wagner-laptop>
branch nick: oship
timestamp: Sun 2010-08-08 21:00:47 -0300
message:
  Implemented ItemList methods and added tests.
added:
  src/oship/openehr/rm/data_structures/item_structure/tests/
  src/oship/openehr/rm/data_structures/item_structure/tests/__init__.py
  src/oship/openehr/rm/data_structures/item_structure/tests/item_structure.py
modified:
  src/oship/openehr/rm/data_structures/item_structure/__init__.py
  src/oship/openehr/rm/data_structures/item_structure/representation/__init__.py


--
lp:oship
https://code.launchpad.net/~oship-dev/oship/devel

Your team OSHIP Development Team is subscribed to branch lp:oship.
To unsubscribe from this branch go to https://code.launchpad.net/~oship-dev/oship/devel/+edit-subscription
=== modified file 'src/oship/openehr/rm/data_structures/item_structure/__init__.py'
--- src/oship/openehr/rm/data_structures/item_structure/__init__.py	2010-08-06 21:24:11 +0000
+++ src/oship/openehr/rm/data_structures/item_structure/__init__.py	2010-08-09 00:00:47 +0000
@@ -25,19 +25,27 @@
 
     def __init__(self, items, uid, atnodeid, name, atdetails, fdraudit, links, parent):
         ItemStructure.__init__(self, uid, atnodeid, name, atdetails, fdraudit, links, parent)
-        self.item=items
-
-    def itemCount():
-        u"""Count of all items."""
-
-    def names():
-        u"""Return the names of all items."""
-
-    def namedItem(str):
-        u"""Return the named 'str'"""
+        if items is None:
+            self.items=[]
+        else:
+            self.items=items
+
+    def itemCount(self):
+        return len(self.items)
+
+    def names(self):
+        return [item.name for item in self.items]
+
+    def namedItem(self, name):
+        if name is None or len(name.strip()) == 0:
+            raise ValueError('name must not be None or an empty string')
+        for item in self.items:
+            if name == item.name.value:
+                return item
+        return None
 
     def ithItem(n):
-        u"""Return the 'n' ith item."""
+        return items[n]
 
     def asHierarchy():
         u"""Generate a CEN EN13606-compatible hierarchy consisting of a single

=== modified file 'src/oship/openehr/rm/data_structures/item_structure/representation/__init__.py'
--- src/oship/openehr/rm/data_structures/item_structure/representation/__init__.py	2010-08-06 21:39:30 +0000
+++ src/oship/openehr/rm/data_structures/item_structure/representation/__init__.py	2010-08-09 00:00:47 +0000
@@ -51,7 +51,8 @@
 
 
     def __eq__(self, obj):
-        if self == obj: return True
+        if self is obj: 
+            return True
         return isinstance(obj, Element)
         
     def __ne__(self, obj):

=== added directory 'src/oship/openehr/rm/data_structures/item_structure/tests'
=== added file 'src/oship/openehr/rm/data_structures/item_structure/tests/__init__.py'
--- src/oship/openehr/rm/data_structures/item_structure/tests/__init__.py	1970-01-01 00:00:00 +0000
+++ src/oship/openehr/rm/data_structures/item_structure/tests/__init__.py	2010-08-09 00:00:47 +0000
@@ -0,0 +1,1 @@
+# this directory is a package

=== added file 'src/oship/openehr/rm/data_structures/item_structure/tests/item_structure.py'
--- src/oship/openehr/rm/data_structures/item_structure/tests/item_structure.py	1970-01-01 00:00:00 +0000
+++ src/oship/openehr/rm/data_structures/item_structure/tests/item_structure.py	2010-08-09 00:00:47 +0000
@@ -0,0 +1,76 @@
+"""
+Do a Python test on the app.
+
+:Test-Layer: python
+"""
+import unittest
+import grok
+
+from oship.openehr.rm.data_structures.item_structure import ItemList
+from oship.openehr.rm.data_structures.item_structure.representation import Element
+from oship.openehr.rm.datatypes.text import DvText
+
+class EventTest(unittest.TestCase):
+
+    def setUp(self):
+        self.element1Name = DvText(u'element1',None,None,None,None,None)
+        self.element2Name = DvText(u'element2',None,None,None,None,None)
+        self.element3Name = DvText(u'element3',None,None,None,None,None)
+
+        self.element1 = Element(None,None,None,None,self.element1Name,None,None,None,None)
+        self.element2 = Element(None,None,None,None,self.element2Name,None,None,None,None)
+        self.element3 = Element(None,None,None,None,self.element3Name,None,None,None,None)
+
+        self.items = [self.element1, self.element2, self.element3]
+        self.anEmptyList = self.createAList()
+        self.aList = self.createAList(self.items)      
+
+    def tearDown(self):
+        self.anEmptyList = None
+        self.aList = None
+
+    def createElement(self, aName):
+        elementName = DvText(aName,None,None,None,None,None)
+        return Element(None,None,aName,None,elementName,None,None,None,None)
+
+    def createAList(self, items=None):
+        aListName = DvText(u'A Simple ItemList',None,None,None,None,None)
+        return ItemList(items,None,u'A Simple ItemList',aListName,None,None,None,None)
+
+    def testItemCountWithEmptyList(self):
+        self.assertEqual(0, self.anEmptyList.itemCount())
+
+    def testItemCountWithNotEmptyList(self):
+        self.assertEqual(len(self.items), self.aList.itemCount())
+
+    def testNamesWithEmptyList(self):
+        listNames = self.anEmptyList.names()
+        self.assertEquals(0, len(listNames))
+ 
+    def testNamesWithNotEmptyList(self):
+        listNames = self.aList.names()
+        self.assertEquals(len(self.items), len(listNames))
+        for name in (self.element1Name, self.element2Name, self.element3Name):
+            self.assertTrue(name in listNames)
+
+    def testNamedItemiWithEmptyName(self):
+        name = '  '
+        self.assertRaises(ValueError, self.aList.namedItem, name)
+
+    def testNamedItemWithNoneName(self):
+        self.assertRaises(ValueError, self.aList.namedItem, None)
+
+    def testNamedItemWithValidNames(self):
+        for item in self.items:
+            self.assertEqual(item, self.aList.namedItem(item.name.value))
+
+    def testNamedItemWithInvalidName(self):
+        self.assertEqual(None, self.aList.namedItem(u'an invalid name'))
+
+    def testIthItem(self):
+        self.assertEqual(self.items[0], self.aList.items[0])
+
+    def testIthItemWithInvalidIndex(self):
+        self.assertRaises(IndexError, self.items.__getitem__, 20)
+
+