Commit 06422e71 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

merge these two experimental tests.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@32128 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 09c60524
...@@ -58,7 +58,7 @@ class TestBPMEvaluationMixin(TestBPMMixin): ...@@ -58,7 +58,7 @@ class TestBPMEvaluationMixin(TestBPMMixin):
def getBusinessTemplateList(self): def getBusinessTemplateList(self):
return TestBPMMixin.getBusinessTemplateList(self) + ('erp5_bpm', return TestBPMMixin.getBusinessTemplateList(self) + ('erp5_bpm',
'erp5_administration') 'erp5_administration', 'erp5_simulation',)
def afterSetUp(self): def afterSetUp(self):
TestBPMMixin.afterSetUp(self) TestBPMMixin.afterSetUp(self)
...@@ -91,29 +91,59 @@ class TestBPMEvaluationMixin(TestBPMMixin): ...@@ -91,29 +91,59 @@ class TestBPMEvaluationMixin(TestBPMMixin):
edit_dict = {} edit_dict = {}
edit_dict.update( edit_dict.update(
trade_phase = 'default/delivery', trade_phase = 'default/delivery',
expandable_property = ('aggregate_list', 'base_application_list',
'base_contribution_list', 'causality_list', 'description',
'destination_account_list', 'destination_function_list',
'destination_list', 'destination_section_list', 'price',
'price_currency_list', 'quantity', 'quantity_unit_list',
'resource_list', 'source_account_list', 'source_function_list',
'source_list', 'source_section_list', 'start_date', 'stop_date',
'variation_category_list', 'variation_property_dict'),
matching_property = ('resource_list', 'variation_category_list',
'variation_property_dict', 'order_list')
) )
edit_dict.update(**kw) edit_dict.update(**kw)
rule = self.rule_tool.newContent(**edit_dict) rule = self.rule_tool.newContent(**edit_dict)
rule.newContent(portal_type='Category Divergence Tester',
tested_property = ('source_section_list | Source Section', # matching providers
'resource_list | Resource', for category in ('resource', 'order'):
'destination_section_list | Destination Section', rule.newContent(
'source_list | Source', 'destination_list | Destination', portal_type='Category Membership Divergence Tester',
'aggregate_list | Aggregate')) title='%s divergence tester' % category,
rule.newContent(portal_type='Property Divergence Tester', tested_property=category,
tested_property = ('start_date | Start Date', divergence_provider=False,
'stop_date | Stop Date')) matching_provider=True)
rule.newContent(portal_type='Quantity Divergence Tester') rule.newContent(
portal_type='Variation Divergence Tester',
title='variation divergence tester',
tested_property='variation_property_dict',
divergence_provider=False,
matching_provider=True)
# divergence providers
for category in ('source_section',
'resource',
'destination_section',
'source',
'aggregate'):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
return rule return rule
...@@ -130,41 +160,69 @@ class TestBPMEvaluationMixin(TestBPMMixin): ...@@ -130,41 +160,69 @@ class TestBPMEvaluationMixin(TestBPMMixin):
transaction.commit() transaction.commit()
def _createTradeModelRule(self): def _createTradeModelRule(self):
edit_dict = {}
edit_dict.update(
)
rule = self.rule_tool.newContent(portal_type='Trade Model Rule', rule = self.rule_tool.newContent(portal_type='Trade Model Rule',
reference='default_trade_model_rule', reference='default_trade_model_rule',
expandable_property = ('delivery_mode_list', 'incoterm_list',
'source_list', 'destination_list', 'source_section_list',
'destination_section_list', 'source_decision_list',
'destination_decision_list', 'source_administration_list',
'destination_administration_list', 'price_currency_list',
'resource_list', 'aggregate_list', 'source_function_list',
'destination_function_list', 'source_account_list',
'destination_account_list', 'description',
'destination_payment_list', 'source_payment_list'),
test_method_id = ('SimulationMovement_testTradeModelRule',) test_method_id = ('SimulationMovement_testTradeModelRule',)
) )
rule.newContent(portal_type='Category Divergence Tester', # matching providers
tested_property = ('resource_list | Resource', for category in ('resource',):
'source_section_list | Source Section', rule.newContent(
'destination_section_list | Destination Section', portal_type='Category Membership Divergence Tester',
'source_list | Source', 'destination_list | Destination', title='%s divergence tester' % category,
'source_function_list | Source Function', tested_property=category,
'destination_function_list | Destination Function', divergence_provider=False,
'source_project_list | Source Project', matching_provider=True)
'destination_project_list | Destination Project', rule.newContent(
'aggregate_list | Aggregate', portal_type='Variation Divergence Tester',
'price_currency_list | Price Currency', title='variation divergence tester',
'base_contribution_list | Base Contribution', tested_property='variation_property_dict',
'base_application_list | Base Application', divergence_provider=False,
'source_account_list | Source Account', matching_provider=True)
'destination_account_list | Destination Account'))
rule.newContent(portal_type='Property Divergence Tester', # divergence providers
tested_property = ('start_date | Start Date', for category in ('resource',
'stop_date | Stop Date', 'price | Price')) 'source_section',
rule.newContent(portal_type='Quantity Divergence Tester') 'destination_section',
'source',
'source_function',
'destination_function',
'source_project',
'destination_project',
'aggregate',
'price_currency',
'base_contribution',
'base_application',
'source_account',
'destination_account',
):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.validate() rule.validate()
transaction.commit() transaction.commit()
...@@ -187,38 +245,67 @@ class TestBPMEvaluationMixin(TestBPMMixin): ...@@ -187,38 +245,67 @@ class TestBPMEvaluationMixin(TestBPMMixin):
rule = self.rule_tool.newContent(portal_type='Invoicing Rule', rule = self.rule_tool.newContent(portal_type='Invoicing Rule',
reference='default_invoicing_rule', reference='default_invoicing_rule',
trade_phase = 'default/invoicing', trade_phase = 'default/invoicing',
expandable_property = ('aggregate_list', 'base_application_list',
'base_contribution_list', 'causality_list', 'delivery_mode_list',
'description', 'destination_account_list',
'destination_function_list', 'destination_list',
'destination_section_list', 'efficiency', 'incoterm_list', 'price',
'price_currency_list', 'quantity', 'quantity_unit_list',
'resource_list', 'source_account_list', 'source_function_list',
'source_list', 'source_section_list', 'start_date', 'stop_date',
'variation_category_list', 'variation_property_dict'),
matching_property = ('resource_list', 'variation_category_list',
'variation_property_dict'),
test_method_id = ('SimulationMovement_testInvoicingRule',) test_method_id = ('SimulationMovement_testInvoicingRule',)
) )
rule.newContent(portal_type='Category Divergence Tester', # matching providers
tested_property = ('resource_list | Resource', for category in ('resource',):
'source_section_list | Source Section', rule.newContent(
'destination_section_list | Destination Section', portal_type='Category Membership Divergence Tester',
'source_list | Source', 'destination_list | Destination', title='%s divergence tester' % category,
'source_function_list | Source Function', tested_property=category,
'destination_function_list | Destination Function', divergence_provider=False,
'source_project_list | Source Project', matching_provider=True)
'destination_project_list | Destination Project', rule.newContent(
'aggregate_list | Aggregate', portal_type='Variation Divergence Tester',
'price_currency_list | Price Currency', title='variation divergence tester',
'base_contribution_list | Base Contribution', tested_property='variation_property_dict',
'base_application_list | Base Application', divergence_provider=False,
'source_account_list | Source Account', matching_provider=True)
'destination_account_list | Destination Account'))
rule.newContent(portal_type='Property Divergence Tester', # divergence providers
tested_property = ('start_date | Start Date', for category in ('resource',
'stop_date | Stop Date')) 'source_section',
rule.newContent(portal_type='Quantity Divergence Tester') 'destination_section',
'source',
'source_function',
'destination_function',
'source_project',
'destination_project',
'aggregate',
'price_currency',
'base_contribution',
'base_application',
'source_account',
'destination_account',
):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.validate() rule.validate()
transaction.commit() transaction.commit()
......
# -*- coding: utf-8 -*-
##############################################################################
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly advised to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
"""
This is BPM Evaluation Test class using erp5_bpm development Business Template
Generally it tries to use two Business Processes - one with sequence very
similar to normal ERP5 - TestBPMEvaluationDefaultProcessMixin, second one
inverted - TestBPMEvaluationDifferentProcessMixin.
It uses only Sale path to demonstrate BPM.
It is advised to *NOT* remove erp5_administration.
"""
import transaction
from Products.ERP5.tests.testBPMCore import TestBPMMixin
from Products.ERP5.tests.testBPMEvaluation import \
TestBPMEvaluationMixin, \
test_suite
if True:
def getBusinessTemplateList(self):
return TestBPMMixin.getBusinessTemplateList(self) + ('erp5_bpm',
'erp5_administration', 'erp5_simulation',)
TestBPMEvaluationMixin.getBusinessTemplateList = getBusinessTemplateList
def _createRootTradeRule(self, **kw):
edit_dict = {}
edit_dict.update(
trade_phase = 'default/delivery',
)
edit_dict.update(**kw)
rule = self.rule_tool.newContent(**edit_dict)
# matching providers
for category in ('resource', 'order'):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=False,
matching_provider=True)
rule.newContent(
portal_type='Variation Divergence Tester',
title='variation divergence tester',
tested_property='variation_property_dict',
divergence_provider=False,
matching_provider=True)
# divergence providers
for category in ('source_section',
'resource',
'destination_section',
'source',
'aggregate'):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
return rule
TestBPMEvaluationMixin._createRootTradeRule = _createRootTradeRule
def _createTradeModelRule(self):
rule = self.rule_tool.newContent(portal_type='Trade Model Rule',
reference='default_trade_model_rule',
test_method_id = ('SimulationMovement_testTradeModelRule',)
)
# matching providers
for category in ('resource',):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=False,
matching_provider=True)
rule.newContent(
portal_type='Variation Divergence Tester',
title='variation divergence tester',
tested_property='variation_property_dict',
divergence_provider=False,
matching_provider=True)
# divergence providers
for category in ('resource',
'source_section',
'destination_section',
'source',
'source_function',
'destination_function',
'source_project',
'destination_project',
'aggregate',
'price_currency',
'base_contribution',
'base_application',
'source_account',
'destination_account',
):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.validate()
transaction.commit()
TestBPMEvaluationMixin._createTradeModelRule = _createTradeModelRule
def _createInvoicingRule(self):
edit_dict = {}
edit_dict.update(
)
rule = self.rule_tool.newContent(portal_type='Invoicing Rule',
reference='default_invoicing_rule',
trade_phase = 'default/invoicing',
test_method_id = ('SimulationMovement_testInvoicingRule',)
)
# matching providers
for category in ('resource',):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=False,
matching_provider=True)
rule.newContent(
portal_type='Variation Divergence Tester',
title='variation divergence tester',
tested_property='variation_property_dict',
divergence_provider=False,
matching_provider=True)
# divergence providers
for category in ('resource',
'source_section',
'destination_section',
'source',
'source_function',
'destination_function',
'source_project',
'destination_project',
'aggregate',
'price_currency',
'base_contribution',
'base_application',
'source_account',
'destination_account',
):
rule.newContent(
portal_type='Category Membership Divergence Tester',
title='%s divergence tester' % category,
tested_property=category,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Net Converted Quantity Divergence Tester',
title='quantity divergence tester',
tested_property='quantity',
quantity=0,
divergence_provider=True,
matching_provider=False)
for property_id in ('start_date', 'stop_date'):
rule.newContent(
portal_type='DateTime Divergence Tester',
title='%s divergence tester' % property_id,
tested_property=property_id,
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.newContent(
portal_type='Float Divergence Tester',
title='price divergence tester',
tested_property='price',
quantity=0,
divergence_provider=True,
matching_provider=False)
rule.validate()
transaction.commit()
TestBPMEvaluationMixin._createInvoicingRule = _createInvoicingRule
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