Commit d61c3572 authored by Alexandre Boeglin's avatar Alexandre Boeglin

test that we don't have a rule more than once at a given node of the simulation tree

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@17427 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0ff7e556
...@@ -84,7 +84,7 @@ class TestInvoice(TestPackingListMixin, ...@@ -84,7 +84,7 @@ class TestInvoice(TestPackingListMixin,
def login(self, quiet=0, run=1): def login(self, quiet=0, run=1):
uf = self.getPortal().acl_users uf = self.getPortal().acl_users
uf._doAddUser('alex', 'alex', ['Manager', 'Assignee', 'Assignor', uf._doAddUser('alex', '', ['Manager', 'Assignee', 'Assignor',
'Associate', 'Auditor', 'Author'], []) 'Associate', 'Auditor', 'Author'], [])
user = uf.getUserById('alex').__of__(uf) user = uf.getUserById('alex').__of__(uf)
newSecurityManager(None, user) newSecurityManager(None, user)
...@@ -954,9 +954,9 @@ class TestInvoice(TestPackingListMixin, ...@@ -954,9 +954,9 @@ class TestInvoice(TestPackingListMixin,
activity_tool = self.getActivityTool() activity_tool = self.getActivityTool()
activity_tool.manageClearActivities(keep=0) activity_tool.manageClearActivities(keep=0)
else: else:
self.fail("""Error: stepConfirmInvoice didn't fail, the builder script self.fail("Error: stepConfirmInvoice didn't fail, the builder script"
InvoiceTransaction_postTransactionLineGeneration should have + " InvoiceTransaction_postTransactionLineGeneration should have"
complain that accounting movements use multiple resources""") + " complained that accounting movements use multiple resources")
def stepCheckSimulationTrees(self, sequence=None, sequence_list=[]): def stepCheckSimulationTrees(self, sequence=None, sequence_list=[]):
""" """
...@@ -1010,11 +1010,18 @@ class TestInvoice(TestPackingListMixin, ...@@ -1010,11 +1010,18 @@ class TestInvoice(TestPackingListMixin,
movement.getPath())) movement.getPath()))
elif k == 'next_rule_list': elif k == 'next_rule_list':
for movement in rule.objectValues(): for movement in rule.objectValues():
found_rule_dict = {}
for next_rule in movement.objectValues(): for next_rule in movement.objectValues():
self.assertTrue(next_rule.getSpecialiseValue().getPortalType() next_rule_type = next_rule.getSpecialiseValue().getPortalType()
in v, 'looking for %s in %s on %s' % ( self.assertTrue(next_rule_type in v,
next_rule.getSpecialiseValue().getPortalType(), v, 'looking for %s in %s on %s' % (
next_rule.getPath())) next_rule_type, v, next_rule.getPath()))
n = found_rule_dict.get(next_rule_type, 0)
found_rule_dict[next_rule_type] = n + 1
# for each movement, we want to make sure that each rule is not
# instanciated more than once
if len(found_rule_dict):
self.assertEquals(set(found_rule_dict.itervalues()), set([1]))
elif k == 'parent_movement_type_list': elif k == 'parent_movement_type_list':
if rule.getParentValue().getDeliveryValue() is not None: if rule.getParentValue().getDeliveryValue() is not None:
parent_type = rule.getParentValue().getDeliveryValue().getPortalType() parent_type = rule.getParentValue().getDeliveryValue().getPortalType()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment