From 48b290eb7fbda512cf87990da2bf29a4a2ad8103 Mon Sep 17 00:00:00 2001
From: Sebastien Robin <seb@nexedi.com>
Date: Tue, 20 Jun 2006 16:13:58 +0000
Subject: [PATCH] improvement of 3 unit tests, some cases where missing

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@8105 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../tests/testERP5BankingCounterRendering.py  | 22 ++++++++-----
 .../tests/testERP5BankingMonetaryRecall.py    | 31 +++++++++++++------
 .../testERP5BankingMoneyDepositRendering.py   | 25 +++++++++------
 3 files changed, 51 insertions(+), 27 deletions(-)

diff --git a/product/ERP5Banking/tests/testERP5BankingCounterRendering.py b/product/ERP5Banking/tests/testERP5BankingCounterRendering.py
index 5c4d66e5c2..a201446be0 100644
--- a/product/ERP5Banking/tests/testERP5BankingCounterRendering.py
+++ b/product/ERP5Banking/tests/testERP5BankingCounterRendering.py
@@ -105,7 +105,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
            , 'erp5_accounting'
            , 'erp5_banking_core' # erp5_banking_core contains all generic methods for banking
            , 'erp5_banking_inventory'
-           , 'erp5_banking_cash'
+           , 'erp5_banking_cash' # erp5_banking_cash contains all method for counter rendering
            )
 
   def getCounterRenderingModule(self):
@@ -137,13 +137,13 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     inventory_dict_line_1 = {'id' : 'inventory_line_1',
                              'resource': self.billet_10000,
                              'variation_id': ('emission_letter', 'cash_status', 'variation'),
-                             'variation_value': ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+                             'variation_value': ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
                              'quantity': self.quantity_10000}
 
     inventory_dict_line_2 = {'id' : 'inventory_line_2',
                              'resource': self.piece_200,
                              'variation_id': ('emission_letter', 'cash_status', 'variation'),
-                             'variation_value': ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+                             'variation_value': ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
                              'quantity': self.quantity_200}
 
     line_list = [inventory_dict_line_1, inventory_dict_line_2]
@@ -231,7 +231,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     """
     # create the counter rendering line
     self.addCashLineToDelivery(self.counter_rendering, 'valid_line_1', 'Cash Delivery Line', self.billet_10000,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_10000)
     # execute tic
     self.stepTic()
@@ -252,7 +252,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     # now check for each variation (years 1992 and 2003)
     for variation in self.variation_list:
       # get the delivery cell
-      cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/valid')
+      cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/not_defined')
       # chek portal types
       self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
       # check the banknote of the cell is banknote of 10000
@@ -289,7 +289,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     """
     # create the line
     self.addCashLineToDelivery(self.counter_rendering, 'valid_line_2', 'Cash Delivery Line', self.piece_200,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_200)
     # execute tic
     self.stepTic()
@@ -309,7 +309,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     self.assertEqual(len(self.valid_line_2.objectValues()), 2)
     for variation in self.variation_list:
       # get the delivery  cell
-      cell = self.valid_line_2.getCell('emission_letter/p', variation, 'cash_status/valid')
+      cell = self.valid_line_2.getCell('emission_letter/p', variation, 'cash_status/not_defined')
       # check the portal type
       self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
       if cell.getId() == 'movement_0_0_0':
@@ -330,7 +330,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     # create a line in which quanity of banknotes of 5000 is higher that quantity available at source
     # here create a line with 24 (11+13) banknotes of 500 although the vault usual_cash has no banknote of 5000
     self.addCashLineToDelivery(self.counter_rendering, 'invalid_line', 'Cash Delivery Line', self.billet_5000,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_5000)
     # execute tic
     self.stepTic()
@@ -452,6 +452,11 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     # check len of len workflow history is 6
     self.assertEqual(len(workflow_history), 6)
 
