diff --git a/product/ERP5/tests/testERP5Simulation.py b/product/ERP5/tests/testERP5Simulation.py index 8d6668c67a4e069e7625b2bd609a139f76cfc02e..cdc46d5ac91df12b2caa3532e339cca202a47882 100644 --- a/product/ERP5/tests/testERP5Simulation.py +++ b/product/ERP5/tests/testERP5Simulation.py @@ -105,32 +105,45 @@ class TestERP5SimulationMixin(TestPackingListMixin): new_order_rule.validate() class TestERP5Simulation(TestERP5SimulationMixin, TestPackingList): - def stepAcceptDecisionQuantity(self,sequence=None, sequence_list=None, **kw): - """ - Solve quantity divergence by using solver tool. - """ - packing_list = sequence.get('packing_list') - quantity_divergence = [x for x in packing_list.getDivergenceList() \ - if x.getProperty('tested_property') == 'quantity'][0] + def _addSolverProcess(self, divergence, solver_portal_type): solver_tool = self.portal.portal_solvers # create a solver process solver_process = solver_tool.newContent(portal_type='Solver Process') # create a target solver solver = solver_process.newContent( - portal_type='Accept Solver', - delivery=quantity_divergence.getProperty('object_relative_url') + portal_type=solver_portal_type, + delivery=divergence.getProperty('object_relative_url') ) # create a solver decision solver_decision = solver_process.newContent( portal_type='Solver Decision', - causality=quantity_divergence.getProperty('tester_relative_url'), - delivery=quantity_divergence.getProperty('object_relative_url'), + causality=divergence.getProperty('tester_relative_url'), + delivery=divergence.getProperty('object_relative_url'), solver_value=solver, ) - # Solver Decision should be indexed to find the related Solver - # Decision document from a Target Solver document. - transaction.commit() - self.tic() + return solver_process + + def stepAcceptDecisionQuantity(self,sequence=None, sequence_list=None, **kw): + """ + Solve quantity divergence by using solver tool. + """ + packing_list = sequence.get('packing_list') + quantity_divergence = [x for x in packing_list.getDivergenceList() \ + if x.getProperty('tested_property') == 'quantity'][0] + solver_process = self._addSolverProcess(quantity_divergence, + 'Quantity Accept Solver') + # then call solve() on solver process + solver_process.solve() + + def stepAcceptDecisionResource(self,sequence=None, sequence_list=None, **kw): + """ + Solve quantity divergence by using solver tool. + """ + packing_list = sequence.get('packing_list') + resource_divergence = [x for x in packing_list.getDivergenceList() \ + if x.getProperty('tested_property') == 'resource'][0] + solver_process = self._addSolverProcess(resource_divergence, + 'Resource Accept Solver') # then call solve() on solver process solver_process.solve()