[Erp5-report] r43101 nicolas.dumazet - /erp5/trunk/products/ERP5Type/tests/testERP5Type.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Sat Feb 5 10:37:24 CET 2011
Author: nicolas.dumazet
Date: Sat Feb 5 10:37:24 2011
New Revision: 43101
URL: http://svn.erp5.org?rev=43101&view=rev
Log:
testERP5Type was messing heavily with workflow chains and relying on
transaction aborts to restore them. That's hackish, and fails as soon as
an "innocent" hand comes in and adds a commit in a test.
* save and restore workflow chain for Person at beginning and start of test
* use setChainForPortalTypes instead of manage_changeWorkflows: the
first call alters the chain for one portal type, whereas the second affects
ALL portal types, effectively removing all chains from all portal types not
passed along in props=. It meant that after each manage_changeWorkflows the
test was running virtually without any workflow but those of Person, causing
"fake" failures in other, correct, tests.
This eventually fixes the last failures of testERP5Type
Modified:
erp5/trunk/products/ERP5Type/tests/testERP5Type.py
Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=43101&r1=43100&r2=43101&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] Sat Feb 5 10:37:24 2011
@@ -131,6 +131,9 @@ class TestERP5Type(PropertySheetTestCase
self.getTypesTool().getTypeInfo('Person').filter_content_types = 0
transaction.commit()
+ # save workflow chain for Person type
+ self.person_chain = self.getWorkflowTool().getChainFor('Person')
+
def beforeTearDown(self):
transaction.abort()
for module in [ self.getPersonModule(),
@@ -143,6 +146,10 @@ class TestERP5Type(PropertySheetTestCase
self.getTypesTool().getTypeInfo('Person').acquire_local_roles = self.person_acquire_local_roles
self.portal.portal_caches.clearAllCache()
+ # restore workflows for other tests
+ self.getWorkflowTool().setChainForPortalTypes(
+ ['Person'], self.person_chain)
+
super(TestERP5Type, self).beforeTearDown()
def loginWithNoRole(self):
@@ -2436,25 +2443,21 @@ class TestERP5Type(PropertySheetTestCase
def test_aq_reset_on_workflow_chain_change(self):
doc = self.portal.person_module.newContent(portal_type='Person')
- ti = self.getTypesTool()['Person']
self.assertFalse(hasattr(doc, 'getCausalityState'))
# chain the portal type with a workflow that has 'causality_state' as
# state variable name, this should regenerate the getCausalityState
# accessor. This test might have to be updated whenever
# delivery_causality_workflow changes.
- self.portal.portal_workflow.manage_changeWorkflows(
- default_chain='',
- props=dict(chain_Person='delivery_causality_workflow'))
+ self.getWorkflowTool().setChainForPortalTypes(
+ ['Person'], ('delivery_causality_workflow'))
transaction.commit()
self.assertTrue(hasattr(doc, 'getCausalityState'))
def test_aq_reset_on_workflow_method_change(self):
doc = self.portal.person_module.newContent(portal_type='Person')
- ti = self.getTypesTool()['Person']
- self.portal.portal_workflow.manage_changeWorkflows(
- default_chain='',
- props=dict(chain_Person='delivery_causality_workflow'))
+ self.getWorkflowTool().setChainForPortalTypes(
+ ['Person'], ('delivery_causality_workflow'))
transaction.commit()
self.assertTrue(hasattr(doc, 'diverge'))
@@ -2475,10 +2478,8 @@ class TestERP5Type(PropertySheetTestCase
def test_aq_reset_on_workflow_state_variable_change(self):
doc = self.portal.person_module.newContent(portal_type='Person')
- ti = self.getTypesTool()['Person']
- self.portal.portal_workflow.manage_changeWorkflows(
- default_chain='',
- props=dict(chain_Person='delivery_causality_workflow'))
+ self.getWorkflowTool().setChainForPortalTypes(
+ ['Person'], ('delivery_causality_workflow'))
transaction.commit()
self.assertTrue(hasattr(doc, 'getCausalityState'))
More information about the Erp5-report
mailing list