+  def stepCheckBaobabDestination(self, sequence=None, sequence_list=None, **kwd):
+    """
+    Check destination vault equal site/testsite/paris/surface/caisse_courante/encaisse_des_billets_et_monnaies
+    """
+    self.assertEqual(self.counter_rendering.getBaobabDestination(), 'site/testsite/paris/surface/caisse_courante/encaisse_des_billets_et_monnaies')
 
   def stepCheckSourceDebit(self, sequence=None, sequence_list=None, **kwd):
     """
@@ -490,6 +495,7 @@ class TestERP5BankingCounterRendering(TestERP5BankingMixin, ERP5TypeTestCase):
     # define the sequence
     sequence_string = 'Tic CheckObjects Tic CheckInitialInventory CheckSource CheckDestination ' \
                     + 'CreateCounterRendering ' \
+                    + 'Tic CheckBaobabDestination ' \
                     + 'CreateValidLine1 CheckSubTotal ' \
                     + 'CreateValidLine2 CheckTotal ' \
                     + 'CheckSource CheckDestination ' \
diff --git a/product/ERP5Banking/tests/testERP5BankingMonetaryRecall.py b/product/ERP5Banking/tests/testERP5BankingMonetaryRecall.py
index b0018e39bc..cbe9243278 100755
--- a/product/ERP5Banking/tests/testERP5BankingMonetaryRecall.py
+++ b/product/ERP5Banking/tests/testERP5BankingMonetaryRecall.py
@@ -105,7 +105,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
            , 'erp5_accounting'
            , 'erp5_banking_core' # erp5_banking_core contains all generic methods for banking
            , 'erp5_banking_inventory'
-	         , 'erp5_banking_cash'
+	         , 'erp5_banking_cash' # erp5_banking_cash contains all method for monetary recall
            )
 
   def getMonetaryRecallModule(self):
@@ -236,7 +236,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     Create the monetary recall line 1 with banknotes of 10000 and check it has been well created
     """
     # create the monetary recall line
