check that the number of objects remains stable (that deletions work)
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 4 Dec 2008 22:16:45 +0000 (22:16 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 4 Dec 2008 22:16:45 +0000 (22:16 +0000)
system/plcsh-stress-test.py

index 73a7509..2356503 100755 (executable)
@@ -267,6 +267,14 @@ class Test:
         self.slice_ids = []
         self.slice_tag_ids = []
 
+    def Cardinals (self):
+        return [len(x) for x in ( 
+                self.api.GetNodes({},['node_id']),
+                self.api.GetSites({},['site_id']),
+                self.api.GetPersons({},['person_id']),
+                self.api.GetSlices({},['slice_id']),
+            )]
+
     def Run(self, **kwds):
         """
         Run a complete database and API consistency test. Populates
@@ -279,6 +287,9 @@ class Test:
         test.Run(sites = 123, slices_per_site = 4) # Defaults with overrides
         """
 
+        cardinals_before=self.Cardinals()
+        print 'Cardinals before test (n,s,p,sl)',cardinals_before
+
         self.Add(**kwds)
         self.Update()
         if self.preserve:
@@ -286,6 +297,12 @@ class Test:
         else:
             self.Delete()
 
+        cardinals_after=self.Cardinals()
+        print 'Cardinals after test (n,s,p,sl)',cardinals_after
+
+        if cardinals_before != cardinals_after:
+            raise Exception, 'cardinals before and after differ - check deletion mechanisms'
+
     def Add(self, **kwds):
         """
         Populate the database with a set of random entities. Examples: