[Erp5-report] r26839 - /erp5/trunk/products/ERP5/tests/testBPMCore.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 6 14:58:23 CEST 2009


Author: luke
Date: Wed May  6 14:58:19 2009
New Revision: 26839

URL: http://svn.erp5.org?rev=26839&view=rev
Log:
 - update test to current implementation - without delivering of trade model rule related simulation movements
 - there is no need to affect default invoice builders from test
 - as there are no invoice lines for trade model rule related movements use getAggregatedAmountList to obtain values for testing
 - as there are no invoice lines for trade model rule related movements do not check them
 - update test name to its implementation

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

Modified: erp5/trunk/products/ERP5/tests/testBPMCore.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBPMCore.py?rev=26839&r1=26838&r2=26839&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBPMCore.py [utf8] Wed May  6 14:58:19 2009
@@ -326,20 +326,6 @@
     self.setSystemPreference()
     self.createInvoiceTransationRule()
 
-    # XXX for testing purpose only...
-    # This builder is not supporting yet deeper simulation tree
-    # New one shall be done (decision making with
-    # DeliveryCausalityAssignmentMovementGroup), but right now it is enough
-    # to support invoice building that way
-    sale_invoice_builder, purchase_invoice_builder = self.portal. \
-        portal_deliveries.sale_invoice_builder, \
-        self.portal.portal_deliveries.purchase_invoice_builder
-    delete_id = 'causality_movement_group_on_delivery'
-    if getattr(sale_invoice_builder, delete_id, None) is not None:
-      sale_invoice_builder.manage_delObjects(ids=[delete_id])
-    if getattr(purchase_invoice_builder, delete_id, None) is not None:
-      purchase_invoice_builder.manage_delObjects(ids=[delete_id])
-
   @reindex
   def beforeTearDown(self):
     self.portal.portal_rules.manage_delObjects(
@@ -475,8 +461,11 @@
     invoice = sequence.get('invoice')
     currency = sequence.get('price_currency')
     currency_precision = currency.getQuantityPrecision()
-    invoice_line_tax = sequence.get('invoice_line_tax')
-    invoice_line_discount = sequence.get('invoice_line_discount')
+    aggregated_amount_list_list = [
+      (q.getResourceValue().getUse(), q)
+      for q in invoice.getSpecialiseValue().getAggregatedAmountList(invoice)]
+    invoice_line_tax = [q[1] for q in aggregated_amount_list_list if q[0] == 'tax'][0]
+    invoice_line_discount = [q[1] for q in aggregated_amount_list_list if q[0] == 'discount'][0]
 
     movement_list = invoice.getMovementList(
         portal_type=invoice.getPortalAccountingMovementTypeList())
@@ -493,15 +482,17 @@
     rounded_total_price = round(invoice.getTotalPrice(), currency_precision)
     rounded_tax_price = round(invoice_line_tax.getTotalPrice(),
         currency_precision)
+    rounded_discount_price = round(invoice_line_discount.getTotalPrice(),
+        currency_precision)
 
     self.assertEqual(abs(payable_receivable_line.getTotalPrice()),
-        rounded_total_price)
+        rounded_total_price + rounded_tax_price + rounded_discount_price)
 
     self.assertEqual(abs(vat_line.getTotalPrice()),
         rounded_tax_price)
 
     self.assertEquals(abs(income_expense_line.getTotalPrice()),
-        rounded_total_price - rounded_tax_price)
+        rounded_total_price + rounded_discount_price)
 
   def stepSetTradeConditionOld(self, sequence=None, **kw):
     trade_condition = sequence.get('trade_condition')
