[Erp5-report] r26327 - in /erp5/trunk/products/ERP5Type: Core/ patches/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 7 14:22:08 CEST 2009
Author: luke
Date: Tue Apr 7 14:22:06 2009
New Revision: 26327
URL: http://svn.erp5.org?rev=26327&view=rev
Log:
- remove not needed patch to BTreeFolder2
- add fix method for BTree if its _folder_handler is set to string
- add tests:
- to check if it is possible to recover functionality of isBTree and isHBTree methods using _fixFolderHandler
- that BTree after adding content is still BTree while using isBTree (same for HBTree)
Modified:
erp5/trunk/products/ERP5Type/Core/Folder.py
erp5/trunk/products/ERP5Type/patches/BTreeFolder2.py
erp5/trunk/products/ERP5Type/tests/testFolderMigration.py
Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=26327&r1=26326&r2=26327&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] Tue Apr 7 14:22:06 2009
@@ -580,6 +580,21 @@
return CMFHBTreeFolder._fixCount(self)
else:
return CMFBTreeFolder._fixCount(self)
+
+ def _fixFolderHandler(self):
+ """Fixes _folder_handler if it is a string
+
+ Bug affecting BTree folders in ERP5Type/patches/Folder.py introduced
+ string value for _folder_handler, which mades methods isBTree and isHBTree
+ fail.
+
+ Returns True in case of founded and fixed error, in case
+ of no error returns False.
+ """
+ if isinstance(self._folder_handler,str):
+ delattr(self, '_folder_handler')
+ return True
+ return False
def manage_cleanup(self):
"""Calls self._cleanup() and reports the result as text.
Modified: erp5/trunk/products/ERP5Type/patches/BTreeFolder2.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/BTreeFolder2.py?rev=26327&r1=26326&r2=26327&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/BTreeFolder2.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/patches/BTreeFolder2.py [utf8] Tue Apr 7 14:22:06 2009
@@ -97,10 +97,3 @@
BTreeFolder2Base._cleanup = _cleanup
-def __init__(self, id=None):
- self._folder_handler = 'CMFBTreeFolderHandler'
- if id is not None:
- self.id = id
- self._initBTrees()
-
-BTreeFolder2Base.__init__ = __init__
Modified: erp5/trunk/products/ERP5Type/tests/testFolderMigration.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testFolderMigration.py?rev=26327&r1=26326&r2=26327&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testFolderMigration.py [utf8] Tue Apr 7 14:22:06 2009
@@ -146,6 +146,19 @@
self.assertEqual(self.folder.isHBTree(), False)
+ def test_03a_filledFolderIsBtree(self, quiet=0, run=1):
+ """
+ Test the folder is a BTree
+ """
+ if not run : return
+ if not quiet:
+ message = 'Test FilledFolderIsBtree'
+ LOG('Testing... ', 0, message)
+ self.folder.newContent()
+ self.assertRaises(NotImplementedError, self.folder.getTreeIdList)
+ self.assertEqual(self.folder.isBTree(), True)
+ self.assertEqual(self.folder.isHBTree(), False)
+
def test_04_migrateEmptyFolder(self, quiet=0, run=1):
"""
migrate empty folder from btree to hbtree
@@ -173,6 +186,10 @@
date = DateTime().Date()
date = date.replace("/", "")
self.failUnless(date in obj1.getId())
+ # check we still have a hbtree
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), True)
+ self.assertEqual(len(self.folder.objectIds()), 1)
def test_05_migrateFolderWithoutIdChange(self, quiet=0, run=1):
"""
@@ -493,6 +510,65 @@
self.assertEqual(len(self.folder.objectValues(base_id=id_prefix)), 3)
+ def test_13_wrongFolderHandlerFix(self, quiet=0, run=1):
+ if not run : return
+ if not quiet:
+ message = 'Test migrateFolder'
+ LOG('Testing... ', 0, message)
+
+ self.assertEqual(self.folder.isBTree(), True)
+ self.assertEqual(self.folder.isHBTree(), False)
+
+ setattr(self.folder,'_folder_handler','VeryWrongHandler')
+ get_transaction().commit()
+ self.tic()
+
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), False)
+
+ self.assertEquals(self.folder._fixFolderHandler(), True)
+ get_transaction().commit()
+
+ self.assertEqual(self.folder.isBTree(), True)
+ self.assertEqual(self.folder.isHBTree(), False)
+
+ self.folder.migrateToHBTree()
+ get_transaction().commit()
+ self.tic()
+
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), True)
+
+ def test_14_wrongFolderHandlerMigrate(self, quiet=0, run=1):
+ if not run : return
+ if not quiet:
+ message = 'Test migrateFolder'
+ LOG('Testing... ', 0, message)
+
+ self.assertEqual(self.folder.isBTree(), True)
+ self.assertEqual(self.folder.isHBTree(), False)
+
+ setattr(self.folder,'_folder_handler','VeryWrongHandler')
+ get_transaction().commit()
+ self.tic()
+
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), False)
+
+ self.folder.migrateToHBTree()
+ get_transaction().commit()
+ self.tic()
+
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), True)
+
+ self.folder.newContent()
+ get_transaction().commit()
+ self.tic()
+
+ self.assertEqual(self.folder.isBTree(), False)
+ self.assertEqual(self.folder.isHBTree(), True)
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestFolderMigration))
More information about the Erp5-report
mailing list