diff --git a/product/ERP5/tests/testAccountingRules.py b/product/ERP5/tests/testAccountingRules.py index b54892986a681e9cad2f3c6675376ab53b0430bc..e6ba422780960f290eb3e2c7780290f23e59eb1a 100644 --- a/product/ERP5/tests/testAccountingRules.py +++ b/product/ERP5/tests/testAccountingRules.py @@ -52,6 +52,22 @@ from AccessControl.SecurityManagement import newSecurityManager from zLOG import LOG, INFO from DateTime import DateTime + +class PurchaseInvoiceTest: + invoice_transaction_portal_type = 'Sale Invoice Transaction' + invoice_transaction_line_portal_type \ + = "Sale Invoice Transaction Line" + invoice_line_portal_type = "Invoice Line" + invoice_cell_portal_type = "Invoice Cell" + +class SaleInvoiceTest: + invoice_transaction_portal_type = 'Sale Invoice Transaction' + invoice_transaction_line_portal_type \ + = "Sale Invoice Transaction Line" + invoice_line_portal_type = "Invoice Line" + invoice_cell_portal_type = "Invoice Cell" + + class TestAccountingRulesMixin: # define portal_types account_module_portal_type = "Account Module" @@ -66,16 +82,9 @@ class TestAccountingRulesMixin: applied_rule_portal_type = "Applied Rule" simulation_movement_portal_type = "Simulation Movement" accounting_rule_cell_portal_type = "Accounting Rule Cell" - sale_invoice_transaction_portal_type = "Sale Invoice Transaction" - sale_invoice_transaction_line_portal_type \ - = "Sale Invoice Transaction Line" - sale_invoice_line_portal_type = "Invoice Line" - sale_invoice_cell_portal_type = "Invoice Cell" invoice_transaction_rule_portal_type \ = "Invoice Transaction Rule" - purchase_invoice_transaction_portal_type \ - = "Purchase Invoice Transaction" payment_transaction_portal_type = "Payment Transaction" def getBusinessTemplateList(self): @@ -108,11 +117,8 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): invoice. """ - RUN_ALL_TESTS = 1 QUIET = 1 - RUN_BROKEN_TESTS = os.getenv('RUN_BROKEN_TESTS', 0) - def getTitle(self): return "Accounting Rules" @@ -494,7 +500,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): empty_invoice = self.getAccountingModule().newContent( id = 'empty_invoice', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), start_date = DateTime(2004, 01, 01), @@ -522,7 +528,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): simple_invoice = self.getAccountingModule().newContent( id = 'simple_invoice', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), start_date = DateTime(2004, 01, 01), @@ -536,7 +542,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): resource = product_notebook.getRelativeUrl(), quantity = 10, price = 10, - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) self.assertEqual(invoice_line.getTotalPrice(), 100) @@ -558,7 +564,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): simple_invoice = self.getAccountingModule().newContent( id = 'other_simple_invoice', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), start_date = DateTime(2004, 01, 01), @@ -572,7 +578,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): resource = product_notebook.getRelativeUrl(), quantity = 123, price = 456, - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) sequence.edit( simple_invoice = simple_invoice, @@ -590,7 +596,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): invoice_line = invoice.newContent( id = 'invoice_line_%s'%(int(random.random()*1000)), - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) invoice_line.edit( resource = product_notebook.getRelativeUrl(), @@ -648,7 +654,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): simple_invoice = self.getAccountingModule().newContent( id = 'simple_invoice_two_lines', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), start_date = DateTime(2004, 01, 01), @@ -662,13 +668,13 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): resource = product_notebook.getRelativeUrl(), quantity = 5, price = 10, - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) invoice_line2 = simple_invoice.newContent( id = 'invoice_line2', REsource = product_notebook.getRelativeUrl(), quantity = 5, price = 10, - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) self.assertEqual(invoice_line1.getTotalPrice() + invoice_line2.getTotalPrice(), 100) @@ -691,7 +697,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): simple_invoice = self.getAccountingModule().newContent( id = 'simple_invoice_two_cells', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), start_date = DateTime(2004, 01, 01), @@ -703,7 +709,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): invoice_line = simple_invoice.newContent( id = 'invoice_line', resource = product_notebook.getRelativeUrl(), - portal_type = self.sale_invoice_line_portal_type) + portal_type = self.invoice_line_portal_type) sequence.edit( simple_invoice = simple_invoice, @@ -732,7 +738,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): quantity = 5 for cell_key in cell_key_list: cell = invoice_line.newCell(base_id = base_id, - portal_type = self.sale_invoice_cell_portal_type, *cell_key) + portal_type = self.invoice_cell_portal_type, *cell_key) cell.edit(mapped_value_property_list = ['price','quantity'], price = price, quantity = quantity, predicate_category_list = cell_key, @@ -765,7 +771,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): multi_line_invoice = self.getAccountingModule().newContent( id = 'multi_line_invoice', - portal_type = self.sale_invoice_transaction_portal_type, + portal_type = self.invoice_transaction_portal_type, resource = currency.getRelativeUrl(), price_currency = currency.getRelativeUrl(), stop_date = DateTime(2004, 01, 01), @@ -776,14 +782,14 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): ) notebook_line = multi_line_invoice.newContent( - portal_type = self.sale_invoice_line_portal_type, + portal_type = self.invoice_line_portal_type, id = 'notebook_line', resource = product_notebook.getRelativeUrl(), quantity = 10, price = 10) barebone_line = multi_line_invoice.newContent( - portal_type = self.sale_invoice_line_portal_type, + portal_type = self.invoice_line_portal_type, id = 'barebone_line', resource = product_barebone.getRelativeUrl(), quantity = 10, @@ -1030,7 +1036,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): for simulation_movement in simulation_movement_list : self.assertNotEquals(simulation_movement.getOrderValue(), None) if simulation_movement.getOrderValue().getPortalType() == \ - self.sale_invoice_line_portal_type : + self.invoice_line_portal_type : invoice_line_simulation_movement_list.append(simulation_movement) self.assertEqual( len(invoice_line_simulation_movement_list), 1) @@ -1223,7 +1229,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): 'invoice_transaction_rule_cell') invoice_transaction_line_list = invoice.contentValues( filter = {'portal_type': - self.sale_invoice_transaction_line_portal_type}) + self.invoice_transaction_line_portal_type}) self.assertEquals( len(invoice_transaction_line_list), len(simulation_movement_list)) @@ -1273,7 +1279,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): invoice_lines = sequence.get('invoice_lines') invoice_transaction_line_list = invoice.contentValues( - filter = {'portal_type': self.sale_invoice_transaction_line_portal_type}) + filter = {'portal_type': self.invoice_transaction_line_portal_type}) self.assertEquals(len(invoice_transaction_line_list), 3) accounting_lines_layout = { @@ -1317,7 +1323,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): invoice_lines = sequence.get('invoice_lines') invoice_transaction_line_list = invoice.contentValues( - filter = {'portal_type': self.sale_invoice_transaction_line_portal_type}) + filter = {'portal_type': self.invoice_transaction_line_portal_type}) self.assertEquals(len(invoice_transaction_line_list), 4) accounting_lines_layout = { @@ -1346,7 +1352,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): transaction_dict = {} for accounting_line in transaction.objectValues() : if accounting_line.getPortalType() != \ - self.sale_invoice_line_portal_type : + self.invoice_line_portal_type : transaction_dict[accounting_line.getId()] = \ accounting_line.getTotalQuantity() accounting_lines_dict[transaction.getId()] = transaction_dict @@ -1370,7 +1376,7 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): transaction_dict = accounting_lines_dict[transaction.getId()] for accounting_line in transaction.objectValues() : if accounting_line.getPortalType() != \ - self.sale_invoice_line_portal_type : + self.invoice_line_portal_type : self.assertEquals( transaction_dict[accounting_line.getId()], accounting_line.getTotalQuantity()) @@ -1819,8 +1825,17 @@ class TestAccountingRules(TestAccountingRulesMixin, ERP5TypeTestCase): # quantity from sum of receivable movement # link to sale invoice + +class TestSaleAccountingRules(SaleInvoiceTest, TestAccountingRules): + pass + + +class TestPurchaseAccountingRules(PurchaseInvoiceTest, TestAccountingRules): + pass + + def test_suite(): suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestAccountingRules)) + suite.addTest(unittest.makeSuite(TestSaleAccountingRules)) + suite.addTest(unittest.makeSuite(TestPurchaseAccountingRules)) return suite -