From 228e687ac374299c1003a9e2d634efe49a12fb36 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Mon, 15 Dec 2014 16:53:24 +0100 Subject: [PATCH] Use the new API instead of mocks for FixedFeesTester It will be easier to write additional tests --- .../tests/test_fees_generation.py | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/account_credit_control_dunning_fees/tests/test_fees_generation.py b/account_credit_control_dunning_fees/tests/test_fees_generation.py index 031edc6be..16c0627e9 100644 --- a/account_credit_control_dunning_fees/tests/test_fees_generation.py +++ b/account_credit_control_dunning_fees/tests/test_fees_generation.py @@ -18,7 +18,6 @@ # along with this program. If not, see . # ############################################################################## -from mock import MagicMock from openerp.tests import common @@ -35,16 +34,25 @@ class FixedFeesTester(common.TransactionCase): self.usd = self.currency_model.search([('name', '=', 'USD')]) self.assertTrue(self.usd) - self.euro_level = MagicMock(name='Euro policy level') - self.euro_level.dunning_fixed_amount = 5.0 - self.euro_level.dunning_currency_id = self.euro - self.euro_level.dunning_type = 'fixed' + self.company = self.browse_ref('base.main_company') + self.company.currency_id = self.euro - self.usd_level = MagicMock(name='USD policy level') - self.usd_level.dunning_fixed_amount = 5.0 - self.usd_level.dunning_currency_id = self.usd - self.usd_level.dunning_type = 'fixed' + level_obj = self.env['credit.control.policy.level'] + self.euro_level = level_obj.new({ + 'name': 'Euro Level', + 'dunning_fixed_amount': 5.0, + 'dunning_currency_id': self.euro, + 'dunning_type': 'fixed', + }) + + self.usd_level = level_obj.new({ + 'name': 'USD Level', + 'dunning_fixed_amount': 5.0, + 'dunning_currency_id': self.usd, + 'dunning_type': 'fixed', + }) self.dunning_model = self.env['credit.control.dunning.fees.computer'] + self.line_model = self.env['credit.control.line'] def test_type_getter(self): """Test that correct compute function is returned for "fixed" type""" @@ -58,25 +66,31 @@ class FixedFeesTester(common.TransactionCase): def test_computation_same_currency(self): """Test that fees are correctly computed with same currency""" - credit_line = MagicMock(name='Euro credit line') - credit_line.policy_level_id = self.euro_level - credit_line.currency_id = self.euro + credit_line = self.line_model.new({ + 'policy_level_id': self.euro_level, + 'currency_id': self.euro, + 'company_id': self.company, + }) fees = self.dunning_model.compute_fixed_fees(credit_line) self.assertEqual(fees, self.euro_level.dunning_fixed_amount) def test_computation_different_currency(self): """Test that fees are correctly computed with different currency""" - credit_line = MagicMock(name='USD credit line') - credit_line.policy_level_id = self.euro_level - credit_line.currency_id = self.usd + credit_line = self.line_model.new({ + 'policy_level_id': self.euro_level, + 'currency_id': self.usd.id, + 'company_id': self.company, + }) fees = self.dunning_model.compute_fixed_fees(credit_line) self.assertNotEqual(fees, self.euro_level.dunning_fixed_amount) def test_no_fees(self): """Test that fees are not generated if no amount defined on level""" - credit_line = MagicMock(name='USD credit line') - credit_line.policy_level_id = self.euro_level + credit_line = self.line_model.new({ + 'policy_level_id': self.euro_level, + 'currency_id': self.usd, + 'company_id': self.company, + }) self.euro_level.dunning_fixed_amount = 0.0 - credit_line.currency_id = self.usd fees = self.dunning_model.compute_fixed_fees(credit_line) self.assertEqual(fees, 0.0)