← Back to team overview

oship-dev team mailing list archive

[Branch ~oship-dev/oship/devel] Rev 487: Added invariant to precedingVersionId and uid attributes to the Version class and tests for it. B...

 

------------------------------------------------------------
revno: 487
committer: Wagner Francisco Mezaroba <wagner@wagner-laptop>
branch nick: oship
timestamp: Sun 2010-09-12 19:02:27 -0300
message:
  Added invariant to precedingVersionId and uid attributes to the Version class and tests for it. Bug #625975
modified:
  src/oship/openehr/rm/common/change_control/__init__.py
  src/oship/openehr/rm/common/change_control/tests/originalversion.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/common/change_control/__init__.py'
--- src/oship/openehr/rm/common/change_control/__init__.py	2010-09-12 21:06:42 +0000
+++ src/oship/openehr/rm/common/change_control/__init__.py	2010-09-12 22:02:27 +0000
@@ -29,8 +29,10 @@
     grok.implements(IVersion)
 
     def __init__(self, uid, preVid, data, lcstate, caudit, contribution, sig):
+        if uid.versionTreeId().isFirst() == (preVid!=None):
+            raise ValueError(u'')
         if contribution == None or contribution.type != 'CONTRIBUTION':
-            raise ValueError('Contribution must not be None and its type must be CONTRIBUTION')
+            raise ValueError(u'Contribution must not be None and its type must be CONTRIBUTION')
         self.uid=uid
         self.precedingVersionId=preVid
         self.data=data

=== modified file 'src/oship/openehr/rm/common/change_control/tests/originalversion.py'
--- src/oship/openehr/rm/common/change_control/tests/originalversion.py	2010-09-12 21:06:42 +0000
+++ src/oship/openehr/rm/common/change_control/tests/originalversion.py	2010-09-12 22:02:27 +0000
@@ -14,7 +14,9 @@
 class OriginalVersionTest(unittest.TestCase):
 
     def setUp(self):
-        self.uid = ObjectVersionId("87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2::1")
+        self.initialVersionId = ObjectVersionId("87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2::1")
+        self.secondVersionId = ObjectVersionId("87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2::2")
+        self.thirdVersionId = ObjectVersionId("87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2::3")
         self.data = u"Some data"
         openEhrTerminologyId = TerminologyId(u"openehr")
         versionCodePhrase = CodePhrase(openEhrTerminologyId,u"version lifecycle state")
@@ -24,17 +26,29 @@
         self.contribution=ObjectRef(contributionId,u'local',u'CONTRIBUTION')
         self.invalidContribution=ObjectRef(contributionId, u'local', u'INVALID TYPE')
 
-#        version = OriginalVersion(uid,None,None,data,None,lifecycleState,caudit,contribution,None)
-#        version.ownerId().value
-#        version.isBranch()
-#        pass
-
     def tearDown(self):
         pass
 
     def testInitializerWithNullContribution(self):
-        self.assertRaises(ValueError, OriginalVersion, self.uid,None,None,self.data,None,self.lifecycleState,self.caudit,None,None)
-
-    def testInitializarWithInvalidContributionType(self):
-        self.assertRaises(ValueError, OriginalVersion, self.uid,None,None,self.data,None,self.lifecycleState,self.caudit,self.invalidContribution,None)       
+        self.assertRaises(ValueError, OriginalVersion, self.initialVersionId,None,None,self.data,None,self.lifecycleState,self.caudit,None,None)
+
+    def testInitializerWithInvalidContributionType(self):
+        self.assertRaises(ValueError, OriginalVersion, self.initialVersionId,None,None,self.data,None,self.lifecycleState,self.caudit,self.invalidContribution,None)       
+
+    def testInitializerWithInitialVersionUidAndPrecedingVersionUid(self):
+       self.assertRaises(ValueError, OriginalVersion, self.initialVersionId, self.secondVersionId, None, self.data,None, self.lifecycleState,self.caudit,self.contribution,None)       
+
+    def testInitializerWithInitialVersionUidAndNullPrecedingVersionUid(self):
+        originalVersion = OriginalVersion(self.initialVersionId, None, None, self.data,None, self.lifecycleState,self.caudit,self.contribution,None)
+        self.assertEquals(self.initialVersionId, originalVersion.uid)
+        self.assertEquals(None, originalVersion.precedingVersionId)                   
+
+    def testInitializerWithNotInitialVersionUidAndPrecedingVersionUid(self):
+        originalVersion = OriginalVersion(self.secondVersionId, self.thirdVersionId, None, self.data,None, self.lifecycleState,self.caudit,self.contribution,None)       
+        self.assertEquals(self.secondVersionId, originalVersion.uid)
+        self.assertEquals(self.thirdVersionId, originalVersion.precedingVersionId)
+
+    def testInitializerWithNotInitialVersionUidAndNullPrecedingVersionUid(self):
+        self.assertRaises(ValueError, OriginalVersion, self.secondVersionId, None, None, self.data,None, self.lifecycleState,self.caudit,self.contribution,None)       
+