From dcfdd4103ea5b8082edb7e17d8ed361b6bb09d96 Mon Sep 17 00:00:00 2001 From: Georgios Dagkakis <georgios.dagkakis@nexedi.com> Date: Fri, 28 Oct 2016 09:15:05 +0000 Subject: [PATCH] testTradeReports: split tests so that only one report is run/checked in each To make sure request is different and reports do not affect one another --- product/ERP5/tests/testTradeReports.py | 230 +++++++++++++++++-------- 1 file changed, 160 insertions(+), 70 deletions(-) diff --git a/product/ERP5/tests/testTradeReports.py b/product/ERP5/tests/testTradeReports.py index ba43da5b02..30d94ceed7 100644 --- a/product/ERP5/tests/testTradeReports.py +++ b/product/ERP5/tests/testTradeReports.py @@ -225,11 +225,8 @@ class TestTradeReports(ERP5ReportTestCase): return sale_order - def testSaleOrderReport(self): - """ - Sale order report. - """ - # Create sales orders + def _createSaleOrdersForSaleOrderReportTest(self): + # Create sales orders to be used in testSaleOrderReportXXX tests first = self._makeOneSaleOrder( title='SO 1', destination_value=self.organisation_module.Organisation_1, @@ -281,11 +278,13 @@ class TestTradeReports(ERP5ReportTestCase): self.tic() - + def testSaleOrderReportBefore2006(self): + """ + before 2006 + """ + self._createSaleOrdersForSaleOrderReportTest() request = self.portal.REQUEST - # - # Before 2006 - # + request['from_date'] = DateTime(2004, 1, 1) request['at_date'] = DateTime(2005, 1, 1) request['aggregation_level'] = "year" @@ -305,11 +304,20 @@ class TestTradeReports(ERP5ReportTestCase): data_line_list = [l for l in line_list if l.isDataLine()] self.assertEqual(0, len(data_line_list)) - # - # Year 2005 + 2006, first document for g2 - # + def testSaleOrderReport2005_2006_g2(self): + """ + Year 2005 + 2006, first document for g2 + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST + request['from_date'] = DateTime(2005, 2, 2) request['at_date'] = DateTime("2006-12-31") + request['aggregation_level'] = "year" + request['group_by'] = "both" + request['simulation_state'] = ['cancelled', 'draft'] + request['section_category'] = 'group/g2' + parameter_dict, stat_columns, selection_columns = self.sale_order_module.OrderModule_getOrderReportParameterDict() active_process = self.sale_order_module.OrderModule_activateGetOrderStatList(tag="unit_test", **parameter_dict) request['active_process'] = active_process.getPath() @@ -390,12 +398,23 @@ class TestTradeReports(ERP5ReportTestCase): self.checkLineProperties(stat_line_list[0],**d) + def testSaleOrderReport2005_2006_g2_check_at_date_inclusive(self): + """ + This is exactly the same as testSaleOrderReport2005_2006_g2, + but at_date is set as 02/02/2006 + so we check that first sale_order with start_date=DateTime(2006, 2, 2, 10) + is counted, i.e. at_date is inclusive. + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST - # This is exactly the same as above, by at_date is as 02/02/2006 - # so we check that first sale_order with start_date=DateTime(2006, 2, 2, 10) - # is counted, i.e. at_date is inclusive. request['from_date'] = DateTime(2005, 2, 2) request['at_date'] = DateTime(2006, 2, 2) + request['aggregation_level'] = "year" + request['group_by'] = "both" + request['simulation_state'] = ['cancelled', 'draft'] + request['section_category'] = 'group/g2' + parameter_dict, stat_columns, selection_columns = self.sale_order_module.OrderModule_getOrderReportParameterDict() active_process = self.sale_order_module.OrderModule_activateGetOrderStatList(tag="unit_test", **parameter_dict) request['active_process'] = active_process.getPath() @@ -475,14 +494,18 @@ class TestTradeReports(ERP5ReportTestCase): 'total quantity': None} self.checkLineProperties(stat_line_list[0],**d) + def testSaleOrderReport2005_2006_g1(self): + """ + Year 2005 + 2006, first document for g1 + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST - - - # - # Year 2005 + 2006, first document for g1 - # request['from_date'] = DateTime(2005, 2, 2) request['at_date'] = DateTime("2006-12-31") + request['aggregation_level'] = "year" + request['group_by'] = "both" + request['simulation_state'] = ['cancelled', 'draft'] request['section_category'] = 'group/g1' parameter_dict, stat_columns, selection_columns = self.sale_order_module.OrderModule_getOrderReportParameterDict() active_process = self.sale_order_module.OrderModule_activateGetOrderStatList(tag="unit_test", **parameter_dict) @@ -551,12 +574,17 @@ class TestTradeReports(ERP5ReportTestCase): 'total quantity': None} self.checkLineProperties(stat_line_list[0],**d) + def testSaleOrderReport2006_2007_g1(self): + """ + Year 2006 + 2007, only draft documents and one group + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST - # - # Year 2006 + 2007, only draft documents and one group - # request['from_date'] = DateTime(2006, 2, 2) request['at_date'] = DateTime(2007, 12, 31) + request['aggregation_level'] = "year" + request['group_by'] = "both" request['simulation_state'] = ['draft',] request['section_category'] = 'group/g2' parameter_dict, stat_columns, selection_columns = self.sale_order_module.OrderModule_getOrderReportParameterDict() @@ -621,13 +649,20 @@ class TestTradeReports(ERP5ReportTestCase): 'total quantity': None} self.checkLineProperties(stat_line_list[0],**d) - # weekly aggregation level - # first for g2 + def testSaleOrderReport_weekly_aggregation_level_g2(self): + """ + weekly aggregation level for g2 + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST + request['from_date'] = DateTime(2006, 2, 1) request['at_date'] = DateTime(2006, 2, 28) request['aggregation_level'] = "week" request['group_by'] = "client" request['simulation_state'] = ['cancelled', 'draft'] + request['section_category'] = 'group/g2' + parameter_dict, stat_columns, selection_columns = self.sale_order_module.OrderModule_getOrderReportParameterDict() active_process = self.sale_order_module.OrderModule_activateGetOrderStatList(tag="unit_test", **parameter_dict) request['active_process'] = active_process.getPath() @@ -657,8 +692,13 @@ class TestTradeReports(ERP5ReportTestCase): 'client': 'Total', 'total amount': 3*11 + 7*6}) - # weekly aggregation level - # first for g2 + def testSaleOrderReport_weekly_aggregation_level_g1(self): + """ + weekly aggregation level for g1 + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST + request['from_date'] = DateTime(2006, 2, 1) request['at_date'] = DateTime(2006, 2, 28) request['aggregation_level'] = "week" @@ -695,10 +735,13 @@ class TestTradeReports(ERP5ReportTestCase): 'client': 'Total', 'total amount': 5*3 + 6}) + def testSaleOrderReport_dates_not_specified_g2(self): + """ + dates not specified -> they should be guessed + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST - - - # dates not specified -> they should be guessed request['from_date'] = None request['at_date'] = None request['simulation_state'] = ['draft',] @@ -767,7 +810,13 @@ class TestTradeReports(ERP5ReportTestCase): 'total quantity': None} self.checkLineProperties(stat_line_list[0],**d) - # section category set, with no matching organisations + def testSaleOrderReport_section_category_set(self): + """ + section category set, with no matching organisations + """ + self._createSaleOrdersForSaleOrderReportTest() + request = self.portal.REQUEST + request['simulation_state'] = ['draft',] request['aggregation_level'] = "year" request['group_by'] = "both" @@ -798,10 +847,8 @@ class TestTradeReports(ERP5ReportTestCase): 'total quantity': None} self.checkLineProperties(stat_line_list[0],**d) - def testStockReport(self): - """ - Stock report. - """ + def _createInventoryForStockReportTest(self): + # Create inventories # Create inventories first = self._makeOneInventory( title='Inventory 1', @@ -875,10 +922,13 @@ class TestTradeReports(ERP5ReportTestCase): self.tic() + def testStockReport_old_date(self): + """ + Old date + """ + self._createInventoryForStockReportTest() + request = self.portal.REQUEST - ################################ - # Old date - ################################ request.form['at_date'] = DateTime(2005, 1, 1) request.form['node_category'] = 'site/demo_site_A' @@ -888,9 +938,14 @@ class TestTradeReports(ERP5ReportTestCase): data_line_list = [l for l in line_list if l.isDataLine()] self.assertEqual(0, len(data_line_list)) - ################################ - # Middle date - ################################ + + def testStockReport_middle_date(self): + """ + Middle date + """ + self._createInventoryForStockReportTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2006, 4, 4) request.form['node_category'] = 'site/demo_site_A' @@ -916,9 +971,13 @@ class TestTradeReports(ERP5ReportTestCase): inventory=11, quantity_unit='G') - ################################ - # Futur date - ################################ + def testStockReport_future_date(self): + """ + Future date + """ + self._createInventoryForStockReportTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' @@ -958,10 +1017,7 @@ class TestTradeReports(ERP5ReportTestCase): inventory=66, quantity_unit='') - def testStockReportWithPositiveOrNegativeOrZeroStock(self): - """ - Stock report. - """ + def _createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest(self): # Create inventories first = self._makeOneInventory( title='Inventory 1', @@ -1034,10 +1090,13 @@ class TestTradeReports(ERP5ReportTestCase): self.tic() + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_positive_stock(self): + """ + Don't Display Positive Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + request = self.portal.REQUEST - ################################ - # Don't Display Positive Stock - ################################ request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 1 @@ -1064,9 +1123,15 @@ class TestTradeReports(ERP5ReportTestCase): variation_category_item_list=[], inventory=0, quantity_unit='G') - ################################ - # Don't Display Negative Stock - ################################ + + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_negative_stock(self): + """ + Don't Display Negative Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + + request = self.portal.REQUEST + request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 0 @@ -1101,9 +1166,14 @@ class TestTradeReports(ERP5ReportTestCase): variation_category_item_list=['colour2'], inventory=66, quantity_unit='') - ################################ - # Don't Display Zero Stock - ################################ + + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_zero_stock(self): + """ + Don't Display Zero Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 0 @@ -1139,11 +1209,14 @@ class TestTradeReports(ERP5ReportTestCase): inventory=66, quantity_unit='') + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_positive_and_negative_stock(self): + """ + Don't Display Positive Stock + And Negative Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() - ################################ - # Don't Display Positive Stock - # And Negative Stock - ################################ + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 1 @@ -1164,9 +1237,15 @@ class TestTradeReports(ERP5ReportTestCase): variation_category_item_list=[], inventory=0, quantity_unit='G') - ######################################## - # Don't Display Positive And Zero Stock - ######################################## + + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_positive_and_zero_stock(self): + """ + Don't Display Positive + And Zero Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 1 @@ -1187,9 +1266,15 @@ class TestTradeReports(ERP5ReportTestCase): variation_category_item_list=[], inventory=-33, quantity_unit='Kg') - ######################################## - # Don't Display Negative And Zero Stock - ######################################## + + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_negative_and_zero_stock(self): + """ + Don't Display Negative + And Zero Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 0 @@ -1217,9 +1302,14 @@ class TestTradeReports(ERP5ReportTestCase): variation_category_item_list=['colour2'], inventory=66, quantity_unit='') - ################################################ - # Don't Display Positive,Negative And Zero Stock - ################################################ + + def testStockReportWithPositiveOrNegativeOrZeroStock_dont_display_positive_negative_and_zero_stock(self): + """ + Don't Display Positive,Negative And Zero Stock + """ + self._createInventoryForStockReportWithPositiveOrNegativeOrZeroStockTest() + + request = self.portal.REQUEST request.form['at_date'] = DateTime(2008, 4, 4) request.form['node_category'] = 'site/demo_site_A' request.form['positive_stock'] = 1 -- 2.30.9