Commit cb99c5a2 authored by Julien Muchembled's avatar Julien Muchembled

testTradeCondition: stop testing obsolete tax & discount

See testTradeModelLine for new use of taxes/discounts.
parent 9a5a1ab5
...@@ -35,26 +35,17 @@ from Products.ZSQLCatalog.SQLCatalog import Catalog ...@@ -35,26 +35,17 @@ from Products.ZSQLCatalog.SQLCatalog import Catalog
from Products.ERP5Type.tests.utils import SubcontentReindexingWrapper from Products.ERP5Type.tests.utils import SubcontentReindexingWrapper
class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper): class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper):
"""Tests for Trade Conditions and Tax
"""
def getBusinessTemplateList(self): def getBusinessTemplateList(self):
return ('erp5_base', 'erp5_pdm', 'erp5_trade', 'erp5_accounting', return ('erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade',
'erp5_invoicing', 'erp5_tax_resource', 'erp5_discount_resource', 'erp5_accounting', 'erp5_invoicing', 'erp5_simplified_invoicing')
'erp5_legacy_tax_system', 'erp5_simplified_invoicing',)
size_category_list = ['small', 'big'] size_category_list = ['small', 'big']
def afterSetUp(self): def afterSetUp(self):
self.validateRules()
for category_id in self.size_category_list: for category_id in self.size_category_list:
self.portal.portal_categories.size.newContent(id=category_id, self.portal.portal_categories.size.newContent(id=category_id,
title=category_id) title=category_id)
self.base_amount = self.portal.portal_categories.base_amount self.base_amount = self.portal.portal_categories.base_amount
self.tax = self.portal.tax_module.newContent(
portal_type='Tax',
title='Tax')
self.discount = self.portal.discount_module.newContent(
portal_type='Discount',
title='Discount')
self.client = self.portal.organisation_module.newContent( self.client = self.portal.organisation_module.newContent(
portal_type='Organisation', portal_type='Organisation',
title='Client') title='Client')
...@@ -81,13 +72,9 @@ class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper): ...@@ -81,13 +72,9 @@ class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper):
def beforeTearDown(self): def beforeTearDown(self):
self.abort() self.abort()
for module in (self.portal.tax_module, for module in (self.portal.organisation_module,
self.portal.organisation_module,
self.portal.currency_module, self.portal.currency_module,
self.portal.product_module, self.portal.product_module,
self.portal.accounting_module,
self.portal.account_module,
self.portal.portal_simulation,
self.trade_condition_module, self.trade_condition_module,
self.order_module, self.order_module,
self.portal.portal_categories.base_amount, self.portal.portal_categories.base_amount,
...@@ -102,97 +89,6 @@ class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper): ...@@ -102,97 +89,6 @@ class TradeConditionTestCase(ERP5TypeTestCase, SubcontentReindexingWrapper):
supply_line = trade_condition.newContent(portal_type=self.supply_line_type) supply_line = trade_condition.newContent(portal_type=self.supply_line_type)
self._testSubContentReindexing(trade_condition, [supply_line]) self._testSubContentReindexing(trade_condition, [supply_line])
class AccountingBuildTestCase(TradeConditionTestCase):
"""Same as TradeConditionTestCase, but with a rule to generate
accounting.
"""
def afterSetUp(self):
TradeConditionTestCase.afterSetUp(self)
self.receivable_account = self.portal.account_module.newContent(
id='receivable',
title='Receivable',
account_type='asset/receivable')
self.payable_account = self.portal.account_module.newContent(
id='payable',
title='Payable',
account_type='liability/payable')
self.income_account = self.portal.account_module.newContent(
id='income',
title='Income',
account_type='income')
self.expense_account = self.portal.account_module.newContent(
id='expense',
title='Expense',
account_type='expense')
self.collected_tax_account = self.portal.account_module.newContent(
id='collected_tax',
title='Collected Tax',
account_type='liability/payable/collected_vat')
self.refundable_tax_account = self.portal.account_module.newContent(
id='refundable_tax',
title='Refundable Tax',
account_type='asset/receivable/refundable_vat')
for account in self.portal.account_module.contentValues():
self.assertNotEquals(account.getAccountTypeValue(), None)
account.validate()
itr = self.portal.portal_rules.newContent(
portal_type='Invoice Transaction Simulation Rule',
reference='default_invoice_transaction_rule',
id='test_invoice_transaction_rule',
title='Transaction Rule',
test_method_id='SimulationMovement_testInvoiceTransactionSimulationRule',
version=100)
predicate = itr.newContent(portal_type='Predicate',)
predicate.edit(
string_index='resource_type',
title='Resource Product',
int_index=1,
test_method_id='SimulationMovement_isDeliveryMovement' )
predicate = itr.newContent(portal_type='Predicate')
predicate.edit(
string_index='resource_type',
title='Resource Tax',
int_index=2,
test_method_id='SimulationMovement_isTaxMovement' )
self.tic()
accounting_rule_cell_list = itr.contentValues(
portal_type='Accounting Rule Cell')
self.assertEquals(2, len(accounting_rule_cell_list))
product_rule_cell = itr._getOb("movement_0")
self.assertEquals(product_rule_cell.getTitle(), 'Resource Product')
product_rule_cell.newContent(
portal_type='Accounting Transaction Line',
source_value=self.receivable_account,
destination_value=self.payable_account,
quantity=-1)
product_rule_cell.newContent(
portal_type='Accounting Transaction Line',
source_value=self.income_account,
destination_value=self.expense_account,
quantity=1)
tax_rule_cell = itr._getOb("movement_1")
self.assertEquals(tax_rule_cell.getTitle(), 'Resource 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)
itr.validate()
self.tic()
def beforeTearDown(self):
TradeConditionTestCase.beforeTearDown(self)
self.portal.portal_rules.manage_delObjects('test_invoice_transaction_rule')
self.tic()
class TestApplyTradeCondition(TradeConditionTestCase): class TestApplyTradeCondition(TradeConditionTestCase):
"""Tests Applying Trade Conditions """Tests Applying Trade Conditions
""" """
...@@ -342,113 +238,6 @@ class TestApplyTradeCondition(TradeConditionTestCase): ...@@ -342,113 +238,6 @@ class TestApplyTradeCondition(TradeConditionTestCase):
self.order.getPaymentConditionPaymentDate()) self.order.getPaymentConditionPaymentDate())
def test_tax_model_line_consistency(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
tax_model_line = self.trade_condition.newContent(
portal_type='Tax Model Line',
base_application_value=base_1,
float_index=1,
efficiency=0.2,
resource_value=self.tax)
self.assertEquals([], tax_model_line.checkConsistency())
self.assertEquals([], self.trade_condition.checkConsistency())
def test_discount_model_line_consistency(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
discount_model_line = self.trade_condition.newContent(
portal_type='Discount Model Line',
base_application_value=base_1,
float_index=1,
efficiency=0.2,
resource_value=self.discount)
self.assertEquals([], discount_model_line.checkConsistency())
self.assertEquals([], self.trade_condition.checkConsistency())
def test_view_tax_model_line(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
tax_model_line = self.trade_condition.newContent(
portal_type='Tax Model Line',
base_application_value=base_1,
float_index=1,
efficiency=0.2,
resource_value=self.tax)
# TODO: fail if a field has an error
tax_model_line.view()
self.trade_condition.TradeCondition_viewTax()
def test_view_discount_model_line(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
discount_model_line = self.trade_condition.newContent(
portal_type='Discount Model Line',
base_application_value=base_1,
float_index=1,
efficiency=0.2,
resource_value=self.discount)
# TODO: fail if a field has an error
discount_model_line.view()
self.trade_condition.TradeCondition_viewDiscount()
def test_tax_line_consistency(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
tax_line = self.order.newContent(
portal_type='Tax Line',
resource_value=self.tax,
base_application_value=base_1,
quantity=0,
efficiency=5.5)
self.assertEquals([], tax_line.checkConsistency())
def test_view_tax_line(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
tax_line = self.order.newContent(
portal_type='Tax Line',
resource_value=self.tax,
base_application_value=base_1,
quantity=0,
efficiency=5.5)
# TODO: fail if a field has an error
tax_line.view()
self.order.Delivery_viewTax()
def test_discount_line_consistency(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
discount_line = self.order.newContent(
portal_type='Discount Line',
resource_value=self.discount,
base_application_value=base_1,
quantity=0,
efficiency=5.5)
self.assertEquals([], discount_line.checkConsistency())
def test_view_discount_line(self):
base_1 = self.base_amount.newContent(
portal_type='Category',
title='Base 1')
discount_line = self.order.newContent(
portal_type='Discount Line',
resource_value=self.discount,
base_application_value=base_1,
quantity=0,
efficiency=5.5)
# TODO: fail if a field has an error
discount_line.view()
self.order.Delivery_viewDiscount()
class TestTradeConditionSupplyLine(TradeConditionTestCase): class TestTradeConditionSupplyLine(TradeConditionTestCase):
"""A trade condition can contain supply line and those supply lines are used """A trade condition can contain supply line and those supply lines are used
in priority, for example to calculate the price in priority, for example to calculate the price
...@@ -622,7 +411,6 @@ class TestEffectiveTradeCondition(TradeConditionTestCase): ...@@ -622,7 +411,6 @@ class TestEffectiveTradeCondition(TradeConditionTestCase):
start_date=DateTime('2009/06/01'), start_date=DateTime('2009/06/01'),
stop_date=DateTime('2009/06/01'))) stop_date=DateTime('2009/06/01')))
def test_getEffectiveModel_return_self_when_no_reference(self): def test_getEffectiveModel_return_self_when_no_reference(self):
# when no reference defined, getEffectiveModel returns the trade condition. # when no reference defined, getEffectiveModel returns the trade condition.
self.trade_condition.setReference(None) self.trade_condition.setReference(None)
...@@ -707,4 +495,3 @@ def test_suite(): ...@@ -707,4 +495,3 @@ def test_suite():
suite.addTest(unittest.makeSuite(TestEffectiveSaleTradeCondition)) suite.addTest(unittest.makeSuite(TestEffectiveSaleTradeCondition))
suite.addTest(unittest.makeSuite(TestEffectivePurchaseTradeCondition)) suite.addTest(unittest.makeSuite(TestEffectivePurchaseTradeCondition))
return suite return suite
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