[Erp5-report] r7299 - /erp5/trunk/products/ERP5/tests/testInvoice.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue May 16 19:00:30 CEST 2006
Author: alex
Date: Tue May 16 19:00:21 2006
New Revision: 7299
URL: http://svn.erp5.org?rev=7299&view=rev
Log:
- copied step methods from testPackingList
- added one simple test case (decrease invoiced quantity, use split and differ
solver)
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=7299&r1=7298&r2=7299&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInvoice.py (original)
+++ erp5/trunk/products/ERP5/tests/testInvoice.py Tue May 16 19:00:21 2006
@@ -73,6 +73,11 @@
vat_rate = 0.196
sale_gap = 'fr/pcg/7/70/707/7071/70712'
customer_gap = 'fr/pcg/4/41/411'
+
+ invoice_portal_type = 'Sale Invoice Transaction'
+ invoice_line_portal_type = 'Invoice Line'
+ invoice_cell_portal_type = 'Invoice Cell'
+ invoice_transaction_line_portal_type = 'Sale Invoice Transaction Line'
def getTitle(self):
return "Invoices"
@@ -651,6 +656,96 @@
self.assertEquals(len(delivery_mvt.getOrderRelatedValueList(
portal_type=self.simulation_movement_portal_type)), 0)
+ def stepDecreaseInvoiceLineQuantity(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Set a decreased quantity on invoice lines
+ """
+ invoice = sequence.get('invoice')
+ quantity = sequence.get('line_quantity',default=self.default_quantity)
+ quantity = quantity -1
+ sequence.edit(line_quantity=quantity)
+ for invoice_line in invoice.objectValues(
+ portal_type=self.invoice_line_portal_type):
+ invoice_line.edit(quantity=quantity)
+
+ def stepCheckInvoiceIsCalculating(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Test if invoice is calculating
+ """
+ invoice = sequence.get('invoice')
+ self.assertEquals('calculating',invoice.getCausalityState())
+
+ def stepCheckInvoiceIsDiverged(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Test if invoice is diverged
+ """
+ invoice = sequence.get('invoice')
+ self.assertEquals('diverged',invoice.getCausalityState())
+
+ def stepCheckInvoiceIsSolved(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Test if invoice is solved
+ """
+ invoice = sequence.get('invoice')
+ self.assertEquals('solved',invoice.getCausalityState())
+
+ def stepCheckInvoiceIsDivergent(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Test if invoice is divergent
+ """
+ invoice = sequence.get('invoice')
+ self.assertTrue(invoice.isDivergent())
+
+ def stepCheckInvoiceIsNotDivergent(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ Test if invoice is not divergent
+ """
+ invoice = sequence.get('invoice')
+ self.assertFalse(invoice.isDivergent())
+
+ def stepSplitAndDifferInvoice(self, sequence=None, sequence_list=None,
+ **kw):
+ """
+ split and differ at the invoice level
+ """
+ invoice = sequence.get('invoice')
+ invoice.portal_workflow.doActionFor(invoice,'split_prevision_action',
+ wf_id='invoice_causality_workflow', start_date=self.datetime +
+ 15, stop_date=self.datetime + 25)
+
+ def stepCheckInvoiceSplitted(self, sequence=None, sequence_list=None, **kw):
+ """
+ Test if invoice was splitted
+ """
+ packing_list = sequence.get('packing_list')
+ invoice_list = packing_list.getCausalityRelatedValueList(
+ portal_type=self.invoice_portal_type)
+ self.assertEquals(2,len(invoice_list))
+ invoice1 = None
+ invoice2 = None
+ for invoice in invoice_list:
+ if invoice.getUid() == sequence.get('invoice').getUid():
+ invoice1 = invoice
+ else:
+ invoice2 = invoice
+ sequence.edit(new_invoice=invoice2)
+ for line in invoice1.objectValues(
+ portal_type=self.invoice_line_portal_type):
+ self.assertEquals(self.default_quantity-1,line.getQuantity())
+ for line in invoice2.objectValues(
+ portal_type=self.invoice_line_portal_type):
+ self.assertEquals(1,line.getQuantity())
+
+
+
+
+
# default sequence for one line of not varianted resource.
PACKING_LIST_DEFAULT_SEQUENCE = """
stepCreateSaleInvoiceTransactionRule
@@ -753,7 +848,7 @@
def test_01_SimpleInvoice(self, quiet=0, run=RUN_ALL_TESTS):
"""Checks that a Simple Invoice is created from a Packing List"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.PACKING_LIST_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -777,7 +872,7 @@
and an invoice with no accounting rules. both invoices are wrong
"""
if not run: return
- for base_sequence in (TestInvoice.TWO_PACKING_LIST_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.TWO_PACKING_LIST_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -806,7 +901,7 @@
movements for this invoice are present twice in the simulation.
"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.PACKING_LIST_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -825,7 +920,7 @@
from Order.
"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.PACKING_LIST_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -837,7 +932,7 @@
"""Checks that editing a Packing List Line still creates a correct
Invoice"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.PACKING_LIST_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -856,7 +951,7 @@
"""Checks that deleting a Packing List Line still creates a correct
Invoice"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_TWO_LINES_DEFAULT_SEQUENCE, ) :
+ for base_sequence in (self.PACKING_LIST_TWO_LINES_DEFAULT_SEQUENCE, ) :
self.playSequence(
base_sequence +
"""
@@ -874,9 +969,8 @@
"""Checks that adding a Packing List Line still creates a correct
Invoice"""
if not run: return
- for base_sequence in (TestInvoice.PACKING_LIST_DEFAULT_SEQUENCE,
- TestInvoice.PACKING_LIST_TWO_LINES_DEFAULT_SEQUENCE) :
- # XXX use another sequence that creates 2 lines
+ for base_sequence in (self.PACKING_LIST_DEFAULT_SEQUENCE,
+ self.PACKING_LIST_TWO_LINES_DEFAULT_SEQUENCE) :
self.playSequence(
base_sequence +
"""
@@ -891,6 +985,34 @@
stepCheckInvoiceBuilding
stepRebuildAndCheckNothingIsCreated
""")
+
+ #def test_08_InvoiceDecreaseQuantity(self, quiet=0, run=RUN_ALL_TESTS):
+ def test_08_InvoiceDecreaseQuantity(self, quiet=0, run=1):
+ """Change the quantity of a Invoice Line,
+ check that the packing list is divergent,
+ then split and differ"""
+ if not run: return
+ sequence = self.PACKING_LIST_DEFAULT_SEQUENCE + \
+ """
+ stepSetReadyPackingList
+ stepTic
+ stepStartPackingList
+ stepCheckInvoicingRule
+ stepTic
+ stepCheckInvoiceBuilding
+
+ stepDecreaseInvoiceLineQuantity
+ stepCheckInvoiceIsCalculating
+ stepSplitAndDifferInvoice
+ stepTic
+ stepCheckInvoiceIsSolved
+ stepCheckInvoiceSplitted
+ stepCheckPackingListIsDivergent
+ stepCheckPackingListIsDiverged
+
+ stepRebuildAndCheckNothingIsCreated
+ """
+ self.playSequence(sequence)
if __name__ == '__main__':
framework()
More information about the Erp5-report
mailing list