[Erp5-report] r35100 yusei - /erp5/trunk/products/ERP5/tests/testTradeModelLine.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri May 7 11:13:24 CEST 2010


Author: yusei
Date: Fri May  7 11:13:23 2010
New Revision: 35100

URL: http://svn.erp5.org?rev=35100&view=rev
Log:
Add a very basic test and make sure that if a movement does not have
any base contribution values, it is not applied to any trade model
lines.

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

Modified: erp5/trunk/products/ERP5/tests/testTradeModelLine.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testTradeModelLine.py?rev=35100&r1=35099&r2=35100&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testTradeModelLine.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testTradeModelLine.py [utf8] Fri May  7 11:13:23 2010
@@ -2740,6 +2740,46 @@
     self.assertEqual(2, len(amount_list))
     self.assertEqual(508.51000000000005, getTotalAmount(amount_list))
 
+  def test_tradeModelLineWithEmptyBaseContributionMovement(self):
+    """
+    Make sure that a movement which does not have any base_contribution values
+    does not match to any trade model lines.
+    """
+    trade_condition = self.createTradeCondition()
+
+    # create a model line
+    tax = self.createTradeModelLine(trade_condition,
+                                    reference='TAX',
+                                    base_application_list=['base_amount/tax'],
+                                    base_contribution_list=['base_amount/total_tax'])
+    tax.edit(price=0.05)
+
+    # create an order
+    resource_A = self.createResource('Product', title='A')
+    order = self.createOrder()
+    order.setSpecialiseValue(trade_condition)
+    # create a movement which should be aggregated
+    order_line_1 = order.newContent(portal_type=self.order_line_portal_type,
+                                    price=100, quantity=1,
+                                    resource_value=resource_A,
+                                    base_contribution_list=['base_amount/tax'])
+    # create a movement which base contribution is empty.
+    order_line_2 = order.newContent(portal_type=self.order_line_portal_type,
+                                    price=50, quantity=1,
+                                    resource_value=resource_A,
+                                    base_contribution_list=[])
+
+    transaction.commit()
+    self.tic()
+
+    # check the result
+    amount_list = trade_condition.getAggregatedAmountList(order)
+    self.assertEqual(1, len(amount_list))
+    self.assertEqual(set([order_line_1]),
+                     set(amount_list[0].getCausalityValueList()))
+    self.assertEqual(100*0.05, amount_list[0].getTotalPrice())
+
+
 class TestTradeModelLineSale(TestTradeModelLine):
   invoice_portal_type = 'Sale Invoice Transaction'
   invoice_line_portal_type = 'Invoice Line'




More information about the Erp5-report mailing list