From 5175279f2e08cb416495ea4ef17fd1e1c92a9bd5 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Tue, 1 Jun 2004 16:15:28 +0000 Subject: [PATCH] Add more tests. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@944 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/Coramy/tests/testFusion.py | 148 +++++++++++++++++++++-------- 1 file changed, 106 insertions(+), 42 deletions(-) diff --git a/product/Coramy/tests/testFusion.py b/product/Coramy/tests/testFusion.py index b8f1243412..b8eff2fced 100755 --- a/product/Coramy/tests/testFusion.py +++ b/product/Coramy/tests/testFusion.py @@ -64,7 +64,7 @@ class TestFusion(ERP5TypeTestCase): - livraison_fabrication (Production Packing List) - rapport_fabrication (Production Report) """ - run_all_test = 1 + run_all_test = 0 # Various variables used for this test customer_organisation_id = 'nexedi' customer_person_id = 'yo' @@ -101,11 +101,29 @@ class TestFusion(ERP5TypeTestCase): def getOrganisationModule(self): return getattr(self.getPortal(), 'organisation', None) + def getSalesOrderModule(self): + return getattr(self.getPortal(), 'commande_vente', None) + def getSalesPackingListModule(self): return getattr(self.getPortal(), 'livraison_vente', None) - def getSalesOrderModule(self): - return getattr(self.getPortal(), 'commande_vente', None) + def getSaleInvoiceModule(self): + return getattr(self.getPortal(), 'facture_vente', None) + + def getPurchaseOrderModule(self): + return getattr(self.getPortal(), 'commande_achat', None) + + def getPurchasePackingListModule(self): + return getattr(self.getPortal(), 'livraison_achat', None) + + def getProductionOrderModule(self): + return getattr(self.getPortal(), 'ordre_fabrication', None) + + def getProductionPackingListModule(self): + return getattr(self.getPortal(), 'livraison_fabrication', None) + + def getProductionReportModule(self): + return getattr(self.getPortal(), 'rapport_fabrication', None) def afterSetUp(self, quiet=1, run=1): self.login() @@ -116,6 +134,10 @@ class TestFusion(ERP5TypeTestCase): portal.portal_categories.immediateReindexObject() for o in portal.portal_categories.objectValues(): o.recursiveImmediateReindexObject() + portal.portal_simulation.immediateReindexObject() + for o in portal.portal_simulation.objectValues(): + o.recursiveImmediateReindexObject() + portal.portal_rules.immediateReindexObject() # Create organisations. portal.portal_types.constructContent(type_name='Organisation Module', container=portal, @@ -258,6 +280,7 @@ class TestFusion(ERP5TypeTestCase): def setCell(self, line, category_list, **kw): category_list = list(category_list) category_list.sort() + LOG('setCell', 0, 'line = %s, line.contentValues() = %s, line.objectIds() = %s' % (repr(line), repr(line.contentValues()), repr(list(line.objectIds())))) for cell in line.contentValues(): predicate_value_list = cell.getPredicateValueList() predicate_value_list.sort() @@ -265,98 +288,101 @@ class TestFusion(ERP5TypeTestCase): cell.edit(**kw) return cell - def makeSalesPackingLists(self): - module = self.getSalesPackingListModule() + def makeDeliveries(self, module, delivery_type, delivery_line_type): for id in ('1', '2', '3'): if module.hasContent(id): module.deleteContent(id) - pl1 = module.newContent(id='1', portal_type='Sales Packing List') - pl1_line1 = pl1.newContent(id='1', portal_type='Sales Packing List Line', + d1 = module.newContent(id='1', portal_type=delivery_type) + d1_line1 = d1.newContent(id='1', portal_type=delivery_line_type, resource='modele/004C401', price=2.0, quantity=1.0, target_quantity=1.0) - pl1_line2 = pl1.newContent(id='2', portal_type='Sales Packing List Line', + d1_line2 = d1.newContent(id='2', portal_type=delivery_line_type, resource='modele/060E404', variation_base_category_list = ['morphologie', 'taille', 'coloris'], variation_category_list = ['morphologie/modele/060E404/C', 'morphologie/modele/060E404/B', 'taille/adulte/38', 'taille/adulte/40', 'taille/adulte/42', 'coloris/modele/060E404/Violet_rose', 'coloris/modele/060E404/noir_gris']) - cell = self.setCell(pl1_line2, + cell = self.setCell(d1_line2, ('coloris/modele/060E404/Violet_rose', 'morphologie/modele/060E404/C', 'taille/adulte/38'), price = 5.0, quantity = 1.0, target_quantity = 1.0) self.assertNotEqual(cell, None) - cell = self.setCell(pl1_line2, + cell = self.setCell(d1_line2, ('coloris/modele/060E404/noir_gris', 'morphologie/modele/060E404/C', 'taille/adulte/40'), price = 5.0, quantity = 2.0, target_quantity = 2.0) self.assertNotEqual(cell, None) - pl1_line2.recursiveImmediateReindexObject() - self.assertAlmostEqual(pl1_line2.getTotalPrice(), 5.0 * (1.0 + 2.0)) - self.assertAlmostEqual(pl1_line2.getTotalQuantity(), 1.0 + 2.0) - pl1_line3 = pl1.newContent(id='3', portal_type='Sales Packing List Line', + d1_line2.recursiveImmediateReindexObject() + self.assertAlmostEqual(d1_line2.getTotalPrice(), 5.0 * (1.0 + 2.0)) + self.assertAlmostEqual(d1_line2.getTotalQuantity(), 1.0 + 2.0) + d1_line3 = d1.newContent(id='3', portal_type=delivery_line_type, resource='modele/060E404', price=0.0, variation_base_category_list = ['taille', 'coloris'], variation_category_list = ['coloris/modele/060E404/Violet_rose', 'taille/adulte/38', 'taille/adulte/40', 'taille/adulte/42', 'coloris/modele/060E404/noir_gris']) - cell = self.setCell(pl1_line3, + cell = self.setCell(d1_line3, ('coloris/modele/060E404/Violet_rose', 'taille/adulte/40'), price = 3.0, quantity = 3.0, target_quantity = 3.0) self.assertNotEqual(cell, None) - cell = self.setCell(pl1_line3, + cell = self.setCell(d1_line3, ('coloris/modele/060E404/noir_gris', 'taille/adulte/42'), price = 4.0, quantity = 5.0, target_quantity = 5.0) self.assertNotEqual(cell, None) - pl1.recursiveImmediateReindexObject() + d1.recursiveImmediateReindexObject() + LOG('testFusion _makeDeliveries', 0, 'cell = %s, cell.getVariationCategoryList() = %s, cell.showDict() = %s' % (repr(cell), str(cell.getVariationCategoryList()), repr(cell.showDict()))) - pl2 = module.newContent(id='2', portal_type='Sales Packing List') - pl2_line1 = pl2.newContent(id='1', portal_type='Sales Packing List Line', + d2 = module.newContent(id='2', portal_type=delivery_type) + d2_line1 = d2.newContent(id='1', portal_type=delivery_line_type, resource='modele/004C401', price=7.0, quantity=2.0, target_quantity=2.0) - pl2_line2 = pl2.newContent(id='2', portal_type='Sales Packing List Line', + d2_line2 = d2.newContent(id='2', portal_type=delivery_line_type, resource='modele/060E404', variation_base_category_list = ['morphologie', 'taille', 'coloris'], variation_category_list = ['morphologie/modele/060E404/C', 'morphologie/modele/060E404/B', 'taille/adulte/36', 'taille/adulte/38', 'taille/adulte/40', 'coloris/modele/060E404/Violet_rose', 'coloris/modele/060E404/noir_gris']) - cell = self.setCell(pl2_line2, + cell = self.setCell(d2_line2, ('coloris/modele/060E404/Violet_rose', 'morphologie/modele/060E404/C', 'taille/adulte/36'), price = 5.0, quantity = 1.0, target_quantity = 1.0) self.assertNotEqual(cell, None) - cell = self.setCell(pl2_line2, + cell = self.setCell(d2_line2, ('coloris/modele/060E404/noir_gris', 'morphologie/modele/060E404/C', 'taille/adulte/40'), price = 5.0, quantity = 2.0, target_quantity = 2.0) self.assertNotEqual(cell, None) - pl2.recursiveImmediateReindexObject() + d2_line2.recursiveImmediateReindexObject() + self.assertAlmostEqual(d2_line2.getTotalPrice(), 5.0 * (1.0 + 2.0)) + self.assertAlmostEqual(d2_line2.getTotalQuantity(), 1.0 + 2.0) + d2.recursiveImmediateReindexObject() - pl3 = module.newContent(id='3', portal_type='Sales Packing List') - pl3_line1 = pl3.newContent(id='1', portal_type='Sales Packing List Line', + d3 = module.newContent(id='3', portal_type=delivery_type) + d3_line1 = d3.newContent(id='1', portal_type=delivery_line_type, resource='modele/060E404', variation_base_category_list = ['morphologie', 'taille', 'coloris'], variation_category_list = ['morphologie/modele/060E404/C', 'morphologie/modele/060E404/B', 'taille/adulte/44', 'coloris/modele/060E404/Violet_rose', 'coloris/modele/060E404/noir_gris']) - cell = self.setCell(pl3_line1, + cell = self.setCell(d3_line1, ('coloris/modele/060E404/Violet_rose', 'morphologie/modele/060E404/C', 'taille/adulte/44'), price = 3.0, quantity = 3.0, target_quantity = 3.0) self.assertNotEqual(cell, None) - pl3.recursiveImmediateReindexObject() + d3.recursiveImmediateReindexObject() - def _testSalesPackingLists(self, pl1, pl2, pl3): - self.assertEqual(len(pl1.objectIds()), 3) - self.assertEqual(pl2.getSimulationState(), 'cancelled') - self.assertEqual(pl3.getSimulationState(), 'cancelled') + def _checkDeliveries(self, d1, d2, d3): + self.assertEqual(len(d1.objectIds()), 3) + self.assertEqual(d2.getSimulationState(), 'cancelled') + self.assertEqual(d3.getSimulationState(), 'cancelled') line1 = line2 = line3 = None - for line in pl1.contentValues(): + for line in d1.contentValues(): if line.getResource() == 'modele/004C401': line1 = line elif line.getResource() == 'modele/060E404': @@ -364,6 +390,9 @@ class TestFusion(ERP5TypeTestCase): line2 = line else: line3 = line + LOG('_checkDeliveries', 0, 'line1 = %s, line1.objectIds() = %s' % (repr(line1), repr(list(line1.objectIds())))) + LOG('_checkDeliveries', 0, 'line2 = %s, line2.objectIds() = %s' % (repr(line2), repr(list(line2.objectIds())))) + LOG('_checkDeliveries', 0, 'line3 = %s, line3.objectIds() = %s' % (repr(line3), repr(list(line3.objectIds())))) self.assertNotEqual(line1, None) self.assertAlmostEqual(line1.getTotalQuantity(), 1.0 + 2.0) self.assertAlmostEqual(line1.getTotalPrice(), 2.0 * 1.0 + 7.0 * 2.0) @@ -383,30 +412,65 @@ class TestFusion(ERP5TypeTestCase): self.assertEqual(category_list, ['coloris/modele/060E404/Violet_rose', 'coloris/modele/060E404/noir_gris', 'taille/adulte/38', 'taille/adulte/40', 'taille/adulte/42']) #self.assertAlmostEqual(line3.getPrice(), line3.getTotalPrice() / line3.getTotalQuantity()) - def test_03_SalesPackingLists(self, quiet=0, run=run_all_test): - # Test mergeDeliveryList with Sales Packing Lists + def _testDeliveries(self, module, delivery_type, delivery_line_type, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Deliveries. This is shared among various deliveries. if not run: return if not quiet: - message = '\nSales Packing Lists ' + message = '\n%s ' % delivery_type ZopeTestCase._print(message) LOG('Testing... ',0,message) portal_simulation = self.getSimulationTool() - module = self.getSalesPackingListModule() - self.makeSalesPackingLists() + self.makeDeliveries(module, delivery_type, delivery_line_type) pl = portal_simulation.mergeDeliveryList([module['1'], module['2'], module['3']]) pl.recursiveImmediateReindexObject() - self._testSalesPackingLists(pl, module['2'], module['3']) + self._checkDeliveries(module['1'], module['2'], module['3']) - self.makeSalesPackingLists() + self.makeDeliveries(module, delivery_type, delivery_line_type) pl = portal_simulation.mergeDeliveryList([module['2'], module['3'], module['1']]) pl.recursiveImmediateReindexObject() - self._testSalesPackingLists(pl, module['3'], module['1']) + self._checkDeliveries(module['2'], module['3'], module['1']) - self.makeSalesPackingLists() + self.makeDeliveries(module, delivery_type, delivery_line_type) pl = portal_simulation.mergeDeliveryList([module['3'], module['1'], module['2']]) pl.recursiveImmediateReindexObject() - self._testSalesPackingLists(pl, module['1'], module['2']) + self._checkDeliveries(module['3'], module['1'], module['2']) + + #def test_03_SalesOrders(self, quiet=0, run=run_all_test): + def test_03_SalesOrders(self, quiet=0, run=1): + # Test mergeDeliveryList with Sales Orders + module = self.getSalesOrderModule() + self._testDeliveries(module, 'Sales Order', 'Sales Order Line', quiet=quiet, run=run) + + def test_04_SalesPackingLists(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Sales Packing Lists + module = self.getSalesPackingListModule() + self._testDeliveries(module, 'Sales Packing List', 'Sales Packing List Line', quiet=quiet, run=run) + + def test_06_PurchaseOrders(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Purchase Orders + module = self.getPurchaseOrderModule() + self._testDeliveries(module, 'Purchase Order', 'Purchase Order Line', quiet=quiet, run=run) + + def test_07_PurchasePackingLists(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Purchase Packing Lists + module = self.getPurchasePackingListModule() + self._testDeliveries(module, 'Purchase Packing List', 'Purchase Packing List Line', quiet=quiet, run=run) + + def test_08_ProductionOrders(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Production Orders + module = self.getProductionOrderModule() + self._testDeliveries(module, 'Production Order', 'Production Order Line', quiet=quiet, run=run) + + def test_09_ProductionPackingLists(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Production Packing Lists + module = self.getProductionPackingListModule() + self._testDeliveries(module, 'Production Packing List', 'Production Packing List Line', quiet=quiet, run=run) + + def test_10_ProductionReports(self, quiet=0, run=run_all_test): + # Test mergeDeliveryList with Production Reports + module = self.getProductionReportModule() + self._testDeliveries(module, 'Production Report', 'Production Report Component', quiet=quiet, run=run) if __name__ == '__main__': -- 2.30.9