[Erp5-report] r36549 tatuya - /erp5/trunk/products/ERP5/tests/testItem.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jun 23 17:39:00 CEST 2010
Author: tatuya
Date: Wed Jun 23 17:38:56 2010
New Revision: 36549
URL: http://svn.erp5.org?rev=36549&view=rev
Log:
Add more tests to make erp5_item reliable in a simulation point of view.
Modified:
erp5/trunk/products/ERP5/tests/testItem.py
Modified: erp5/trunk/products/ERP5/tests/testItem.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testItem.py?rev=36549&r1=36548&r2=36549&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testItem.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testItem.py [utf8] Wed Jun 23 17:38:56 2010
@@ -158,6 +158,20 @@ class TestItemMixin(TestSaleInvoiceMixin
item_list = sequence.get('item_list')
order_line.setAggregateValueList(item_list)
+ def stepOrderSetAggregationList(self, sequence=None,
+ sequence_list=None, **kw):
+ """ Aggregate Items """
+ order = sequence.get('order')
+ item_module = self.getPortal().item_module
+ item_list = item_module.contentValues()
+ # this step expect that number of order lines
+ # and number of item list is same.
+ order_line_list = order.contentValues(portal_type=self.order_line_portal_type)
+ self.assertEqual(len(order_line_list), len(item_list))
+ for order_line, item in zip(order_line_list, item_list):
+ order_line.setAggregateValueList([item])
+
+
def stepCheckOrderLineAggregate(self, sequence=None,
sequence_list=None, **kw):
""" Check items """
@@ -178,6 +192,13 @@ class TestItemMixin(TestSaleInvoiceMixin
packing_list_line = sequence.get('packing_list_line')
self.checkAggregate(line=packing_list_line, sequence=sequence)
+ def stepCheckPackingListLineAggregateList(self, sequence=None,
+ sequence_list=None, **kw):
+ """ Check items """
+ packing_list_line = sequence.get('packing_list_line')
+ self.checkAggregateList(line=packing_list_line, sequence=sequence)
+
+
def stepCheckInvoiceLineAggregate(self, sequence=None,
sequence_list=None, **kw):
""" Check items """
@@ -186,20 +207,126 @@ class TestItemMixin(TestSaleInvoiceMixin
portal_type=self.invoice_line_portal_type)
self.checkAggregate(line=invoice_line_list[0], sequence=sequence)
+ def stepCheckToRender_Delivery_viewAggregatedItemList(self, sequence=None,
+ sequence_list=None, **kw):
+ """Check to render the view"""
+ packing_list = sequence.get('packing_list')
+ packing_list.Delivery_viewAggregatedItemList()
+
+ def stepCheckPackingListStartDateAfterStartDateAdopt(self,sequence=None, sequence_list=None, **kw):
+ """
+ Check that start date is adopted.
+ """
+ packing_list = sequence.get('packing_list')
+ self.assertEquals(packing_list.getStartDate(),self.datetime+15)
+
+
+ def stepModifyOrderLinesQuantity(self,sequence=None, sequence_list=None, **kw):
+ """
+ modify order line quantities
+ """
+ order = sequence.get('order')
+ order_line_list = order.contentValues(portal_type=self.order_line_portal_type)
+ for order_line in order_line_list:
+ order_line.edit(quantity=self.default_quantity-1)
+
+ def stepModifyOneOrderLineStartDate(self,sequence=None, sequence_list=None, **kw):
+ """
+ modify order line start date
+ """
+ order = sequence.get('order')
+ resource_list = sequence.get('resource_list')
+ order_line_list = order.contentValues(portal_type=self.order_line_portal_type)
+ self.assertEquals(len(order_line_list),len(resource_list))
+ order_line_list[-1].edit(start_date=self.datetime+15)
+
+
+ def stepModifyOrderLinesDate(self,sequence=None, sequence_list=None, **kw):
+ """
+ modify order line date
+ """
+ order = sequence.get('order')
+ for order_line in order.contentValues(portal_type=self.order_line_portal_type):
+ order_line.edit(start_date=self.datetime+15)
+
def checkAggregate(self, line=None, sequence=None):
""" Check items """
item_list = sequence.get('item_list')
self.assertEquals(len(line.getAggregateList()),1)
self.failUnless(item_list[0] in line.getAggregateValueList())
-
+
+ def checkAggregateList(self, line=None, sequence=None):
+ """ Check items """
+ item_list = self.portal.item_module.contentValues(portal_type='Item')
+ self.failUnless(line.getAggregateValueList()[0] in item_list)
+
+
+ DEFAULT_ITEM_WITH_ORDER_SEQUENCE = \
+ 'stepCreateEntities \
+ stepCreateCurrency \
+ stepCreateItemList \
+ stepCreateOrder \
+ stepSetOrderProfile \
+ stepSetOrderPriceCurrency \
+ stepCreateNotVariatedResource \
+ stepTic \
+ stepCreateOrderLine \
+ stepSetOrderLineResource \
+ stepSetOrderLineDefaultValues \
+ stepOrderLineSetAggregationList \
+ '
+ DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE = DEFAULT_ITEM_WITH_ORDER_SEQUENCE + '\
+ stepOrderOrder \
+ stepTic \
+ stepConfirmOrder \
+ stepTic \
+ stepCheckOrderRule \
+ stepCheckOrderLineAggregate \
+ stepCheckOrderSimulation \
+ stepCheckSimulationAggregate \
+ stepCheckDeliveryBuilding \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListLineAggregate \
+ stepCheckToRender_Delivery_viewAggregatedItemList \
+ '
+ DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE_AND_SAME_RESOURCE_LINES = DEFAULT_ITEM_WITH_ORDER_SEQUENCE + '\
+ stepCreateItemList \
+ stepCreateOrderLine \
+ stepSetOrderLineResource \
+ stepSetOrderLineDefaultValues \
+ stepOrderSetAggregationList \
+ stepOrderOrder \
+ stepTic \
+ stepConfirmOrder \
+ stepTic \
+ stepCheckOrderSimulation \
+ stepCheckDeliveryBuilding \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckOrderPackingList \
+ stepCheckPackingListLineAggregateList \
+ '
class TestItem(TestItemMixin, ERP5TypeTestCase):
quiet = 0
+ run_all_test= 1
def getTitle(self):
return "Item"
+ def beforeTearDown(self):
+ transaction.abort()
+ for module in (self.portal.organisation_module,
+ self.portal.item_module,
+ self.portal.sale_packing_list_module,
+ self.portal.purchase_packing_list_module,
+ self.portal.product_module,
+ self.portal.portal_simulation,):
+ module.manage_delObjects(list(module.objectIds()))
+ transaction.commit()
+ self.tic()
+
+
def test_01_ItemSimpleTest(self, quiet=quiet):
sequence_list = SequenceList()
@@ -535,6 +662,207 @@ class TestItem(TestItemMixin, ERP5TypeTe
self.tic()
self.assertEquals(packing_list.getCausalityState(),'solved')
+ def test_07_WithPackingListChangePackingListQuantityAndAccept(self, quiet=quiet, run=run_all_test):
+ """
+ Create order and add items, then Change the quantity
+ on an delivery line, after that see if the packing list is
+ divergent and then split and defer the packing list
+ """
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepDecreasePackingListLineQuantity \
+ stepCheckPackingListIsCalculating \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepSplitAndDeferPackingList \
+ stepTic \
+ stepCheckPackingListIsSolved \
+ stepCheckPackingListSplitted \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_08_ChangePackingListDateAndAccept(self, quiet=quiet, run=run_all_test):
+ """
+ Create order and add items, then Change the date
+ on an delivery line, after that see if the packing list is
+ divergent and then accept decision on the packing list
+ """
+ sequence_list = SequenceList()
+
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepChangePackingListStartDate \
+ stepCheckPackingListIsCalculating \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepUnifyStartDateWithDecision \
+ stepTic \
+ stepCheckPackingListIsSolved \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckSimulationStartDateUpdated \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_09_ChangeOrderDateAndAcceptOnPackingList(self, quiet=quiet, run=run_all_test):
+ """
+ Create order and add items, then Change the order date
+ on an order line, after that see if the packing list is
+ divergent and then adopt prevision on the packing list
+ """
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepModifyOneOrderLineStartDate \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepCheckPackingListIsDivergent \
+ stepUnifyStartDateWithPrevision \
+ stepTic \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListIsSolved \
+ stepCheckNewPackingListAfterStartDateAdopt \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_10_ChangeOrderQuantityAndAdoptOnPackingList(self, quiet=quiet, run=run_all_test):
+ """
+ Create order and add items, then Change the quantity
+ on an order line, after that see if the packing list is
+ divergent and then adopt prevision on the packing list
+ """
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepModifyOrderLinesQuantity \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepAdoptPrevisionQuantity \
+ stepTic \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListIsSolved \
+ stepCheckPackingListLineWithNewQuantityPrevision \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_11_ChangeOrderQuantityAndAcceptOnPackingList(self, quiet=quiet, run=run_all_test):
+ """
+ Create order and add items, then Change the quantity
+ on an order line, after that see if the packing list is
+ divergent and then accept decision on the packing list
+ """
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepModifyOrderLinesQuantity \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepAcceptDecisionQuantity \
+ stepTic \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListIsSolved \
+ stepCheckSimulationQuantityUpdated \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_12_CreteSameResourceDifferentItemOrderLines(self, quiet=quiet, run=run_all_test):
+ """
+ Create order lines with same resouces and add items into them, then Change the quantity
+ on the order lines, after that see if the packing list is
+ divergent and then adopt prevision on the packing list
+ """
+ sequence_list = SequenceList()
+ sequence_string = ''
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE_AND_SAME_RESOURCE_LINES + '\
+ stepModifyOrderLinesQuantity \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepAdoptPrevisionQuantity \
+ stepTic \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListIsSolved \
+ stepCheckPackingListLineWithNewQuantityPrevision \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_13_CreateSameResourceDiffrentItemOrderLinesThenChangeTheOrderLinesDate(
+ self, quiet=quiet, run=run_all_test):
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE_AND_SAME_RESOURCE_LINES + '\
+ stepModifyOrderLinesDate \
+ stepTic \
+ stepCheckPackingListIsDiverged \
+ stepUnifyStartDateWithPrevision \
+ stepTic \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListIsSolved \
+ stepCheckPackingListStartDateAfterStartDateAdopt \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_14_ManuallyAddPackingListWithItem(self, quiet=quiet, run=run_all_test):
+ """
+ Checks that adding invoice lines and accounting lines to one invoice
+ generates correct simulation
+ """
+ if not quiet:
+ self.logMessage('Invoice with Manually Added Movements')
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_PACKING_LIST_SEQUENCE + '\
+ stepSetReadyPackingList \
+ stepTic \
+ stepStartPackingList \
+ stepCheckInvoicingRule \
+ stepTic \
+ stepCheckInvoiceBuilding \
+ stepRebuildAndCheckNothingIsCreated \
+ stepCheckInvoicesConsistency \
+ stepAddInvoiceLines \
+ stepTic \
+ stepStartInvoice \
+ stepTic \
+ stepCheckSimulationTrees \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ def test_15_ThreeOrderLines(self, quiet=quiet, run=run_all_test):
+ """
+ Check that item with three order lines.
+ """
+ sequence_list = SequenceList()
+ sequence_string = self.DEFAULT_ITEM_WITH_ORDER_SEQUENCE + '\
+ stepCreateItemList \
+ stepCreateOrderLine \
+ stepSetOrderLineResource \
+ stepSetOrderLineDefaultValues \
+ stepCreateItemList \
+ stepCreateOrderLine \
+ stepSetOrderLineResource \
+ stepSetOrderLineDefaultValues \
+ stepOrderSetAggregationList \
+ stepTic \
+ stepOrderOrder \
+ stepTic \
+ stepConfirmOrder \
+ stepTic \
+ stepCheckOrderSimulation \
+ stepCheckDeliveryBuilding \
+ stepCheckPackingListIsNotDivergent \
+ stepCheckPackingListLineAggregateList \
+ stepCheckOrderPackingList '
+
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
+ # Note that: Item with Inventory API tests exsist in
+ # testInventoryModule(tested getInventory) and testInventoryAPI(tested getTrackingList).
+ #
+ # def test_WithInventoryAPI(self):
+ # pass
+
def test_select_item_dialog_no_variation(self):
organisation = self.createOrganisation(title='Organisation III')
resource = self.createNotVariatedResource()
More information about the Erp5-report
mailing list