@@ -539,54 +530,6 @@
 
     sequence.edit(
       trade_condition = trade_condition,
-    )
-
-  def stepCheckInvoiceTradeModelRelatedMovements(self, sequence=None, **kw):
-    # movement selection is done by hand, as no API is yet defined
-    invoice = sequence.get('invoice')
-    trade_condition = sequence.get('trade_condition')
-    trade_model_invoice_line_list = [q for q in invoice.getMovementList()
-        if q.getResourceValue().getUse() in ('discount','tax')]
-    self.assertEqual(2, len(trade_model_invoice_line_list))
-    invoice_line_tax = [q for q in trade_model_invoice_line_list if
-        q.getResourceValue().getUse() == 'tax' ][0]
-    invoice_line_discount = [q for q in trade_model_invoice_line_list if
-        q.getResourceValue().getUse() == 'discount' ][0]
-    sequence.edit(invoice_line_discount = invoice_line_discount)
-    sequence.edit(invoice_line_tax = invoice_line_tax)
-    amount_list = trade_condition.getAggregatedAmountList(invoice)
-    self.assertEquals(2, len(amount_list))
-    discount_amount_list = [q for q in amount_list
-        if q.getBaseApplication() == 'base_amount/discount']
-    tax_amount_list = [q for q in amount_list
-        if q.getBaseApplication() == 'base_amount/tax']
-
-    self.assertEquals(1, len(discount_amount_list))
-    self.assertEquals(1, len(tax_amount_list))
-
-    discount_amount = discount_amount_list[0]
-    tax_amount = tax_amount_list[0]
-
-    self.assertSameSet(discount_amount.getBaseApplicationList(),
-        invoice_line_discount.getBaseApplicationList())
-
-    self.assertSameSet(discount_amount.getBaseContributionList(),
-        invoice_line_discount.getBaseContributionList())
-
-    self.assertSameSet(tax_amount.getBaseApplicationList(),
-        invoice_line_tax.getBaseApplicationList())
-
-    self.assertSameSet(tax_amount.getBaseContributionList(),
-        invoice_line_tax.getBaseContributionList())
-
-    self.assertEqual(
-      invoice_line_discount.getTotalPrice(),
-      discount_amount.getTotalPrice()
-    )
-
-    self.assertEqual(
-      invoice_line_tax.getTotalPrice(),
-      tax_amount.getTotalPrice()
     )
 
   def stepAcceptDecisionInvoice(self, sequence=None, **kw):
@@ -1705,13 +1648,12 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
     """
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self)
 
-  def test_TradeModelRuleSimulationBuildInvoiceNewTradeConditionDivergencyAndSolving(self):
-    """Check that after changing trade condition invoice is properly diverged and it is possible to solve"""
+  def test_TradeModelRuleSimulationBuildInvoiceNewTradeCondition(self):
+    """Check that after changing trade condition invoice is not diverged"""
     sequence_list = SequenceList()
     sequence_string = self.TRADE_MODEL_RULE_SIMULATION_SEQUENCE_STRING
     sequence_string += """
@@ -1730,7 +1672,6 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
 
               SetTradeConditionOld
 
@@ -1744,19 +1685,7 @@
 
               SpecialiseInvoiceTradeCondition
               Tic
-              SetTradeConditionNew
-              GetOldTradeCondition
-              CheckInvoiceCausalityStateDiverged
-              CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
-
-              AdoptPrevisionQuantityInvoice
-              Tic
-
-              GetNewTradeCondition
               CheckInvoiceCausalityStateSolved
-              CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
     """
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self)
@@ -1785,11 +1714,6 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
-
-              GetInvoiceLineDiscounted
-              GetInvoiceLineDiscountedTaxed
-              GetInvoiceLineTaxed
 
               ModifyQuantityInvoiceLineDiscounted
               ModifyQuantityInvoiceLineDiscountedTaxed
@@ -1798,12 +1722,8 @@
               CheckInvoiceCausalityStateDiverged
               AcceptDecisionQuantityInvoice
               Tic
-              CheckInvoiceCausalityStateDiverged
-              AdoptPrevisionQuantityInvoice
-              Tic
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
     """
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self)
@@ -1828,13 +1748,14 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
 
               StartInvoice
               Tic
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
+              GetInvoiceLineDiscounted
+              GetInvoiceLineDiscountedTaxed
+              GetInvoiceLineTaxed
               CheckInvoiceAccountingMovements
               StopInvoice
               DeliverInvoice
@@ -1868,7 +1789,6 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
 
               SetNewPackingListAsPackingList
               PackPackingList
@@ -1882,7 +1802,6 @@
               GetInvoice
               CheckInvoiceCausalityStateSolved
               CheckInvoiceNormalMovements
-              CheckInvoiceTradeModelRelatedMovements
     """
 
   def test_TradeModelRuleSimulationPackingListSplitBuildInvoiceBuildDifferentRatio(self):




More information about the Erp5-report mailing list