[Erp5-report] r22035 - /erp5/trunk/products/ERP5/tests/testProductionPackingList.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Jun 27 14:34:17 CEST 2008
Author: luke
Date: Fri Jun 27 14:34:15 2008
New Revision: 22035
URL: http://svn.erp5.org?rev=22035&view=rev
Log:
- proved, that it is possible to deliver all production packing lists and production reports based on sourcing production oreder (and that it is, what I wanted this test to be on initial revision)
Modified:
erp5/trunk/products/ERP5/tests/testProductionPackingList.py
Modified: erp5/trunk/products/ERP5/tests/testProductionPackingList.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testProductionPackingList.py?rev=22035&r1=22034&r2=22035&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testProductionPackingList.py (original)
+++ erp5/trunk/products/ERP5/tests/testProductionPackingList.py Fri Jun 27 14:34:15 2008
@@ -40,45 +40,6 @@
ERP5TypeTestCase):
"""Mixin for testing Production Packing Lists and Production Reports"""
- def stepCreatePackingList(self,sequence=None, sequence_list=None, **kw):
- """
- Create a empty packing_list
- """
- organisation = sequence.get('organisation')
-# person = sequence.get('person')
- portal = self.getPortal()
- packing_list_module = portal.getDefaultModule(portal_type=self.packing_list_portal_type)
- packing_list = packing_list_module.newContent(portal_type=self.packing_list_portal_type)
- packing_list.edit(
- title = "PackingList",
- start_date = self.datetime + 10,
- stop_date = self.datetime + 20,
- )
- if organisation is not None:
- packing_list.edit(source_value=organisation,
- source_section_value=organisation,
- destination_value=organisation,
- destination_section_value=organisation,
- source_decision_value=organisation,
- destination_decision_value=organisation,
- source_administration_value=organisation,
- destination_administration_value=organisation,
- )
- sequence.edit( packing_list = packing_list )
-
- def stepSetPackingListProfile(self,sequence=None, sequence_list=None, **kw):
- """
- Set different source and destination on the packing_list
- """
- organisation1 = sequence.get('organisation1')
- organisation2 = sequence.get('organisation2')
- packing_list = sequence.get('packing_list')
- packing_list.edit( source_value = organisation1,
- source_section_value = organisation1,
- destination_value = organisation2,
- destination_section_value = organisation2 )
- self.failUnless('Site Error' not in packing_list.view())
-
def modifyPackingListState(self, transition_name,
sequence,packing_list=None):
""" calls the workflow for the packing list """
@@ -86,134 +47,388 @@
packing_list = sequence.get('packing_list')
packing_list.portal_workflow.doActionFor(packing_list, transition_name)
- def stepConfirmPackingList(self, sequence=None, sequence_list=None, **kw):
- self.modifyPackingListState('confirm_action', sequence=sequence)
- packing_list = sequence.get('packing_list')
- self.assertEquals(packing_list.getSimulationState(), 'confirmed')
-
- def stepSetReadyPackingList(self, sequence=None, sequence_list=None, **kw):
- self.modifyPackingListState('set_ready_action', sequence=sequence)
- packing_list = sequence.get('packing_list')
+ def stepSetReadyProducedDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+ self.modifyPackingListState('set_ready_action', sequence=sequence, packing_list=packing_list)
self.assertEquals(packing_list.getSimulationState(), 'ready')
- def stepStartPackingList(self, sequence=None, sequence_list=None, **kw):
- self.modifyPackingListState('start_action', sequence=sequence)
- packing_list = sequence.get('packing_list')
+ def stepStartProducedDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+ self.modifyPackingListState('start_action', sequence=sequence, packing_list=packing_list)
self.assertEquals(packing_list.getSimulationState(), 'started')
- def stepStopPackingList(self, sequence=None, sequence_list=None, **kw):
- self.modifyPackingListState('stop_action', sequence=sequence)
- packing_list = sequence.get('packing_list')
+ def stepStopProducedDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+ self.modifyPackingListState('stop_action', sequence=sequence, packing_list=packing_list)
self.assertEquals(packing_list.getSimulationState(), 'stopped')
- def stepDeliverPackingList(self, sequence=None, sequence_list=None, **kw):
- self.modifyPackingListState('deliver_action', sequence=sequence)
- packing_list = sequence.get('packing_list')
+ def stepDeliverProducedDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+ self.modifyPackingListState('deliver_action', sequence=sequence, packing_list=packing_list)
self.assertEquals(packing_list.getSimulationState(), 'delivered')
- def stepCreatePackingListLine(self,sequence=None, sequence_list=None, **kw):
+ def stepSetReadySupplyDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+ self.modifyPackingListState('set_ready_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'ready')
+
+ def stepStartSupplyDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+ self.modifyPackingListState('start_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'started')
+
+ def stepStopSupplyDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+ self.modifyPackingListState('stop_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'stopped')
+
+ def stepDeliverSupplyDeliveryPackingList(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+ self.modifyPackingListState('deliver_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'delivered')
+
+ def stepSetReadyProducedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+ self.modifyPackingListState('set_ready_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'ready')
+
+ def stepStartProducedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+ self.modifyPackingListState('start_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'started')
+
+ def stepStopProducedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+ self.modifyPackingListState('stop_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'stopped')
+
+ def stepDeliverProducedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+ self.modifyPackingListState('deliver_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'delivered')
+
+ def stepSetReadyConsumedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+ self.modifyPackingListState('set_ready_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'ready')
+
+ def stepStartConsumedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+ self.modifyPackingListState('start_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'started')
+
+ def stepStopConsumedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+ self.modifyPackingListState('stop_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'stopped')
+
+ def stepDeliverConsumedReport(self, sequence=None, sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+ self.modifyPackingListState('deliver_action', sequence=sequence, packing_list=packing_list)
+ self.assertEquals(packing_list.getSimulationState(), 'delivered')
+
+ def stepCheckSourcingDeliverySimulation(self, sequence=None, \
+ sequence_list=None, **kw):
"""
- Create a empty packing_list line
+ Hardcoded delivery checks
"""
- packing_list = sequence.get('packing_list')
- packing_list_line = packing_list.newContent(portal_type=self.packing_list_line_portal_type)
- packing_list_line.edit(
- title = "PackingList Line"
- )
- sequence.edit(packing_list_line=packing_list_line)
-
- def stepSetPackingListLineResource(self, sequence=None, sequence_list=None, **kw):
+ self.stepCheckSourcingSimulation(sequence,sequence_list,**kw)
+
+ produced_movement = sequence.get('produced_movement')
+ operation_movement = sequence.get('operation_movement')
+ component_movement = sequence.get('component_movement')
+ supply_movement = sequence.get('supply_movement')
+ produced_delivery_movement = sequence.get('produced_delivery_movement')
+
+ produced_delivery_packing_list = produced_delivery_movement.getDeliveryValue().getParentValue()
+ supply_delivery_packing_list = supply_movement.getDeliveryValue().getParentValue()
+
+ produced_report = produced_movement.getDeliveryValue().getParentValue()
+
+ operation_report = operation_movement.getDeliveryValue().getParentValue()
+ component_report = component_movement.getDeliveryValue().getParentValue()
+ self.assertEquals(operation_report, component_report)
+ consumed_report = operation_report
+
+ # checks that simulations are same
+ # TODO: resources, quantities, dates, ...
+ self.assertEquals(
+ produced_delivery_movement.getSimulationState(),
+ produced_delivery_packing_list.getSimulationState()
+ )
+
+ self.assertEquals(
+ supply_movement.getSimulationState(),
+ supply_delivery_packing_list.getSimulationState()
+ )
+
+ self.assertEquals(
+ produced_movement.getSimulationState(),
+ produced_report.getSimulationState()
+ )
+
+ self.assertEquals(
+ component_movement.getSimulationState(),
+ consumed_report.getSimulationState()
+ )
+
+ self.assertEquals(
+ operation_movement.getSimulationState(),
+ consumed_report.getSimulationState()
+ )
+
+ sequence.edit(
+ produced_delivery_packing_list = produced_delivery_packing_list,
+ supply_delivery_packing_list = supply_delivery_packing_list,
+ produced_report = produced_report,
+ consumed_report = consumed_report,
+ )
+
+ def stepCheckProducedDeliveryPackingListConfirmed(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+
+ self.assertEquals(
+ 'confirmed',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckProducedDeliveryPackingListDelivered(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+
+ self.assertEquals(
+ 'delivered',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckSupplyDeliveryPackingListDelivered(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+
+ self.assertEquals(
+ 'delivered',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckProducedReportDelivered(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+
+ self.assertEquals(
+ 'delivered',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckConsumedReportDelivered(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+
+ self.assertEquals(
+ 'delivered',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckProducedDeliveryPackingListSolved(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_delivery_packing_list')
+
+ self.assertEquals(
+ 'solved',
+ packing_list.getCausalityState()
+ )
+
+ def stepCheckSupplyDeliveryPackingListConfirmed(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+
+ self.assertEquals(
+ 'confirmed',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckSupplyDeliveryPackingListSolved(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('supply_delivery_packing_list')
+
+ self.assertEquals(
+ 'solved',
+ packing_list.getCausalityState()
+ )
+
+ def stepCheckProducedReportConfirmed(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+
+ self.assertEquals(
+ 'confirmed',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckProducedReportSolved(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('produced_report')
+
+ self.assertEquals(
+ 'solved',
+ packing_list.getCausalityState()
+ )
+
+ def stepCheckConsumedReportConfirmed(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+
+ self.assertEquals(
+ 'confirmed',
+ packing_list.getSimulationState()
+ )
+
+ def stepCheckConsumedReportSolved(self, sequence=None, \
+ sequence_list=None, **kw):
+ packing_list = sequence.get('consumed_report')
+
+ self.assertEquals(
+ 'solved',
+ packing_list.getCausalityState()
+ )
+
+class TestProductionDelivery(TestProductionPackingReportListMixin):
+ """Test Production Packing Lists and Reports, mostly based on Production Orders"""
+
+ run_all_test = 1
+
+ def test_01_sourcingDelivery(self, quiet=0,
+ run=run_all_test):
"""
- Set packing_list line resource with the current resource
- """
- packing_list_line = sequence.get('packing_list_line')
- resource = sequence.get('resource')
- packing_list_line.setResourceValue(resource)
-
- def stepSetPackingListLineDefaultValues(self, sequence=None, \
- sequence_list=None, **kw):
- """
- Set the default price and quantity on the packing_list line.
- """
- packing_list_line = sequence.get('packing_list_line')
- packing_list_line.edit(quantity=self.default_quantity,
- price=self.default_price)
-
- def stepCheckPackingListSimulation(self, sequence=None, \
- sequence_list=None, **kw):
- packing_list = sequence.get('packing_list')
-
- applied_rule = packing_list.getCausalityRelatedValueList(portal_type=\
- self.applied_rule_portal_type)
- self.logMessage("TODO")
-
-class TestProductionPackingListReport(TestProductionPackingReportListMixin):
- pass
-
-class TestProductionPackingList(TestProductionPackingReportListMixin):
- """Test Production Packing Lists"""
- run_all_test = 1
-
- packing_list_portal_type = 'Production Packing List'
- packing_list_line_portal_type = 'Production Packing List Line'
- packing_list_cell_portal_type = 'Production Packing List Cell'
-
- def getTitle(self):
- return "Production Packing List"
-
- def test_01_checkForProductionPackingListWorkflow(self, quiet=0, run=run_all_test):
- """
- Test that production packing list workflow works, and updates simulations
+ Test for sourcing type of delivery (Production Report and Production Packing Lists).
"""
if not run: return
sequence_list = SequenceList()
- # Test when order is
- sequence_string = '\
- stepCreateOrganisation1 \
- stepCreateOrganisation2 \
- stepClearActivities \
- stepCreatePackingList \
- stepSetPackingListProfile \
- stepCreateNotVariatedResource \
- stepTic \
- stepCreatePackingListLine \
- stepSetPackingListLineResource \
- stepSetPackingListLineDefaultValues \
- stepTic \
- \
- stepConfirmPackingList \
- stepTic \
- \
- stepSetReadyPackingList \
- stepTic \
- \
- stepStartPackingList \
- stepTic \
- \
- stepStopPackingList \
- stepTic \
- \
- stepDeliverPackingList \
- stepTic \
-'
-
+ # Check states of deliveries, just after order confirmation
+ sequence_string = self.SOURCING_ORDER_SEQUENCE + '\
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListConfirmed \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListConfirmed \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportConfirmed \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportConfirmed \
+ CheckConsumedReportSolved\
+ \
+ '
sequence_list.addSequenceString(sequence_string)
+
+ # Test when packing list are delivered one by one
+ # Note: I (Luke) know, that below sequence is long
+ # but I wanted to be sure, that full production
+ # process is doable.
+ sequence_string = self.SOURCING_ORDER_SEQUENCE + '\
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListConfirmed \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListConfirmed \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportConfirmed \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportConfirmed \
+ CheckConsumedReportSolved\
+ \
+ SetReadyProducedDeliveryPackingList \
+ StartProducedDeliveryPackingList \
+ StopProducedDeliveryPackingList \
+ DeliverProducedDeliveryPackingList \
+ Tic \
+ \
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListDelivered \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListConfirmed \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportConfirmed \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportConfirmed \
+ CheckConsumedReportSolved\
+ \
+ SetReadySupplyDeliveryPackingList \
+ StartSupplyDeliveryPackingList \
+ StopSupplyDeliveryPackingList \
+ DeliverSupplyDeliveryPackingList \
+ Tic \
+ \
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListDelivered \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListDelivered \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportConfirmed \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportConfirmed \
+ CheckConsumedReportSolved\
+ \
+ SetReadyProducedReport \
+ StartProducedReport \
+ StopProducedReport \
+ DeliverProducedReport \
+ Tic \
+ \
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListDelivered \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListDelivered \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportDelivered \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportConfirmed \
+ CheckConsumedReportSolved\
+ \
+ SetReadyConsumedReport \
+ StartConsumedReport \
+ StopConsumedReport \
+ DeliverConsumedReport \
+ Tic \
+ \
+ CheckSourcingDeliverySimulation \
+ \
+ CheckProducedDeliveryPackingListDelivered \
+ CheckProducedDeliveryPackingListSolved\
+ \
+ CheckSupplyDeliveryPackingListDelivered \
+ CheckSupplyDeliveryPackingListSolved\
+ \
+ CheckProducedReportDelivered \
+ CheckProducedReportSolved\
+ \
+ CheckConsumedReportDelivered \
+ CheckConsumedReportSolved\
+ \
+ '
+ sequence_list.addSequenceString(sequence_string)
+
+ # TODO: check case of solving divergence on every delivery
sequence_list.play(self)
-
-class TestProductionReport(TestProductionPackingList):
- """Test Production Reports"""
- run_all_test = 1
-
- def getTitle(self):
- return "Production Report"
-
- packing_list_portal_type = 'Production Report'
- packing_list_line_portal_type = 'Production Report Line'
- packing_list_cell_portal_type = 'Production Report Cell'
def test_suite():
suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(TestProductionPackingListReport))
- #suite.addTest(unittest.makeSuite(TestProductionPackingList))
- #suite.addTest(unittest.makeSuite(TestProductionReport))
+ suite.addTest(unittest.makeSuite(TestProductionDelivery))
return suite
More information about the Erp5-report
mailing list