From 275ed90f56f27450137b19fb66f0e536ca8c3879 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Tue, 24 Jul 2007 14:07:38 +0000 Subject: [PATCH] Factorise inventory calls. Add maculated stock node checks and generate "maculated banknotes" test cases. Remove & correct commants. Set causality on mutilated banknotes sent to headquaters. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@15296 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../tests/testERP5BankingMutilatedBanknote.py | 141 +++++++++++------- 1 file changed, 87 insertions(+), 54 deletions(-) diff --git a/product/ERP5Banking/tests/testERP5BankingMutilatedBanknote.py b/product/ERP5Banking/tests/testERP5BankingMutilatedBanknote.py index cd5eba87c5..200f5d6641 100755 --- a/product/ERP5Banking/tests/testERP5BankingMutilatedBanknote.py +++ b/product/ERP5Banking/tests/testERP5BankingMutilatedBanknote.py @@ -70,6 +70,7 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): """ Method called before the launch of the test to initialize some data """ + self.simulation_tool = self.getSimulationTool() # Set some variables : self.initDefaultVariable() # the cahs transfer module @@ -88,8 +89,10 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): line_list = [inventory_dict_line_1,] self.mutilated_banknote_vault = self.paris.surface.caisse_courante.billets_mutiles + self.maculated_banknote_vault = self.paris.surface.caisse_courante.billets_macules self.usual_vault = self.paris.surface.caisse_courante.encaisse_des_billets_et_monnaies self.hq_mutilated_banknote_vault = self.siege.surface.caisse_courante.billets_mutiles + self.hq_maculated_banknote_vault = self.siege.surface.caisse_courante.billets_macules self.hq_usual_vault = self.siege.surface.caisse_courante.encaisse_des_billets_et_monnaies self.createCashInventory(source=None, destination=self.usual_vault, currency=self.currency_1, @@ -147,13 +150,12 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): """ Check the initial inventory before any operations """ - self.simulation_tool = self.getSimulationTool() # check we have 5 banknotes of 10000 in mutilated_banknote - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - # check we have 12 coin of 200 in mutilated_banknote - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.usual_vault.getRelativeUrl(), quantity=5.0) + # mutilated banknote inventory contains no 10000 banknote + self.checkBanknoteInventory(node_path=self.mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) + # maculated banknote inventory contains no 10000 banknote + self.checkBanknoteInventory(node_path=self.maculated_banknote_vault.getRelativeUrl(), quantity=0.0) def stepCreateMutilatedBanknote(self, sequence=None, sequence_list=None, **kwd): """ @@ -309,19 +311,10 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): """ Check the final inventory when document got rejected without HQ request """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.usual_vault.getRelativeUrl(), quantity=5.0) + self.checkFinalInventory() - def stepCheckFinalInventoryWithNoPayBackAfterHQRequest(self, sequence=None, sequence_list=None, **kwd): - """ - Check the final inventory when document got rejected with HQ request - """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + stepCheckFinalInventoryWithNoPayBackAfterHQRequest = stepCheckFinalInventoryWithNoPayBack def stepClearMutilatedBanknoteModule(self, sequence=None, sequence_list=None, **kw): """ @@ -412,22 +405,17 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): self.fail('Wrong cell created : %s' % cell.getId()) def stepCheckFinalInventoryWithPayBack(self, sequence=None, sequence_list=None, **kwd): - """ - Check the initial inventory before any operations - """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.usual_vault.getRelativeUrl(), quantity=0.0) + self.checkFinalInventory() - def stepCheckFinalInventoryWithPayBackAfterHQRequest(self, sequence=None, sequence_list=None, **kwd): - """ - Check the initial inventory before any operations - """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + def checkFinalInventory(self): + self.checkBanknoteInventory(node_path=self.hq_usual_vault.getRelativeUrl(), quantity=5.0) + self.checkBanknoteInventory(node_path=self.mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) + self.checkBanknoteInventory(node_path=self.maculated_banknote_vault.getRelativeUrl(), quantity=0.0) + self.checkBanknoteInventory(node_path=self.hq_mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) + self.checkBanknoteInventory(node_path=self.hq_maculated_banknote_vault.getRelativeUrl(), quantity=0.0) + + stepCheckFinalInventoryWithPayBackAfterHQRequest = stepCheckFinalInventoryWithPayBack # # Headquarter part @@ -450,13 +438,12 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): """ Check the initial inventory before any operations """ - self.simulation_tool = self.getSimulationTool() # check we have 5 banknotes of 10000 in mutilated_banknote - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.hq_usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.hq_usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - # check we have 12 coin of 200 in mutilated_banknote - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.hq_usual_vault.getRelativeUrl(), quantity=5.0) + # mutilated banknote inventory contains no 10000 banknote + self.checkBanknoteInventory(node_path=self.hq_mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) + # maculated banknote inventory contains no 10000 banknote + self.checkBanknoteInventory(node_path=self.hq_maculated_banknote_vault.getRelativeUrl(), quantity=0.0) def stepCreateHQMutilatedBanknote(self, sequence=None, sequence_list=None, **kwd): """ @@ -475,6 +462,8 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): self.assertEqual(self.hq_mutilated_banknote.getSource(), 'site/testsite/siege') self.assertEqual(self.hq_mutilated_banknote.getSourceTrade(), 'site/testsite/paris') self.assertEqual(self.hq_mutilated_banknote.getDestination(), self.hq_mutilated_banknote_vault.getRelativeUrl()) + # set causality + self.hq_mutilated_banknote.setCausalityValue(self.mutilated_banknote) # set source reference self.setDocumentSourceReference(self.hq_mutilated_banknote) # check source reference @@ -562,14 +551,44 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): self.assertEqual(self.hq_mutilated_banknote.getSimulationState(), "finished") sequence.edit(headquarter=1) + def checkBanknoteInventory(self, node_path, quantity): + """ + Check that node contains expected quantity of banknotes. + """ + resource_path = self.billet_10000.getRelativeUrl() + self.assertEqual(self.simulation_tool.getCurrentInventory(node=node_path, resource=resource_path), quantity) + self.assertEqual(self.simulation_tool.getFutureInventory(node=node_path, resource=resource_path), quantity) + + def stepCheckMutilatedBanknoteInventory(self, sequence=None, sequence_list=None, **kwd): + """ + Check mutilated banknote inventory + """ + self.checkBanknoteInventory(node_path=self.mutilated_banknote_vault.getRelativeUrl(), quantity=5.0) + + def stepCheckHQMutilatedBanknoteInventory(self, sequence=None, sequence_list=None, **kwd): + """ + Check HQ mutilated banknote inventory + """ + self.checkBanknoteInventory(node_path=self.hq_mutilated_banknote_vault.getRelativeUrl(), quantity=5.0) + + def stepCheckMaculatedBanknoteInventory(self, sequence=None, sequence_list=None, **kwd): + """ + Check maculated banknote inventory + """ + self.checkBanknoteInventory(node_path=self.maculated_banknote_vault.getRelativeUrl(), quantity=5.0) + + def stepCheckHQMaculatedBanknoteInventory(self, sequence=None, sequence_list=None, **kwd): + """ + Check HQ maculated banknote inventory + """ + self.checkBanknoteInventory(node_path=self.hq_maculated_banknote_vault.getRelativeUrl(), quantity=5.0) + def stepCheckHQFinalInventoryWithNoPayBack(self, sequence=None, sequence_list=None, **kwd): """ Check the initial inventory before any operations """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.usual_vault.getRelativeUrl(), quantity=5.0) + self.checkBanknoteInventory(node_path=self.hq_mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) def stepClearHQMutilatedBanknoteModule(self, sequence=None, sequence_list=None, **kw): """ @@ -611,10 +630,20 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): """ Check the final inventory when the mutilated payment was approved by headquaters. """ - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.hq_usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.hq_usual_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 5.0) - self.assertEqual(self.simulation_tool.getCurrentInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) - self.assertEqual(self.simulation_tool.getFutureInventory(node=self.hq_mutilated_banknote_vault.getRelativeUrl(), resource = self.billet_10000.getRelativeUrl()), 0.0) + self.checkBanknoteInventory(node_path=self.hq_usual_vault.getRelativeUrl(), quantity=5.0) + self.checkBanknoteInventory(node_path=self.hq_mutilated_banknote_vault.getRelativeUrl(), quantity=0.0) + + def stepSetMaculatedState(self, sequence=None, sequence_list=None, **kwd): + """ + Inform that the banknotes are in a maculated state, not in a mutilated state. + """ + self.mutilated_banknote.setDestinationValue(self.maculated_banknote_vault) + + def stepSetHQMaculatedState(self, sequence=None, sequence_list=None, **kwd): + """ + Inform that the banknotes are in a maculated state, not in a mutilated state. + """ + self.hq_mutilated_banknote.setDestinationValue(self.hq_maculated_banknote_vault) ################################## ## Tests @@ -626,24 +655,26 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): if not run: return sequence_list = SequenceList() # define the sequence - # sequence 1 : no payback + # sequence 1 : no payback, mutilated banknotes sequence_string_1 = 'Tic CheckObjects Tic CheckInitialInventory ' \ + 'CreateMutilatedBanknote Tic TryStopWithNoLineDefined ' \ + 'CreateIncomingLine Tic TryStopWithNoAmountDefined ' \ + 'StopDocument Tic ' \ + + 'CheckMutilatedBanknoteInventory ' \ + 'ArchiveDocument Tic ' \ + 'CheckFinalInventoryWithNoPayBack ClearMutilatedBanknoteModule' - # sequence 2 : pay back + # sequence 2 : pay back, maculated banknotes sequence_string_2 = 'Tic CheckObjects Tic CheckInitialInventory ' \ - + 'CreateMutilatedBanknote Tic ' \ + + 'CreateMutilatedBanknote SetMaculatedState Tic ' \ + 'CreateIncomingLine Tic ' \ + 'StopDocument Tic ' \ + + 'CheckMaculatedBanknoteInventory ' \ + 'TryFinishWithNoLineDefined CreateExchangedLine Tic TryFinishWithNoAmountDefined FinishDocument Tic ' \ + 'TryDeliverWithNoLineDefined CreateOutgoingLine Tic TryDeliverWithWrongAmountDefined DeliverDocument Tic ' \ + 'CheckFinalInventoryWithPayBack ClearMutilatedBanknoteModule' - # sequence 3 : ask headquarters then no payback + # sequence 3 : ask headquarters then no payback, mutilated banknotes sequence_string_3 = 'Tic CheckObjects Tic CheckInitialInventory ' \ + 'CreateMutilatedBanknote Tic ' \ + 'CreateIncomingLine Tic ' \ @@ -653,6 +684,7 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): + 'CheckHQInitialInventory ' \ + 'CreateHQMutilatedBanknote Tic '\ + 'TryStopHQWithNoLineDefined Tic CreateHQIncomingLine Tic TryStopHQWithNoAmountDefined StopHQDocument Tic ' \ + + 'CheckHQMutilatedBanknoteInventory ' \ + 'TryPlanHQDocument ' \ + 'ArchiveHQDocument Tic ' \ + 'HQLogout ' \ @@ -660,15 +692,16 @@ class TestERP5BankingMutilatedBanknote(TestERP5BankingMixin, ERP5TypeTestCase): + 'ArchiveDocument Tic ' \ + 'CheckFinalInventoryWithNoPayBackAfterHQRequest ClearMutilatedBanknoteModule' - # sequence 4 : ask headquarters then payback + # sequence 4 : ask headquarters then payback, maculated banknotes sequence_string_4 = 'Tic CheckObjects Tic CheckInitialInventory ' \ - + 'CreateMutilatedBanknote Tic ' \ + + 'CreateMutilatedBanknote SetMaculatedState Tic ' \ + 'CreateIncomingLine Tic ' \ + 'StopDocument Tic ' \ + + 'CheckHQMaculatedBanknoteInventory ' \ + 'PlanDocument Tic ' \ + 'HQLogin ' \ + 'CheckHQInitialInventory ' \ - + 'CreateHQMutilatedBanknote Tic '\ + + 'CreateHQMutilatedBanknote SetHQMaculatedState Tic ' \ + 'CreateHQIncomingLine Tic StopHQDocument Tic ' \ + 'TryFinishHQWithNoLineDefined CreateHQExchangedLine Tic TryFinishHQWithNoAmountDefined FinishHQDocument Tic ' \ + 'HQLogout ' \ -- 2.30.9