[Erp5-report] r20550 - /erp5/trunk/products/ERP5/tests/testTradeCondition.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 15 19:35:07 CEST 2008


Author: jerome
Date: Tue Apr 15 19:35:06 2008
New Revision: 20550

URL: http://svn.erp5.org?rev=20550&view=rev
Log:
tests that applying trade condition twice does not copy objects twice

Modified:
    erp5/trunk/products/ERP5/tests/testTradeCondition.py

Modified: erp5/trunk/products/ERP5/tests/testTradeCondition.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testTradeCondition.py?rev=20550&r1=20549&r2=20550&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testTradeCondition.py (original)
+++ erp5/trunk/products/ERP5/tests/testTradeCondition.py Tue Apr 15 19:35:06 2008
@@ -261,6 +261,21 @@
     self.assertEquals(DateTime(2001, 01, 01),
                       self.order.getPaymentConditionPaymentDate())
 
+  def test_apply_twice_trade_condition_copy_subobjects(self):
+    self.trade_condition.setPaymentConditionTradeDate('custom')
+    self.trade_condition.setPaymentConditionPaymentDate(DateTime(2001, 01, 01))
+    self.order.setSpecialiseValue(self.trade_condition)
+
+    self.order.Order_applyTradeCondition(self.trade_condition, force=1)
+    self.assertEquals(1, len(self.order.contentValues(
+                                portal_type='Payment Condition')))
+    self.assertEquals('custom', self.order.getPaymentConditionTradeDate())
+    self.assertEquals(DateTime(2001, 01, 01),
+                      self.order.getPaymentConditionPaymentDate())
+    self.order.Order_applyTradeCondition(self.trade_condition, force=1)
+    self.assertEquals(1, len(self.order.contentValues(
+                                portal_type='Payment Condition')))
+
   def test_apply_trade_condition_copy_subobjects_with_hierarchy(self):
     other_trade_condition = self.trade_condition_module.newContent(
                             portal_type=self.trade_condition.getPortalType(),
@@ -335,6 +350,35 @@
 class TestTaxLineCalculation(TradeConditionTestCase):
   """Test calculating Tax Lines.
   """
+  def test_apply_trade_condition_twice_and_tax_lines(self):
+    base_1 = self.base_amount.newContent(
+                          portal_type='Category',
+                          title='Base 1')
+    self.resource.setBaseContributionValue(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.order.Order_applyTradeCondition(self.trade_condition, force=1)
+
+    # this creates a tax line, with quantity 0, and it will be updated when
+    # needed
+    tax_line_list = self.order.contentValues(portal_type='Tax Line')
+    self.assertEquals(1, len(tax_line_list))
+    tax_line = tax_line_list[0]
+    self.assertEquals(0, tax_line.getQuantity())
+    self.assertEquals(self.tax, tax_line.getResourceValue())
+    self.assertEquals(0.2, tax_line.getPrice())
+    
+    # if we apply twice, we don't have the tax lines twice
+    self.order.Order_applyTradeCondition(self.trade_condition, force=1)
+    tax_line_list = self.order.contentValues(portal_type='Tax Line')
+    self.assertEquals(1, len(tax_line_list))
+
+
   def test_simple_tax_model_line_calculation(self):
     base_1 = self.base_amount.newContent(
                           portal_type='Category',




More information about the Erp5-report mailing list