[Erp5-report] r25457 - /erp5/trunk/products/ERP5Type/tests/testFolderMigration.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Feb 5 11:55:20 CET 2009


Author: luke
Date: Thu Feb  5 11:55:04 2009
New Revision: 25457

URL: http://svn.erp5.org?rev=25457&view=rev
Log:
 - test for migrating folder more than once in concurrent or one-by-one scenario 

Modified:
    erp5/trunk/products/ERP5Type/tests/testFolderMigration.py

Modified: erp5/trunk/products/ERP5Type/tests/testFolderMigration.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testFolderMigration.py?rev=25457&r1=25456&r2=25457&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] Thu Feb  5 11:55:04 2009
@@ -265,6 +265,112 @@
       obj5 = self.newContent()
       self.assertEquals(obj5.getId().split('-')[0], date)
 
+    def test_07_migrateFolderTwice(self, quiet=0, run=1):
+      """
+      migrate folder twice from btree to hbtree
+      """
+      if not run : return
+      if not quiet:
+        message = 'Test migrateFolder'
+        LOG('Testing... ', 0, message)
+      # Create some objects
+      self.assertEquals(self.folder.getIdGenerator(), '')
+      self.assertEquals(len(self.folder), 0)
+      obj1 = self.newContent()
+      self.assertEquals(obj1.getId(), '1')
+      obj2 = self.newContent()
+      self.assertEquals(obj2.getId(), '2')
+      obj3 = self.newContent()
+      self.assertEquals(obj3.getId(), '3')
+      get_transaction().commit()
+      self.tic()      
+      # call migration script
+      self.folder.migrateToHBTree(migration_generate_id_method="Base_generateIdFromStopDate",
+                                  new_generate_id_method="_generatePerDayId")
+      get_transaction().commit()
+      self.tic()
+      # check we now have a hbtree
+      self.assertEqual(self.folder.isBTree(), False)
+      self.assertEqual(self.folder.isHBTree(), True)
+      self.assertEqual(len(self.folder.getTreeIdList()), 1)
+      self.assertEqual(len(self.folder.objectIds()), 3)
+      # check params of objectIds in case of hbtree
+      self.assertEqual(len(self.folder.objectIds(base_id=None)), 0)
+      LOG("test", 300, "rien")
+      self.assertEqual(len(self.folder.objectValues()), 3)
+      LOG("test", 300, "base_id")
+      self.assertEqual(len(self.folder.objectValues(base_id=None)), 0)
+      # check object ids
+      from DateTime import DateTime
+      date = DateTime().Date()
+      date = date.replace("/", "")
+      self.assertEquals(obj1.getId(), '%s-1' %date)
+      self.assertEquals(obj2.getId(), '%s-2' %date)
+      self.assertEquals(obj3.getId(), '%s-3' %date)
+      # add object and check its id
+      obj4 = self.newContent()
+      self.assertEquals(obj4.getId().split('-')[0], date)
+      # call migration script again
+      self.folder.migrateToHBTree(migration_generate_id_method="Base_generateIdFromStopDate",
+                                  new_generate_id_method="_generatePerDayId")
+      get_transaction().commit()
+      self.tic()
+      
+      # check object ids
+      self.assertEquals(obj1.getId(), '%s-1' %date)
+      self.assertEquals(obj2.getId(), '%s-2' %date)
+      self.assertEquals(obj3.getId(), '%s-3' %date)
+      self.assertEquals(obj4.getId().split('-')[0], date)
+      
+    def test_08_migrateFolderTwiceSimultaneously(self, quiet=0, run=1):
+      """
+      migrate folder twice from btree to hbtree
+      """
+      if not run : return
+      if not quiet:
+        message = 'Test migrateFolder'
+        LOG('Testing... ', 0, message)
+      # Create some objects
+      self.assertEquals(self.folder.getIdGenerator(), '')
+      self.assertEquals(len(self.folder), 0)
+      obj1 = self.newContent()
+      self.assertEquals(obj1.getId(), '1')
+      obj2 = self.newContent()
+      self.assertEquals(obj2.getId(), '2')
+      obj3 = self.newContent()
+      self.assertEquals(obj3.getId(), '3')
+      get_transaction().commit()
+      self.tic()      
+      # call migration script twice
+      self.folder.migrateToHBTree(migration_generate_id_method="Base_generateIdFromStopDate",
+                                  new_generate_id_method="_generatePerDayId")
+      get_transaction().commit()
+      self.folder.migrateToHBTree(migration_generate_id_method="Base_generateIdFromStopDate",
+                                  new_generate_id_method="_generatePerDayId")
+      get_transaction().commit()
+      self.tic()
+      # check we now have a hbtree
+      self.assertEqual(self.folder.isBTree(), False)
+      self.assertEqual(self.folder.isHBTree(), True)
+      self.assertEqual(len(self.folder.getTreeIdList()), 1)
+      self.assertEqual(len(self.folder.objectIds()), 3)
+      # check params of objectIds in case of hbtree
+      self.assertEqual(len(self.folder.objectIds(base_id=None)), 0)
+      LOG("test", 300, "rien")
+      self.assertEqual(len(self.folder.objectValues()), 3)
+      LOG("test", 300, "base_id")
+      self.assertEqual(len(self.folder.objectValues(base_id=None)), 0)
+      # check object ids
+      from DateTime import DateTime
+      date = DateTime().Date()
+      date = date.replace("/", "")
+      self.assertEquals(obj1.getId(), '%s-1' %date)
+      self.assertEquals(obj2.getId(), '%s-2' %date)
+      self.assertEquals(obj3.getId(), '%s-3' %date)
+      # add object and check its id
+      obj4 = self.newContent()
+      self.assertEquals(obj4.getId().split('-')[0], date)
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestFolderMigration))




More information about the Erp5-report mailing list