-    self.addCashLineToDelivery(self.monetary_recall, 'valid_line_1', 'Cash Delivery Line', self.billet_10000,
+    self.addCashLineToDelivery(self.monetary_recall, 'valid_line_1', 'Monetary Recall Line', self.billet_10000,
             ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/cancelled') + self.variation_list,
             self.quantity_10000)
     # execute tic
@@ -246,7 +246,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     # get the monetary recall line
     self.valid_line_1 = getattr(self.monetary_recall, 'valid_line_1')
     # check its portal type
-    self.assertEqual(self.valid_line_1.getPortalType(), 'Cash Delivery Line')
+    self.assertEqual(self.valid_line_1.getPortalType(), 'Monetary Recall Line')
     # check the resource is banknotes of 10000
     self.assertEqual(self.valid_line_1.getResourceValue(), self.billet_10000)
     # chek the value of the banknote
@@ -260,7 +260,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
       # get the delivery cell
       cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/cancelled')
       # chek portal types
-      self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
+      self.assertEqual(cell.getPortalType(), 'Monetary Recall Cell')
       # check the banknote of the cell is banknote of 10000
       self.assertEqual(cell.getResourceValue(), self.billet_10000)
       # check the source vault is cash
@@ -294,7 +294,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     Create the monetary recall line 2 wiht coins of 200 and check it has been well created
     """
     # create the line
-    self.addCashLineToDelivery(self.monetary_recall, 'valid_line_2', 'Cash Delivery Line', self.piece_200,
+    self.addCashLineToDelivery(self.monetary_recall, 'valid_line_2', 'Monetary Recall Line', self.piece_200,
             ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/cancelled') + self.variation_list,
             self.quantity_200)
     # execute tic
@@ -304,7 +304,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     # get the second monetary recall line
     self.valid_line_2 = getattr(self.monetary_recall, 'valid_line_2')
     # check portal types
-    self.assertEqual(self.valid_line_2.getPortalType(), 'Cash Delivery Line')
+    self.assertEqual(self.valid_line_2.getPortalType(), 'Monetary Recall Line')
     # check the resource is coin of 200
     self.assertEqual(self.valid_line_2.getResourceValue(), self.piece_200)
     # check the value of coin
@@ -317,7 +317,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
       # get the delivery  cell
       cell = self.valid_line_2.getCell('emission_letter/p', variation, 'cash_status/cancelled')
       # check the portal type
-      self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
+      self.assertEqual(cell.getPortalType(), 'Monetary Recall Cell')
       if cell.getId() == 'movement_0_0_0':
         # check the quantity for coin for year 1992 is 5
         self.assertEqual(cell.getQuantity(), 5.0)
@@ -335,7 +335,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     """
     # create a line in which quanity of banknotes of 5000 is higher that quantity available at source
     # here create a line with 24 (11+13) banknotes of 500 although the vault cash has no banknote of 5000
-    self.addCashLineToDelivery(self.monetary_recall, 'invalid_line', 'Cash Delivery Line', self.billet_5000,
+    self.addCashLineToDelivery(self.monetary_recall, 'invalid_line', 'Monetary Recall Line', self.billet_5000,
             ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/cancelled') + self.variation_list,
             self.quantity_5000)
     # execute tic
@@ -369,6 +369,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     self.assertEqual(len(workflow_history), 2)
     # check we get an "Insufficient balance" message in the workflow history because of the invalid line
     msg = workflow_history[-1]['error_message']
+    #import pdb;pdb.set_trace()
     self.assertEqual('Insufficient Balance.', "%s" %(msg,))
 
 
@@ -484,6 +485,18 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
     self.assertEqual(self.simulation_tool.getFutureInventory(node=self.counter.getRelativeUrl(), resource = self.piece_200.getRelativeUrl()), 12.0)
 
 
+  def stepCheckCashDeliveryLine(self, sequence=None, sequence_list=None):
+    """
+    Check the cash delivery line
+    """
+    variation = 'variation/2003'
+    # get the delivery cell
+    cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/cancelled')
+    # check the destination variation text is redefine on destination
+    #import pdb;pdb.set_trace()
+    self.assertEqual(cell.getBaobabDestinationVariationText(), 'cash_status/retired\nemission_letter/p\nvariation/2003')
+
+
   ##################################
   ##  Tests
   ##################################
@@ -507,7 +520,7 @@ class TestERP5BankingMonetaryRecall(TestERP5BankingMixin, ERP5TypeTestCase):
                     + 'CheckSourceDebitPlanned CheckDestinationCreditPlanned ' \
                     + 'CheckSourceDebitPlanned CheckDestinationCreditPlanned ' \
                     + 'DeliverMonetaryRecall ' \
-                    + 'CheckSourceDebit CheckDestinationCredit '
+                    + 'CheckSourceDebit CheckDestinationCredit CheckCashDeliveryLine '
     sequence_list.addSequenceString(sequence_string)
     # play the sequence
     sequence_list.play(self)
diff --git a/product/ERP5Banking/tests/testERP5BankingMoneyDepositRendering.py b/product/ERP5Banking/tests/testERP5BankingMoneyDepositRendering.py
index 3c56924fee..4adb58ea77 100644
--- a/product/ERP5Banking/tests/testERP5BankingMoneyDepositRendering.py
+++ b/product/ERP5Banking/tests/testERP5BankingMoneyDepositRendering.py
@@ -36,7 +36,6 @@ from Products.ERP5Type.tests.Sequence import SequenceList
 from Products.DCWorkflow.DCWorkflow import Unauthorized, ValidationFailed
 from Testing.ZopeTestCase.PortalTestCase import PortalTestCase
 from Products.ERP5Banking.tests.TestERP5BankingMixin import TestERP5BankingMixin
-from zLOG import LOG
 
 # Needed in order to have a log file inside the current folder
 os.environ['EVENT_LOG_FILE']     = os.path.join(os.getcwd(), 'zLOG.log')
@@ -106,7 +105,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
            , 'erp5_accounting'
            , 'erp5_banking_core' # erp5_banking_core contains all generic methods for banking
            , 'erp5_banking_inventory'
-           , 'erp5_banking_cash'
+           , 'erp5_banking_cash' # erp5_banking_cash contains all method for money deposit rendering
            )
 
   def getMoneyDepositRenderingModule(self):
@@ -138,13 +137,13 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     inventory_dict_line_1 = {'id' : 'inventory_line_1',
                              'resource': self.billet_10000,
                              'variation_id': ('emission_letter', 'cash_status', 'variation'),
-                             'variation_value': ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+                             'variation_value': ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
                              'quantity': self.quantity_10000}
 
     inventory_dict_line_2 = {'id' : 'inventory_line_2',
                              'resource': self.piece_200,
                              'variation_id': ('emission_letter', 'cash_status', 'variation'),
-                             'variation_value': ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+                             'variation_value': ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
                              'quantity': self.quantity_200}
 
     line_list = [inventory_dict_line_1, inventory_dict_line_2]
@@ -204,13 +203,18 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     self.assertEqual(self.simulation_tool.getFutureInventory(node=self.auxiliaire.getRelativeUrl(), resource = self.piece_200.getRelativeUrl()), 0.0)
 
 
+  def stepCheckBaobabDestination(self, sequence=None, sequence_list=None, **kwd):
+    """
+    Check destination vault equal site/testsite/paris/caveau/auxiliaire/encaisse_des_billets_et_monnaies
+    """
+    self.assertEqual(self.money_deposit_rendering.getBaobabDestination(), 'site/testsite/paris/caveau/auxiliaire/encaisse_des_billets_et_monnaies')
+
   def stepCreateMoneyDepositRendering(self, sequence=None, sequence_list=None, **kwd):
     """
     Create a money deposit rendering document and check it
     """
     # Money deposit rendering has auxiliaire for source, gros_versement for destination, and a price cooreponding to the sum of banknote of 10000 abd coin of 200 ( (2+3) * 1000 + (5+7) * 200 )
 
-    LOG('money_deposit_rendering_module.showDict()',0,self.money_deposit_rendering_module.showDict())
     self.money_deposit_rendering = self.money_deposit_rendering_module.newContent(id='money_deposit_rendering_1', portal_type='Money Deposit Rendering', source_value=self.gros_versement, source_total_asset_price=52400.0)
     # execute tic
     self.stepTic()
@@ -233,7 +237,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     """
     # create the money deposit rendering line
     self.addCashLineToDelivery(self.money_deposit_rendering, 'valid_line_1', 'Cash Delivery Line', self.billet_10000,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_10000)
     # execute tic
     self.stepTic()
@@ -254,7 +258,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     # now check for each variation (years 1992 and 2003)
     for variation in self.variation_list:
       # get the delivery cell
-      cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/valid')
+      cell = self.valid_line_1.getCell('emission_letter/p', variation, 'cash_status/not_defined')
       # chek portal types
       self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
       # check the banknote of the cell is banknote of 10000
@@ -291,7 +295,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     """
     # create the line
     self.addCashLineToDelivery(self.money_deposit_rendering, 'valid_line_2', 'Cash Delivery Line', self.piece_200,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_200)
     # execute tic
     self.stepTic()
@@ -311,7 +315,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     self.assertEqual(len(self.valid_line_2.objectValues()), 2)
     for variation in self.variation_list:
       # get the delivery  cell
-      cell = self.valid_line_2.getCell('emission_letter/p', variation, 'cash_status/valid')
+      cell = self.valid_line_2.getCell('emission_letter/p', variation, 'cash_status/not_defined')
       # check the portal type
       self.assertEqual(cell.getPortalType(), 'Cash Delivery Cell')
       if cell.getId() == 'movement_0_0_0':
@@ -332,7 +336,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     # create a line in which quanity of banknotes of 5000 is higher that quantity available at source
     # here create a line with 24 (11+13) banknotes of 500 although the vault auxiliaire has no banknote of 5000
     self.addCashLineToDelivery(self.money_deposit_rendering, 'invalid_line', 'Cash Delivery Line', self.billet_5000,
-            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/valid') + self.variation_list,
+            ('emission_letter', 'cash_status', 'variation'), ('emission_letter/p', 'cash_status/not_defined') + self.variation_list,
             self.quantity_5000)
     # execute tic
     self.stepTic()
@@ -536,6 +540,7 @@ class TestERP5BankingMoneyDepositRendering(TestERP5BankingMixin, ERP5TypeTestCas
     # define the sequence
     sequence_string = 'Tic CheckObjects Tic CheckInitialInventory CheckSource CheckDestination ' \
                     + 'CreateMoneyDepositRendering ' \
+                    + 'Tic CheckBaobabDestination ' \
                     + 'CreateValidLine1 CheckSubTotal ' \
                     + 'CreateValidLine2 CheckTotal ' \
                     + 'CheckSource CheckDestination ' \
-- 
2.30.9