diff --git a/product/Coramy/tests/coramy_order.zexp b/product/Coramy/tests/coramy_order.zexp index a98c20c7aef8e8e4639bf421eeb53b492947008e..c02cd8f46aa5b505d2e5c0bcafe0a7a81984d15d 100755 Binary files a/product/Coramy/tests/coramy_order.zexp and b/product/Coramy/tests/coramy_order.zexp differ diff --git a/product/Coramy/tests/testOrder.py b/product/Coramy/tests/testOrder.py index fd286f74ffecfe8972c05c9bdf4f6ab2b4180ab5..b4b6e9590dcb05b3fc2944f6d9d4bceeda0bab8d 100755 --- a/product/Coramy/tests/testOrder.py +++ b/product/Coramy/tests/testOrder.py @@ -59,6 +59,8 @@ class TestOrder(ERP5TypeTestCase): source_company_id = 'Nexedi' sale_manager_id = 'seb' destination_company_stock = 'site/Stock_MP/Gravelines' + production_destination_site = 'site/Stock_PF/Gravelines' + production_source_site = 'site/Piquage' destination_company_group = 'group/Coramy' first_name1 = 'Sebastien' last_name1 = 'Robin' @@ -128,6 +130,12 @@ class TestOrder(ERP5TypeTestCase): def getSalesPackingListModule(self): return getattr(self.getPortal(), 'livraison_vente', None) + def getProductionPackingListModule(self): + return getattr(self.getPortal(), 'livraison_fabrication', None) + + def getProductionOrderModule(self): + return getattr(self.getPortal(), 'ordre_fabrication', None) + def getSalesOrderModule(self): return getattr(self.getPortal(), 'commande_vente', None) @@ -191,16 +199,6 @@ class TestOrder(ERP5TypeTestCase): kw = {'first_name':self.first_name1,'last_name':self.last_name1} p1.edit(**kw) modele_module = self.getModeleModule() - # Define a modele - modele = modele_module.newContent(id=self.modele_id1) - modele.setTailleList(self.taille_list1) - # Add variation to the modele - variante_modele_1 = modele.newContent(id=self.variante_id1,portal_type='Variante Modele') - variante_modele_2 = modele.newContent(id=self.variante_id2,portal_type='Variante Modele') - # Create a Transformation - transformation_module = self.getTransformationModule() - transformation = transformation_module.newContent(id=self.modele_id1,portal_type='Transformation') - transformation.setResourceValue(modele) def login(self, quiet=0, run=run_all_test): uf = self.getPortal().acl_users @@ -228,7 +226,11 @@ class TestOrder(ERP5TypeTestCase): order.setTargetStopDate(target_stop_date) # Set Profile portal_categories = self.getCategoryTool() - stock_category = portal_categories.resolveCategory(self.destination_company_stock) + if order_type == 'Production Order': + stock_category = portal_categories.resolveCategory(self.production_destination_site) + source_company = portal_categories.resolveCategory(self.production_source_site) + else: + stock_category = portal_categories.resolveCategory(self.destination_company_stock) group_category = portal_categories.resolveCategory(self.destination_company_group) order.setSourceValue(source_company) order.setSourceSectionValue(source_company) @@ -290,6 +292,8 @@ class TestOrder(ERP5TypeTestCase): transformation = transformation_module.newContent(portal_type='Transformation') transformation.setResourceValue(modele) transformation.setVariationBaseCategoryList(self.variation_base_category_list1) + transformation.setVariationBaseCategoryLine('coloris') + transformation.setVariationBaseCategoryColumn('taille') variation_category_list = ('coloris/modele/%s/%s' % (modele.getId(),self.variante_id1), 'coloris/modele/%s/%s' % (modele.getId(),self.variante_id2), 'taille/adulte/40','taille/adulte/42') @@ -311,7 +315,17 @@ class TestOrder(ERP5TypeTestCase): sequence.edit(tissu=tissu) transformation_component = transformation.newContent(portal_type='Transformation Component') transformation_component.setResourceValue(tissu) - + transformation_component.setElementComposition(True) # This is one element of the transformation + transformation_component.setVVariationBaseCategoryList(['coloris','coloris']) + transformation_component.setQVariationBaseCategoryList(['taille','taille']) + LOG('constructVariatedResource transformation_component.asXML()',0,transformation_component.asXML()) + LOG('constructVariatedResource transformation_component.showDict()',0,transformation_component.showDict()) + # Create cell for the transformation component + args = (None,'taille/adulte/42') + kw = {'base_id':'quantity'} + transformation_component.newCell(*args,**kw) + cell_list = transformation_component.objectValues() + #self.assertEquals(len(cell_list),4) def stepAddSalesOrder(self, sequence=None, sequence_list=None,**kw): self.constructEmptySalesOrder(sequence=sequence,sequence_list=sequence_list,**kw) @@ -382,6 +396,28 @@ class TestOrder(ERP5TypeTestCase): result=sales_order.Order_lightControl() self.assertEquals(result,'') + def stepAddProductionOrder(self, sequence=None, sequence_list=None,**kw): + self.constructEmptyProductionOrder(sequence=sequence,sequence_list=sequence_list,**kw) + production_order = sequence.get('production_order') + order_line = production_order.newContent(id='1',portal_type='Production Order Line') + self.constructVariatedResource(sequence=sequence,sequence_list=sequence_list,**kw) + sequence.edit(variated_order=1) + resource = sequence.get('resource') + order_line.setResourceValue(resource) + order_line.setVariationBaseCategoryList(self.variation_base_category_list1) + variation_category_list = sequence.get('variation_category_list') + order_line.setVariationCategoryList(variation_category_list) + self.assertEquals(tuple(order_line.getVariationBaseCategoryList()),self.variation_base_category_list1) + self.assertEquals(tuple(order_line.getVariationCategoryList()),variation_category_list) + cell_list = order_line.objectValues() + self.assertEquals(len(cell_list),4) + for cell in cell_list: + cell.setTargetQuantity(self.quantity) + # See what's the output of Order_lightControl + result=production_order.Order_lightControl() + self.assertEquals(result,'') + LOG('stepAddProductionOrder, production_order.asXML()',0,production_order.asXML()) + def stepConfirmSalesOrder(self, sequence=None,sequence_list=None): sales_order = sequence.get('sales_order') #sales_order.confirm() @@ -452,6 +488,24 @@ class TestOrder(ERP5TypeTestCase): sales_order.portal_workflow.doActionFor(sales_order,'user_plan', wf_id='order_workflow') + def stepConfirmProductionOrder(self, sequence=None, sequence_list=None, **kw): + portal = self.getPortal() + production_order = sequence.get('production_order') + production_order.portal_workflow.doActionFor(production_order,'usof_confirm', + wf_id='order_workflow') + + def stepOrderProductionOrder(self, sequence=None, sequence_list=None, **kw): + portal = self.getPortal() + production_order = sequence.get('production_order') + production_order.portal_workflow.doActionFor(production_order,'usof_order', + wf_id='order_workflow') + + def stepPlanProductionOrder(self, sequence=None, sequence_list=None, **kw): + portal = self.getPortal() + production_order = sequence.get('production_order') + production_order.portal_workflow.doActionFor(production_order,'usof_plan', + wf_id='order_workflow') + def stepCheckConfirmSalesOrder(self, sequence=None, sequence_list=None, **kw): sales_order = sequence.get('sales_order') sales_order_line = sales_order._getOb('1') @@ -497,12 +551,12 @@ class TestOrder(ERP5TypeTestCase): self.failIfDifferentSet(cell.getDomainBaseCategoryList(),self.variation_base_category_list1) # Check membership criterion membership_criterion_category_list_list = map(lambda x: tuple(x.getMembershipCriterionCategoryList()),cell_list) - LOG('stepCheckActivateRequirementList, color_and_size_list',0,color_and_size_list) - LOG('stepCheckActivateRequirementList, membership_criterion_category_list_list',0,membership_criterion_category_list_list) + LOG('stepCheckConfirmSalesOrder, color_and_size_list',0,color_and_size_list) + LOG('stepCheckConfirmSalesOrder, membership_criterion_category_list_list',0,membership_criterion_category_list_list) self.failIfDifferentSet(color_and_size_list,membership_criterion_category_list_list) predicate_value_list_list = map(lambda x: tuple(x.getPredicateValueList()),cell_list) - LOG('stepCheckActivateRequirementList, color_and_size_list',0,color_and_size_list) - LOG('stepCheckActivateRequirementList, predicate_value_list_list',0,predicate_value_list_list) + LOG('stepCheckConfirmSalesOrder, color_and_size_list',0,color_and_size_list) + LOG('stepCheckConfirmSalesOrder, predicate_value_list_list',0,predicate_value_list_list) self.failIfDifferentSet(color_and_size_list,predicate_value_list_list) def stepCheckPackingListDiverged(self, sequence=None, sequence_list=None, **kw): @@ -675,12 +729,12 @@ class TestOrder(ERP5TypeTestCase): # created, then we rename the color of the variated resource, everything should take # into account the new name # ... FAILS - sequence_string = 'AddVariatedSalesOrder PlanSalesOrder OrderSalesOrder' \ - + ' ConfirmSalesOrder Tic Tic Tic Tic CheckConfirmSalesOrder' \ - + ' Tic Tic CheckActivateRequirementList' \ - + ' Tic Tic ModifyVariationId Tic Tic CheckConfirmSalesOrder' \ - + ' Tic Tic CheckActivateRequirementList' - sequence_list.addSequenceString(sequence_string) + #sequence_string = 'AddVariatedSalesOrder PlanSalesOrder OrderSalesOrder' \ + # + ' ConfirmSalesOrder Tic Tic Tic Tic CheckConfirmSalesOrder' \ + # + ' Tic Tic CheckActivateRequirementList' \ + # + ' Tic Tic ModifyVariationId Tic Tic CheckConfirmSalesOrder' \ + # + ' Tic Tic CheckActivateRequirementList' + #sequence_list.addSequenceString(sequence_string) # Sequence where we create an order, then the color is renamed, then we confirm # and we look if everyhing is going fine on the simulation and that the @@ -709,14 +763,9 @@ class TestOrder(ERP5TypeTestCase): # we have many packing list, we change the destination of one of the packing_list, # we must be sure that this change is taken into account into the simulation # ... ??? - #sequence_string = 'AddVariatedSalesOrder PlanSalesOrder OrderSalesOrder' \ - # + ' ConfirmSalesOrder Tic Tic Tic Tic CheckConfirmSalesOrder' \ - # + ' CheckActivateRequirementList Tic Tic Tic' \ - # + ' UserGetReadyPackingList Tic Tic UserSetReadyPackingList Tic Tic' \ - # + ' UserStartPackingList Tic Tic Tic Tic' \ - # + ' AcceptDeliveryPackingList Tic Tic SplitAndDeferPackingList Tic Tic Tic' \ - # + ' CheckSplittedAndDefferedPackingList' - #sequence_list.addSequenceString(sequence_string) + sequence_string = 'AddProductionOrder Tic PlanProductionOrder Tic OrderProductionOrder Tic Tic' \ + + ' ConfirmProductionOrder Tic Tic Tic' + sequence_list.addSequenceString(sequence_string) # Now add a non defined sequence