[Erp5-report] r36234 jerome - /erp5/trunk/products/ERP5/tests/testAccountingReports.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 10 17:02:26 CEST 2010


Author: jerome
Date: Thu Jun 10 17:02:06 2010
New Revision: 36234

URL: http://svn.erp5.org?rev=36234&view=rev
Log:
tests for now feature "support breakdown by various analytic axis in trial
balance", and adapt test because third party is now in another column, and not
only in parenthesis after the account name


Modified:
    erp5/trunk/products/ERP5/tests/testAccountingReports.py

Modified: erp5/trunk/products/ERP5/tests/testAccountingReports.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testAccountingReports.py?rev=36234&r1=36233&r2=36234&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testAccountingReports.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testAccountingReports.py [utf8] Thu Jun 10 17:02:06 2010
@@ -30,6 +30,7 @@
 """
 
 import unittest
+import os
 
 import transaction
 from DateTime import DateTime
@@ -1810,6 +1811,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 1
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -1912,7 +1914,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 1
     request_form['per_account_class_summary'] = 0
-    request_form['hide_analytic'] = False
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -1922,29 +1924,34 @@ class TestAccountingReports(AccountingTe
     data_line_list = [l for l in line_list if l.isDataLine()]
  
     self.assertEquals(6, len(data_line_list))
+    
+    self.assertEquals(['node_id', 'node_title', 'mirror_section_title',
+      'initial_debit_balance', 'initial_credit_balance', 'debit', 'credit',
+      'final_debit_balance', 'final_credit_balance', 'final_balance_if_debit',
+      'final_balance_if_credit'], data_line_list[0].column_id_list)
 
     # account are sorted by GAP Id
     self.checkLineProperties(data_line_list[0], node_id='40',
-        node_title='Payable (Client 1)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=200, credit=100,
-        final_debit_balance=200, final_credit_balance=100,
+        node_title='Payable', mirror_section_title='Client 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=200,
+        credit=100, final_debit_balance=200, final_credit_balance=100,
         final_balance_if_debit=100, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[1], node_id='41',
-        node_title='Receivable (Client 1)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=1000, credit=200,
-        final_debit_balance=1000, final_credit_balance=200,
+        node_title='Receivable', mirror_section_title='Client 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=1000,
+        credit=200, final_debit_balance=1000, final_credit_balance=200,
         final_balance_if_debit=800, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[2], node_id='41',
-        node_title='Receivable (Client 2)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=400, credit=0, final_debit_balance=400,
-        final_credit_balance=0, final_balance_if_debit=400,
-        final_balance_if_credit=0)
+        node_title='Receivable', mirror_section_title='Client 2',
+        initial_debit_balance=0, initial_credit_balance=0, debit=400, credit=0,
+        final_debit_balance=400, final_credit_balance=0,
+        final_balance_if_debit=400, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[3], node_id='41',
-        node_title='Receivable (John Smith)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=500, credit=0,
+        node_title='Receivable', mirror_section_title='John Smith',
+        initial_debit_balance=0, initial_credit_balance=0, debit=500, credit=0,
         final_debit_balance=500, final_credit_balance=0,
         final_balance_if_debit=500, final_balance_if_credit=0,)
     
@@ -2026,6 +2033,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2111,6 +2119,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2176,7 +2185,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 1
     request_form['per_account_class_summary'] = 0
-    request_form['hide_analytic'] = False
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2187,26 +2196,26 @@ class TestAccountingReports(AccountingTe
     self.assertEquals(4, len(data_line_list))
 
     self.checkLineProperties(data_line_list[0], node_id='40',
-        node_title='Payable (Client 1)', initial_debit_balance=400,
-        initial_credit_balance=0, debit=0, credit=0,
+        node_title='Payable', mirror_section_title='Client 1',
+        initial_debit_balance=400, initial_credit_balance=0, debit=0, credit=0,
         final_debit_balance=400, final_credit_balance=0,
         final_balance_if_debit=400, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[1], node_id='40',
-        node_title='Payable (Client 2)', initial_debit_balance=0,
-        initial_credit_balance=600, debit=0, credit=0,
+        node_title='Payable', mirror_section_title='Client 2',
+        initial_debit_balance=0, initial_credit_balance=600, debit=0, credit=0,
         final_debit_balance=0, final_credit_balance=600,
         final_balance_if_debit=0, final_balance_if_credit=600)
     
     self.checkLineProperties(data_line_list[2], node_id='41',
-        node_title='Receivable (Client 1)', initial_debit_balance=0,
+        node_title='Receivable', mirror_section_title='Client 1', initial_debit_balance=0,
         initial_credit_balance=400, debit=0, credit=0,
         final_debit_balance=0, final_credit_balance=400,
         final_balance_if_debit=0, final_balance_if_credit=400)
 
     self.checkLineProperties(data_line_list[3], node_id='41',
-        node_title='Receivable (Client 2)', initial_debit_balance=600,
-        initial_credit_balance=0, debit=0, credit=0,
+        node_title='Receivable', mirror_section_title='Client 2',
+        initial_debit_balance=600, initial_credit_balance=0, debit=0, credit=0,
         final_debit_balance=600, final_credit_balance=0,
         final_balance_if_debit=600, final_balance_if_credit=0)
 
@@ -2257,7 +2266,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
-    request_form['hide_analytic'] = False
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2326,6 +2335,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2393,6 +2403,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2473,6 +2484,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2541,6 +2553,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2613,6 +2626,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2656,6 +2670,7 @@ class TestAccountingReports(AccountingTe
     request_form['expand_accounts'] = 1
     request_form['gap_list'] = ['my_country/my_accounting_standards/4']
     request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2668,26 +2683,26 @@ class TestAccountingReports(AccountingTe
 
     # account are sorted by GAP Id
     self.checkLineProperties(data_line_list[0], node_id='40',
-        node_title='Payable (Client 1)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=200, credit=100,
-        final_debit_balance=200, final_credit_balance=100,
+        node_title='Payable', mirror_section_title='Client 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=200,
+        credit=100, final_debit_balance=200, final_credit_balance=100,
         final_balance_if_debit=100, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[1], node_id='41',
-        node_title='Receivable (Client 1)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=1000, credit=200,
-        final_debit_balance=1000, final_credit_balance=200,
+        node_title='Receivable', mirror_section_title='Client 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=1000,
+        credit=200, final_debit_balance=1000, final_credit_balance=200,
         final_balance_if_debit=800, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[2], node_id='41',
-        node_title='Receivable (Client 2)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=400, credit=0, final_debit_balance=400,
-        final_credit_balance=0, final_balance_if_debit=400,
-        final_balance_if_credit=0)
+        node_title='Receivable', mirror_section_title='Client 2',
+        initial_debit_balance=0, initial_credit_balance=0, debit=400, credit=0,
+        final_debit_balance=400, final_credit_balance=0,
+        final_balance_if_debit=400, final_balance_if_credit=0)
     
     self.checkLineProperties(data_line_list[3], node_id='41',
-        node_title='Receivable (John Smith)', initial_debit_balance=0,
-        initial_credit_balance=0, debit=500, credit=0,
+        node_title='Receivable', mirror_section_title='John Smith',
+        initial_debit_balance=0, initial_credit_balance=0, debit=500, credit=0,
         final_debit_balance=500, final_credit_balance=0,
         final_balance_if_debit=500, final_balance_if_credit=0,)
     
@@ -2734,7 +2749,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 1
-    request_form['hide_analytic'] = False
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2787,6 +2802,7 @@ class TestAccountingReports(AccountingTe
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
     request_form['portal_type'] = ['Purchase Invoice Transaction']
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2828,6 +2844,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['per_account_class_summary'] = 0
     request_form['function'] = 'function/a'
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2870,6 +2887,7 @@ class TestAccountingReports(AccountingTe
     request_form['show_empty_accounts'] = 0
     request_form['per_account_class_summary'] = 0
     request_form['project'] = self.project_1.getRelativeUrl()
+    request_form['group_analytic'] = []
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -3413,6 +3431,8 @@ class TestAccountingReportsWithAnalytic(
   def setUp(self):
     # FIXME: use afterSetUp, and fix AccountingTestCase to use afterSetUp
     AccountingTestCase.setUp(self)
+    if os.environ.get('erp5_save_data_fs'):
+      return
     self.login('ERP5TypeTestCase')
     # create some functions
     function = self.portal.portal_categories.function
@@ -3781,6 +3801,208 @@ class TestAccountingReportsWithAnalytic(
                              debit_price=1500,
                              credit_price=1500,)
 
+  def testTrialBalanceGroupByProject(self):
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['show_empty_accounts'] = 0
+    request_form['expand_accounts'] = 0
+    request_form['gap_list'] = ['my_country/my_accounting_standards/7']
+    request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = ['project']
+
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewTrialBalanceReport')
+    self.assertEquals(1, len(report_section_list))
+    line_list = self.getListBoxLineList(report_section_list[0])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+ 
+    self.assertEquals(2, len(data_line_list))
+
+    self.assertEquals(['node_id', 'node_title', 'project_uid',
+      'initial_debit_balance', 'initial_credit_balance', 'debit', 'credit',
+      'final_debit_balance', 'final_credit_balance', 'final_balance_if_debit',
+      'final_balance_if_credit'], data_line_list[0].column_id_list)
+
+    self.checkLineProperties(data_line_list[0], node_id='7',
+        node_title='Goods Sales', project_uid='Project 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=800, final_debit_balance=0, final_credit_balance=800,
+        final_balance_if_debit=0, final_balance_if_credit=800)
+
+    self.checkLineProperties(data_line_list[1], node_id='7',
+        node_title='Goods Sales', project_uid='Project 2',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=700, final_debit_balance=0, final_credit_balance=700,
+        final_balance_if_debit=0, final_balance_if_credit=700)
+
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1],
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=1500, final_debit_balance=0, final_credit_balance=1500,
+        final_balance_if_debit=0, final_balance_if_credit=1500)
+
+  def testTrialBalanceGroupByFunction(self):
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['show_empty_accounts'] = 0
+    request_form['expand_accounts'] = 0
+    request_form['gap_list'] = ['my_country/my_accounting_standards/7']
+    request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = ['function']
+
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewTrialBalanceReport')
+    self.assertEquals(1, len(report_section_list))
+    line_list = self.getListBoxLineList(report_section_list[0])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+ 
+    self.assertEquals(2, len(data_line_list))
+
+    self.assertEquals(['node_id', 'node_title', 'function_uid',
+      'initial_debit_balance', 'initial_credit_balance', 'debit', 'credit',
+      'final_debit_balance', 'final_credit_balance', 'final_balance_if_debit',
+      'final_balance_if_credit'], data_line_list[0].column_id_list)
+
+    self.checkLineProperties(data_line_list[0], node_id='7',
+        node_title='Goods Sales', function_uid='a',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=300, final_debit_balance=0, final_credit_balance=300,
+        final_balance_if_debit=0, final_balance_if_credit=300)
+
+    self.checkLineProperties(data_line_list[1], node_id='7',
+        node_title='Goods Sales', function_uid='b',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=1200, final_debit_balance=0, final_credit_balance=1200,
+        final_balance_if_debit=0, final_balance_if_credit=1200)
+
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1],
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=1500, final_debit_balance=0, final_credit_balance=1500,
+        final_balance_if_debit=0, final_balance_if_credit=1500)
+
+  def testTrialBalanceGroupByProjectAndFunction(self):
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['show_empty_accounts'] = 0
+    request_form['expand_accounts'] = 0
+    request_form['gap_list'] = ['my_country/my_accounting_standards/7']
+    request_form['per_account_class_summary'] = 0
+    request_form['group_analytic'] = ['function', 'project']
+
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewTrialBalanceReport')
+    self.assertEquals(1, len(report_section_list))
+    line_list = self.getListBoxLineList(report_section_list[0])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+ 
+    self.assertEquals(3, len(data_line_list))
+
+    self.assertEquals(['node_id', 'node_title', 'function_uid', 'project_uid',
+      'initial_debit_balance', 'initial_credit_balance', 'debit', 'credit',
+      'final_debit_balance', 'final_credit_balance', 'final_balance_if_debit',
+      'final_balance_if_credit'], data_line_list[0].column_id_list)
+
+    self.checkLineProperties(data_line_list[0], node_id='7',
+        node_title='Goods Sales', function_uid='a', project_uid='Project 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=300, final_debit_balance=0, final_credit_balance=300,
+        final_balance_if_debit=0, final_balance_if_credit=300)
+
+    self.checkLineProperties(data_line_list[1], node_id='7',
+        node_title='Goods Sales', function_uid='b', project_uid='Project 1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=500, final_debit_balance=0, final_credit_balance=500,
+        final_balance_if_debit=0, final_balance_if_credit=500)
+
+    self.checkLineProperties(data_line_list[2], node_id='7',
+        node_title='Goods Sales', function_uid='b', project_uid='Project 2',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=700, final_debit_balance=0, final_credit_balance=700,
+        final_balance_if_debit=0, final_balance_if_credit=700)
+
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1],
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=1500, final_debit_balance=0, final_credit_balance=1500,
+        final_balance_if_debit=0, final_balance_if_credit=1500)
+
+  def testTrialBalanceGroupByProductLine(self):
+    self._makeOne(
+              portal_type='Sale Invoice Transaction',
+              title='Noise',
+              source_reference='2',
+              simulation_state='delivered',
+              destination_section_value=self.portal.organisation_module.client_1,
+              start_date=DateTime(2006, 2, 2),
+              lines=(dict(source_value=self.portal.account_module.receivable,
+                          source_debit=1100.0),
+                     dict(source_value=self.portal.account_module.payable,
+                          source_function_value=self.function_a,
+                          source_project_value=self.project_1,
+                          product_line_value=self.product_line_1,
+                          source_credit=1100.0),))
+
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['show_empty_accounts'] = 0
+    request_form['expand_accounts'] = 0
+    request_form['gap_list'] = ['my_country/my_accounting_standards/7']
+    request_form['per_account_class_summary'] = 0
+    # in the dialog, categories are in the '_translated_title' form
+    request_form['group_analytic'] = ['product_line_translated_title']
+    self.assertTrue(
+        ('Product Line', 'product_line_translated_title') in
+      self.portal.accounting_module.AccountModule_viewTrialBalanceReportDialog\
+        .your_group_analytic.get_value('items'))
+    
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewTrialBalanceReport')
+    self.assertEquals(1, len(report_section_list))
+    line_list = self.getListBoxLineList(report_section_list[0])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+ 
+    self.assertEquals(1, len(data_line_list))
+
+    self.assertEquals(['node_id', 'node_title', 'strict_product_line_uid',
+      'initial_debit_balance', 'initial_credit_balance', 'debit', 'credit',
+      'final_debit_balance', 'final_credit_balance', 'final_balance_if_debit',
+      'final_balance_if_credit'], data_line_list[0].column_id_list)
+
+    self.checkLineProperties(data_line_list[0], node_id='7',
+        node_title='Goods Sales', strict_product_line_uid='pl1',
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=800, final_debit_balance=0, final_credit_balance=800,
+        final_balance_if_debit=0, final_balance_if_credit=800)
+
+    # Lines that does not have a product line are not displayed. This is a
+    # technical limitation, we would have to left join to support this.
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1],
+        initial_debit_balance=0, initial_credit_balance=0, debit=0,
+        credit=800, final_debit_balance=0, final_credit_balance=800,
+        final_balance_if_debit=0, final_balance_if_credit=800)
+
 
 def test_suite():
   suite = unittest.TestSuite()




More information about the Erp5-report mailing list