[Erp5-report] r24975 - /erp5/trunk/products/ERP5/tests/testInvoice.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Dec 23 15:55:46 CET 2008


Author: jerome
Date: Tue Dec 23 15:55:46 2008
New Revision: 24975

URL: http://svn.erp5.org?rev=24975&view=rev
Log:
test for a bug in adopt prevision on invoice line quantity divergence

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

Modified: erp5/trunk/products/ERP5/tests/testInvoice.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testInvoice.py?rev=24975&r1=24974&r2=24975&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInvoice.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testInvoice.py [utf8] Tue Dec 23 15:55:46 2008
@@ -1173,6 +1173,73 @@
     self.assertEquals([], invoice.getDivergenceList())
     self.assertEquals(new_quantity, invoice_line.getQuantity())
     self.assertEquals(new_quantity,
+          invoice_line.getDeliveryRelatedValue(portal_type='Simulation Movement'
+              ).getQuantity())
+
+    self.assertEquals([], packing_list.getDivergenceList())
+    self.assertEquals('solved', packing_list.getCausalityState())
+ 
+  def test_adopt_quantity_divergence_on_invoice_line_with_stopped_packing_list(
+                self, quiet=quiet):
+    # #1053
+    sequence_list = SequenceList()
+    sequence = sequence_list.addSequenceString(self.PACKING_LIST_DEFAULT_SEQUENCE)
+    sequence_list.play(self, quiet=quiet)
+
+    packing_list = sequence.get('packing_list')
+    packing_list_line = packing_list.getMovementList()[0]
+    previous_quantity = packing_list_line.getQuantity()
+    previous_resource = packing_list_line.getResource()
+    previous_price = packing_list_line.getPrice()
+    
+    packing_list.setReady()
+    packing_list.start()
+    packing_list.stop()
+    self.assertEquals('stopped', packing_list.getSimulationState())
+    get_transaction().commit()
+    self.tic()
+
+    invoice = packing_list.getCausalityRelatedValue(
+                                  portal_type=self.invoice_portal_type)
+    self.assertNotEquals(invoice, None)
+    invoice_line_list = invoice.getMovementList()
+    self.assertEquals(1, len(invoice_line_list))
+    invoice_line = invoice_line_list[0]
+
+    new_quantity = invoice_line.getQuantity() * 2
+    invoice_line.setQuantity(new_quantity)
+    
+    get_transaction().commit()
+    self.tic()
+
+    self.assertTrue(invoice.isDivergent())
+    divergence_list = invoice.getDivergenceList()
+    self.assertEquals(1, len(divergence_list))
+
+    divergence = divergence_list[0]
+    self.assertEquals('quantity', divergence.tested_property)
+
+    # adopt prevision
+    builder_list = packing_list.getBuilderList()
+    self.assertEquals(1, len(builder_list))
+    builder = builder_list[0]
+    builder.solveDivergence(invoice.getRelativeUrl(),
+                            divergence_to_adopt_list=divergence_list)
+
+    get_transaction().commit()
+    self.tic()
+    self.assertEquals([], invoice.getDivergenceList())
+    self.assertEquals('solved', invoice.getCausalityState())
+
+    self.assertEquals(1,
+        len(invoice.getMovementList(portal_type=self.invoice_line_portal_type)))
+    self.assertEquals(0,
+        len(invoice.getMovementList(portal_type=self.invoice_transaction_line_portal_type)))
+
+    self.assertEquals(previous_resource, invoice_line.getResource())
+    self.assertEquals(previous_quantity, invoice_line.getQuantity())
+    self.assertEquals(previous_price, invoice_line.getPrice())
+    self.assertEquals(previous_quantity,
           invoice_line.getDeliveryRelatedValue(portal_type='Simulation Movement'
               ).getQuantity())
 




More information about the Erp5-report mailing list