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

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 3 15:49:39 CET 2009


Author: luke
Date: Tue Feb  3 15:49:37 2009
New Revision: 25430

URL: http://svn.erp5.org?rev=25430&view=rev
Log:
 - check id of added objects after migration to HBTree
 - test migration without changing id of existing objects and do not affect new ones ids
 - test migration without changing id of existing objects and do not affect new ones ids, then set new id generation method

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=25430&r1=25429&r2=25430&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] Tue Feb  3 15:49:37 2009
@@ -128,6 +128,9 @@
       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_03_emptyFolderIsBtree(self, quiet=0, run=1):
@@ -171,6 +174,97 @@
       date = date.replace("/", "")
       self.failUnless(date in obj1.getId())
       
+    def test_05_migrateFolderWithoutIdChange(self, quiet=0, run=1):
+      """
+      migrate folder from btree to hbtree, do not touch ids
+      """
+      if not run : return
+      # 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()
+      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)), 3)
+      self.assertEqual(len(self.folder.objectValues()), 3)
+      self.assertEqual(len(self.folder.objectValues(base_id=None)), 3)
+      # check object ids
+      self.assertEquals(obj1.getId(), '1')
+      self.assertEquals(obj2.getId(), '2')
+      self.assertEquals(obj3.getId(), '3')
+      # add object and check its id
+      obj4 = self.newContent()
+      self.assertEquals(obj4.getId(), '4')
+
+    def test_06_migrateFolderChangeIdGenerationMethodLater(self, quiet=0, run=1):
+      """
+      migrate folder from btree to hbtree, do not touch ids
+      """
+      if not run : return
+      # 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()
+      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)), 3)
+      self.assertEqual(len(self.folder.objectValues()), 3)
+      self.assertEqual(len(self.folder.objectValues(base_id=None)), 3)
+      # check object ids
+      self.assertEquals(obj1.getId(), '1')
+      self.assertEquals(obj2.getId(), '2')
+      self.assertEquals(obj3.getId(), '3')
+      # add object and check its id
+      obj4 = self.newContent()
+      self.assertEquals(obj4.getId(), '4')
+      # set id generator
+      id_generator_method = '_generatePerDayId'
+      self.folder.setIdGenerator(id_generator_method)
+      get_transaction().commit()
+      self.assertEquals(self.folder.getIdGenerator(), id_generator_method)
+      # check object ids
+      self.assertEquals(obj1.getId(), '1')
+      self.assertEquals(obj2.getId(), '2')
+      self.assertEquals(obj3.getId(), '3')
+      self.assertEquals(obj4.getId(), '4')
+      # add object and check its id
+      from DateTime import DateTime
+      date = DateTime().Date()
+      date = date.replace("/", "")
+      
+      obj5 = self.newContent()
+      self.assertEquals(obj5.getId().split('-')[0], date)
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestFolderMigration))




More information about the Erp5-report mailing list