[Erp5-report] r19533 - /erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 26 19:17:11 CET 2008
Author: vincent
Date: Tue Feb 26 19:17:11 2008
New Revision: 19533
URL: http://svn.erp5.org?rev=19533&view=rev
Log:
Add a unit test for reindexation's use of CMFActivity's serialization_tag.
Modified:
erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=19533&r1=19532&r2=19533&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Tue Feb 26 19:17:11 2008
@@ -2484,6 +2484,106 @@
sql_catalog.sql_search_tables = current_sql_search_tables
get_transaction().commit()
+ def test_ObjectReindexationConcurency(self, quiet=quiet, run=run_all_test):
+ if not run:
+ return
+
+ portal = self.getPortalObject()
+
+ portal_activities = getattr(portal, 'portal_activities', None)
+ if portal_activities is None:
+ ZopeTestCase._print('\n Skipping test_ObjectReindexatoinConcurency (portal_activities not found)')
+ return
+
+ container = organisation_module = portal.organisation_module
+ document_1 = container.newContent()
+ document_1_1 = document_1.newContent()
+ document_1_2 = document_1.newContent()
+ document_2 = container.newContent()
+ get_transaction().commit()
+ self.tic()
+ # First case: parent, then child
+ document_1.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 1)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ document_1_1.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ self.tic()
+ # Variation of first case: parent's borther along
+ document_1.reindexObject()
+ document_2.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ document_1_1.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 3)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ self.tic()
+ # Second case: child, then parent
+ document_1_1.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 1)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ document_1.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ self.tic()
+ # Variation of second case: parent's borther along
+ document_1_1.reindexObject()
+ document_2.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ document_1.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 3)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ self.tic()
+ # Third case: child 1, then child 2
+ document_1_1.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 1)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ document_1_2.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 1)
+ self.tic()
+ # Variation of third case: parent's borther along
+ document_1_1.reindexObject()
+ document_2.reindexObject()
+ self.assertEqual(len(portal_activities.getMessageList()), 0)
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 2)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ document_1_2.reindexObject()
+ get_transaction().commit()
+ self.assertEqual(len(portal_activities.getMessageList()), 3)
+ portal_activities.distribute()
+ self.assertEqual(len([x for x in portal_activities.getMessageList() if x.processing_node == 0]), 2)
+ self.tic()
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestERP5Catalog))
More information about the Erp5-report
mailing list