[Erp5-report] r31986 kazuhiko - /erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Jan 26 15:38:03 CET 2010
Author: kazuhiko
Date: Tue Jan 26 15:38:02 2010
New Revision: 31986
URL: http://svn.erp5.org?rev=31986&view=rev
Log:
add the new simulation API version of testBPMCore.py.
Added:
erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py
Added: erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py?rev=31986&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py (added)
+++ erp5/trunk/products/ERP5/tests/testERP5SimulationBPMCore.py [utf8] Tue Jan 26 15:38:02 2010
@@ -1,0 +1,168 @@
+# -*- 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.
+#
+##############################################################################
+import transaction
+
+from Products.ERP5.tests.testBPMCore import TestBPMMixin, test_suite
+
+if True:
+ def getBusinessTemplateList(self):
+ return ('erp5_base', 'erp5_pdm', 'erp5_trade', 'erp5_accounting',
+ 'erp5_invoicing', 'erp5_simplified_invoicing', 'erp5_simulation')
+
+ TestBPMMixin.getBusinessTemplateList = getBusinessTemplateList
+
+ def createInvoiceTransactionRule(self):
+ self.receivable_account = self.createAndValidateAccount('receivable',
+ 'asset/receivable')
+ self.payable_account = self.createAndValidateAccount('payable',
+ 'liability/payable')
+ self.income_account = self.createAndValidateAccount('income', 'income')
+ self.expense_account = self.createAndValidateAccount('expense', 'expense')
+ self.collected_tax_account = self.createAndValidateAccount(
+ 'collected_tax', 'liability/payable/collected_vat')
+ self.refundable_tax_account = self.createAndValidateAccount(
+ 'refundable_tax',
+ 'asset/receivable/refundable_vat')
+
+ itr = self.portal.portal_rules.newContent(
+ portal_type='Invoice Transaction Rule',
+ reference='default_invoice_transaction_rule',
+ id='test_invoice_transaction_rule',
+ title='Transaction Rule',
+ test_method_id=
+ 'SimulationMovement_testInvoiceTransactionRule',
+ version=100)
+ # matching provider for source and destination
+ for category in ('resource', 'source', 'destination',
+ 'destination_total_asset_price',
+ 'source_total_asset_price'):
+ itr.newContent(
+ portal_type='Category Membership Divergence Tester',
+ title='%s divergence tester' % category,
+ tested_property=category,
+ divergence_provider=False,
+ matching_provider=True)
+ # non-matching/non-divergence provider quantity divergence tester
+ # (i.e. only used for expand)
+ itr.newContent(
+ portal_type='Net Converted Quantity Divergence Tester',
+ title='quantity divergence tester',
+ tested_property='quantity',
+ quantity=0,
+ divergence_provider=False,
+ matching_provider=False)
+ # divergence provider for date
+ for property_id in ('start_date', 'stop_date'):
+ itr.newContent(
+ portal_type='DateTime Divergence Tester',
+ title='%s divergence tester' % property_id,
+ tested_property=property_id,
+ quantity=0,
+ divergence_provider=True,
+ matching_provider=False)
+ for category in ('source_administration', 'source_decision', 'source_function', 'source_payment', 'source_project', 'source_section', 'destination_administration', 'destination_decision', 'destination_function', 'destination_payment', 'destination_project', 'destination_section'):
+ itr.newContent(
+ portal_type='Category Membership Divergence Tester',
+ title='%s divergence tester' % category,
+ tested_property=category,
+ divergence_provider=True,
+ matching_provider=False)
+ itr.newContent(
+ portal_type='Float Divergence Tester',
+ title='price divergence tester',
+ tested_property='price',
+ quantity=0,
+ divergence_provider=True,
+ matching_provider=False)
+ predicate = itr.newContent(portal_type='Predicate',)
+ predicate.edit(
+ string_index='use',
+ title='tax',
+ int_index=1,
+ membership_criterion_base_category='resource_use',
+ membership_criterion_category='resource_use/use/tax')
+ predicate = itr.newContent(portal_type='Predicate',)
+ predicate.edit(
+ string_index='use',
+ title='discount',
+ int_index=2,
+ membership_criterion_base_category='resource_use',
+ membership_criterion_category='resource_use/use/discount')
+ predicate = itr.newContent(portal_type='Predicate',)
+ predicate.edit(
+ string_index='use',
+ title='normal',
+ int_index=3,
+ membership_criterion_base_category='resource_use',
+ membership_criterion_category='resource_use/use/normal')
+ transaction.commit()
+ self.tic()
+ accounting_rule_cell_list = itr.contentValues(
+ portal_type='Accounting Rule Cell')
+ self.assertEquals(3, len(accounting_rule_cell_list))
+ tax_rule_cell = itr._getOb("movement_0")
+ self.assertEquals(tax_rule_cell.getTitle(), 'tax')
+ tax_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.receivable_account,
+ destination_value=self.payable_account,
+ quantity=-1)
+ tax_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.collected_tax_account,
+ destination_value=self.refundable_tax_account,
+ quantity=1)
+
+ discount_rule_cell = itr._getOb("movement_1")
+ self.assertEquals(discount_rule_cell.getTitle(), 'discount')
+ discount_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.receivable_account,
+ destination_value=self.payable_account,
+ quantity=-1)
+ discount_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.income_account,
+ destination_value=self.expense_account,
+ quantity=1)
+
+ normal_rule_cell = itr._getOb("movement_2")
+ self.assertEquals(normal_rule_cell.getTitle(), 'normal')
+ normal_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.receivable_account,
+ destination_value=self.payable_account,
+ quantity=-1)
+ normal_rule_cell.newContent(
+ portal_type='Accounting Transaction Line',
+ source_value=self.income_account,
+ destination_value=self.expense_account,
+ quantity=1)
+
+ itr.validate()
+
+ TestBPMMixin.createInvoiceTransactionRule = createInvoiceTransactionRule
More information about the Erp5-report
mailing list