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

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jun 9 13:47:08 CEST 2010


Author: jerome
Date: Wed Jun  9 13:47:05 2010
New Revision: 36155

URL: http://svn.erp5.org?rev=36155&view=rev
Log:
supports hiding or aggregating analytics in general ledger, journal and account statement
(update some tests and add tests for new features)

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=36155&r1=36154&r2=36155&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testAccountingReports.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testAccountingReports.py [utf8] Wed Jun  9 13:47:05 2010
@@ -51,9 +51,6 @@
     ...
   """
 
-  def getTitle(self):
-    return "Accounting Reports"
-
   def beforeTearDown(self):
     # workaround the fact that Balance Transaction Line are not unindexed
     # correctly when removed
@@ -154,6 +151,7 @@
     request_form['section_category_strict'] = False
     request_form['portal_type'] = ['Sale Invoice Transaction']
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -320,6 +318,7 @@
     request_form['section_category_strict'] = False
     request_form['portal_type'] = ['Accounting Transaction']
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -450,6 +449,7 @@
     request_form['portal_type'] = ['Payment Transaction']
     request_form['simulation_state'] = ['delivered']
     request_form['payment'] = bank1.getRelativeUrl()
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -481,7 +481,6 @@
     # Stat Line
     self.failUnless(line_list[-1].isStatLine())
     self.checkLineProperties(line_list[-1], debit=100, credit=100)
-
 
   def createAccountStatementDataSet(self, use_two_bank_accounts=1):
     """Create transactions for Account statement report.
@@ -671,6 +670,7 @@
     self.project_2 = self.portal.project_module.newContent(
                           portal_type='Project',
                           title='Project 2')
+
     account_module = self.portal.account_module
     self._makeOne(
               portal_type='Sale Invoice Transaction',
@@ -710,8 +710,6 @@
                      dict(source_value=account_module.goods_sales,
                           source_credit=700.0)))
 
-
-
   def testAccountStatement(self):
     # Simple Account Statement for "Receivable" account
     self.createAccountStatementDataSet()
@@ -724,6 +722,7 @@
     request_form['section_category'] = 'group/demo_group/sub1'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -828,6 +827,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -901,6 +901,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1007,6 +1008,7 @@
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
     request_form['detailed_from_date_summary'] = 1
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1151,6 +1153,7 @@
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
     request_form['detailed_from_date_summary'] = 1
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1230,6 +1233,7 @@
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
     request_form['detailed_from_date_summary'] = 1
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1295,6 +1299,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1357,6 +1362,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1417,6 +1423,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1472,6 +1479,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1518,6 +1526,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -1552,6 +1561,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['stopped', 'confirmed']
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -1612,6 +1622,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1671,6 +1682,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                self.portal.accounting_module,
@@ -1744,6 +1756,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
     
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -1782,7 +1795,6 @@
     self.failUnless(line_list[-1].isStatLine())
     self.checkLineProperties(line_list[-1], debit_price=100, credit_price=200)
 
-
   def testTrialBalance(self):
     # Simple test of trial balance
     # we will use the same data set as account statement
@@ -1900,6 +1912,7 @@
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 1
     request_form['per_account_class_summary'] = 0
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2163,6 +2176,7 @@
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 1
     request_form['per_account_class_summary'] = 0
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2243,6 +2257,7 @@
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 0
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2719,6 +2734,7 @@
     request_form['show_empty_accounts'] = 0
     request_form['expand_accounts'] = 0
     request_form['per_account_class_summary'] = 1
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -2894,6 +2910,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -3130,6 +3147,7 @@
     request_form['section_category'] = 'group/demo_group'
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -3187,6 +3205,7 @@
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
     request_form['function'] = 'function/a'
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -3235,6 +3254,7 @@
     request_form['section_category_strict'] = False
     request_form['simulation_state'] = ['delivered']
     request_form['project'] = self.project_1.getRelativeUrl()
+    request_form['hide_analytic'] = False
 
     report_section_list = self.getReportSectionList(
                                     self.portal.accounting_module,
@@ -3271,7 +3291,6 @@
     data_line_list = [l for l in line_list if l.isDataLine()]
     self.assertEquals(1, len(data_line_list))
     self.checkLineProperties(data_line_list[0], debit_price=500, credit_price=500)
-
 
   def testProfitAndLoss(self):
     # Simple test of profit and loss
@@ -3389,8 +3408,383 @@
           debit_price=300,)
 
 
+class TestAccountingReportsWithAnalytic(AccountingTestCase, ERP5ReportTestCase):
+
+  def setUp(self):
+    # FIXME: use afterSetUp, and fix AccountingTestCase to use afterSetUp
+    AccountingTestCase.setUp(self)
+    self.login('ERP5TypeTestCase')
+    # create some functions
+    function = self.portal.portal_categories.function
+    if function._getOb('a', None) is None:
+      function.newContent(portal_type='Category', id='a')
+    self.function_a = function['a']
+    if function._getOb('b', None) is None:
+      function.newContent(portal_type='Category', id='b')
+    self.function_b = function['b']
+
+    # create some product lines
+    product_line = self.portal.portal_categories.product_line
+    if product_line._getOb('pl1', None) is None:
+      product_line.newContent(portal_type='Category', id='pl1')
+    self.product_line_1 = product_line['pl1']
+
+    # create some projects
+    self.project_1 = self.portal.project_module.newContent(
+                          portal_type='Project',
+                          title='Project 1')
+    self.project_2 = self.portal.project_module.newContent(
+                          portal_type='Project',
+                          title='Project 2')
+
+    preference = self.portal.portal_preferences.getActivePreference()
+    preference.edit(
+        preferred_accounting_transaction_line_function_base_category='function',
+        preferred_accounting_transaction_line_analytic_base_category_list=(
+                                              'product_line', ),)
+    account_module = self.portal.account_module
+    uid_list = sorted([
+        self.portal.portal_catalog.newUid(),
+        self.portal.portal_catalog.newUid(),
+        self.portal.portal_catalog.newUid(),])
+     
+    self._makeOne(
+              portal_type='Sale Invoice Transaction',
+              title='Detailed Transaction',
+              source_reference='1',
+              simulation_state='delivered',
+              destination_section_value=self.portal.organisation_module.client_1,
+              start_date=DateTime(2006, 2, 2),
+              lines=(dict(source_value=account_module.receivable,
+                          source_debit=1500.0),
+                     dict(source_value=account_module.goods_sales,
+                          uid=uid_list[0],
+                          source_function_value=self.function_a,
+                          source_project_value=self.project_1,
+                          product_line_value=self.product_line_1,
+                          source_credit=300.0),
+                     dict(source_value=account_module.goods_sales,
+                          uid=uid_list[1],
+                          source_function_value=self.function_b,
+                          source_project_value=self.project_1,
+                          product_line_value=self.product_line_1,
+                          source_credit=500.0),
+                     dict(source_value=account_module.goods_sales,
+                          uid=uid_list[2],
+                          source_function_value=self.function_b,
+                          source_project_value=self.project_2,
+                          product_line_value=None,
+                          source_credit=700.0),
+                     ))
+    self.login(self.username)
+
+  def beforeTearDown(self):
+    self.login('ERP5TypeTestCase')
+    transaction.abort()
+    preference = self.portal.portal_preferences.getActivePreference()
+    preference.edit(
+        preferred_accounting_transaction_line_function_base_category=None,
+        preferred_accounting_transaction_line_analytic_base_category_list=())
+    transaction.commit()
+
+  def testJournalAnalyticsShown(self):
+    request_form = self.portal.REQUEST.form
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['portal_type'] = ['Sale Invoice Transaction']
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
+    
+    report_section_list = self.getReportSectionList(
+                               self.portal.accounting_module,
+                               'AccountingTransactionModule_viewJournalReport')
+    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(4, len(data_line_list))
+    
+    # test columns values
+    line = data_line_list[0]
+    self.assertEquals(line.column_id_list,
+        [ 'specific_reference', 'date', 'title',
+          'project', 'function', 'product_line_translated_title',
+          'node_title', 'mirror_section_title', 'debit', 'credit'])
+    
+    self.checkLineProperties(data_line_list[0],
+                             project=None,
+                             function=None,
+                             product_line_translated_title=None,
+                             node_title='41',
+                             mirror_section_title='Client 1',
+                             debit=1500,
+                             credit=0)
+    self.checkLineProperties(data_line_list[1],
+                             project='Project 1',
+                             function='a',
+                             product_line_translated_title='pl1',
+                             node_title='7',
+                             debit=0,
+                             credit=300)
+    self.checkLineProperties(data_line_list[2],
+                             project='Project 1',
+                             function='b',
+                             product_line_translated_title='pl1',
+                             node_title='7',
+                             debit=0,
+                             credit=500)
+    self.checkLineProperties(data_line_list[3],
+                             project='Project 2',
+                             function='b',
+                             product_line_translated_title=None,
+                             node_title='7',
+                             debit=0,
+                             credit=700)
+
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit=1500, credit=1500)
+
+  def testJournalAnalyticsHidden(self):
+    request_form = self.portal.REQUEST.form
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['portal_type'] = ['Sale Invoice Transaction']
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = True
+    
+    report_section_list = self.getReportSectionList(
+                               self.portal.accounting_module,
+                               'AccountingTransactionModule_viewJournalReport')
+    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))
+    
+    # test columns values
+    line = data_line_list[0]
+    self.assertEquals(line.column_id_list,
+        ['specific_reference', 'date', 'title',
+          'node_title', 'mirror_section_title', 'debit', 'credit'])
+    
+    self.checkLineProperties(data_line_list[0],
+                             node_title='41',
+                             mirror_section_title='Client 1',
+                             debit=1500,
+                             credit=0)
+    # this line is the aggregation of 3 lines
+    self.checkLineProperties(data_line_list[1],
+                             node_title='7',
+                             debit=0,
+                             credit=1500)
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit=1500, credit=1500)
+
+  def testAccountStatementAnalyticsShown(self):
+    request_form = self.portal.REQUEST.form
+    request_form['node'] = \
+                self.portal.account_module.goods_sales.getRelativeUrl()
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group/sub1'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
+
+    report_section_list = self.getReportSectionList(
+                               self.portal.accounting_module,
+                               'AccountModule_viewAccountStatementReport')
+    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))
+
+    line = data_line_list[0]
+    self.assertEquals(line.column_id_list,
+        ['Movement_getSpecificReference', 'date',
+         'Movement_getExplanationTitle',
+         'project', 'function', 'product_line_translated_title',
+         'Movement_getMirrorSectionTitle',
+         'debit_price', 'credit_price', 'running_total_price'])
+
+    self.checkLineProperties(data_line_list[0],
+                             project='Project 1',
+                             function='a',
+                             product_line_translated_title='pl1',
+                             debit_price=0,
+                             credit_price=300,
+                             running_total_price=-300)
+    self.checkLineProperties(data_line_list[1],
+                             project='Project 1',
+                             function='b',
+                             product_line_translated_title='pl1',
+                             debit_price=0,
+                             credit_price=500,
+                             running_total_price=-800)
+    self.checkLineProperties(data_line_list[2],
+                             project='Project 2',
+                             function='b',
+                             product_line_translated_title=None,
+                             debit_price=0,
+                             credit_price=700,
+                             running_total_price=-1500)
+
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit_price=0, credit_price=1500)
+ 
+  def testAccountStatementAnalyticsHidden(self):
+    request_form = self.portal.REQUEST.form
+    request_form['node'] = \
+                self.portal.account_module.goods_sales.getRelativeUrl()
+    request_form['at_date'] = DateTime(2006, 2, 2)
+    request_form['section_category'] = 'group/demo_group/sub1'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = True
+
+    report_section_list = self.getReportSectionList(
+                               self.portal.accounting_module,
+                               'AccountModule_viewAccountStatementReport')
+    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))
+
+    line = data_line_list[0]
+    self.assertEquals(line.column_id_list,
+        ['Movement_getSpecificReference', 'date',
+         'Movement_getExplanationTitle',
+         'Movement_getMirrorSectionTitle',
+         'debit_price', 'credit_price', 'running_total_price'])
+
+    self.checkLineProperties(data_line_list[0],
+                             debit_price=0,
+                             credit_price=1500,
+                             running_total_price=-1500)
+
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit_price=0, credit_price=1500)
+
+  def testGeneralLedgerAnalyticsShown(self):
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 12, 31)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = False
+
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewGeneralLedgerReport')
+    self.assertEquals(3, len(report_section_list))
+
+    line_list = self.getListBoxLineList(report_section_list[1])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+    # FIXME: order of columns is inconsistant in GL and Account Statement
+    self.assertEquals(['Movement_getSpecificReference',
+        'Movement_getExplanationTitle', 'date',
+        'Movement_getExplanationTranslatedPortalType',
+        'Movement_getExplanationReference', 'Movement_getMirrorSectionTitle',
+         'project', 'function', 'product_line_translated_title',
+        'debit_price', 'credit_price', 'running_total_price'],
+        data_line_list[0].column_id_list)
+
+    self.checkLineProperties(data_line_list[0],
+                             project='Project 1',
+                             function='a',
+                             product_line_translated_title='pl1',
+                             debit_price=0,
+                             credit_price=300,
+                             running_total_price=-300)
+    self.checkLineProperties(data_line_list[1],
+                             project='Project 1',
+                             function='b',
+                             product_line_translated_title='pl1',
+                             debit_price=0,
+                             credit_price=500,
+                             running_total_price=-800)
+    self.checkLineProperties(data_line_list[2],
+                             project='Project 2',
+                             function='b',
+                             product_line_translated_title=None,
+                             debit_price=0,
+                             credit_price=700,
+                             running_total_price=-1500)
+
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit_price=0, credit_price=1500)
+
+    line_list = self.getListBoxLineList(report_section_list[2])
+    
+    data_line_list = [l for l in line_list if l.isDataLine()]
+    self.assertEquals(1, len(data_line_list))
+    self.checkLineProperties(data_line_list[0],
+                             debit_price=1500,
+                             credit_price=1500,)
+
+  def testGeneralLedgerAnalyticsHidden(self):
+    request_form = self.portal.REQUEST.form
+    request_form['from_date'] = DateTime(2006, 1, 1)
+    request_form['at_date'] = DateTime(2006, 12, 31)
+    request_form['section_category'] = 'group/demo_group'
+    request_form['section_category_strict'] = False
+    request_form['simulation_state'] = ['delivered']
+    request_form['hide_analytic'] = True
+
+    report_section_list = self.getReportSectionList(
+                                    self.portal.accounting_module,
+                                    'AccountModule_viewGeneralLedgerReport')
+    self.assertEquals(3, 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(['Movement_getSpecificReference',
+        'Movement_getExplanationTitle', 'date',
+        'Movement_getExplanationTranslatedPortalType',
+        'Movement_getExplanationReference', 'Movement_getMirrorSectionTitle',
+        'debit_price', 'credit_price', 'running_total_price'],
+        data_line_list[0].column_id_list)
+    # receivable account
+    self.assertEquals(1, len(data_line_list))
+    self.checkLineProperties(data_line_list[0],
+                             debit_price=1500,
+                             credit_price=0,
+                             running_total_price=1500)
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit_price=1500, credit_price=0)
+    # good sales account
+    line_list = self.getListBoxLineList(report_section_list[1])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+    self.assertEquals(1, len(data_line_list))
+    self.checkLineProperties(data_line_list[0],
+                             debit_price=0,
+                             credit_price=1500,
+                             running_total_price=-1500)
+    stat_line = line_list[-1]
+    self.failUnless(line_list[-1].isStatLine())
+    self.checkLineProperties(line_list[-1], debit_price=0, credit_price=1500)
+    # summary
+    line_list = self.getListBoxLineList(report_section_list[2])
+    data_line_list = [l for l in line_list if l.isDataLine()]
+    self.assertEquals(1, len(data_line_list))
+    self.checkLineProperties(data_line_list[0],
+                             debit_price=1500,
+                             credit_price=1500,)
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestAccountingReports))
+  suite.addTest(unittest.makeSuite(TestAccountingReportsWithAnalytic))
   return suite
 




More information about the Erp5-report mailing list