Use the new API instead of mocks for FixedFeesTester

It will be easier to write additional tests
This commit is contained in:
Guewen Baconnier
2014-12-15 16:53:24 +01:00
parent 6d14f67eaa
commit 228e687ac3

View File

@@ -18,7 +18,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
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)