[FIX] account_budget: in test, use `float_compare` to compare amounts
This commit is contained in:
parent
812332855a
commit
ca7983a40f
|
@ -3,7 +3,7 @@ from datetime import datetime
|
||||||
from mock import patch
|
from mock import patch
|
||||||
|
|
||||||
from openerp.tests.common import TransactionCase
|
from openerp.tests.common import TransactionCase
|
||||||
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, float_compare
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
|
@ -32,65 +32,71 @@ class TestTheoreticalAmount(TransactionCase):
|
||||||
self.patcher = patch('openerp.addons.account_budget.account_budget.datetime', wraps=datetime)
|
self.patcher = patch('openerp.addons.account_budget.account_budget.datetime', wraps=datetime)
|
||||||
self.mock_datetime = self.patcher.start()
|
self.mock_datetime = self.patcher.start()
|
||||||
|
|
||||||
|
def assertFloatEqual(self, value1, value2, *args, **kwargs):
|
||||||
|
""" Compare two values of the field theoritical_amount """
|
||||||
|
digits = type(self.line).theoritical_amount.digits
|
||||||
|
result = float_compare(value1, value2, precision_digits=digits[1])
|
||||||
|
return self.assertFalse(result, *args, **kwargs)
|
||||||
|
|
||||||
def test_01(self):
|
def test_01(self):
|
||||||
"""Start"""
|
"""Start"""
|
||||||
date = datetime.strptime('2014-01-01 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-01-01 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, 0)
|
self.assertFloatEqual(self.line.theoritical_amount, 0)
|
||||||
|
|
||||||
def test_02(self):
|
def test_02(self):
|
||||||
"""After 24 hours"""
|
"""After 24 hours"""
|
||||||
date = datetime.strptime('2014-01-02 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-01-02 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -1)
|
self.assertFloatEqual(self.line.theoritical_amount, -1)
|
||||||
|
|
||||||
def test_03(self):
|
def test_03(self):
|
||||||
"""After 36 hours"""
|
"""After 36 hours"""
|
||||||
date = datetime.strptime('2014-01-02 12:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-01-02 12:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -1.5)
|
self.assertFloatEqual(self.line.theoritical_amount, -1.5)
|
||||||
|
|
||||||
def test_04(self):
|
def test_04(self):
|
||||||
"""After 48 hours"""
|
"""After 48 hours"""
|
||||||
date = datetime.strptime('2014-01-03 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-01-03 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -2)
|
self.assertFloatEqual(self.line.theoritical_amount, -2)
|
||||||
|
|
||||||
def test_05(self):
|
def test_05(self):
|
||||||
"""After 10 days"""
|
"""After 10 days"""
|
||||||
date = datetime.strptime('2014-01-11 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-01-11 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -10)
|
self.assertFloatEqual(self.line.theoritical_amount, -10)
|
||||||
|
|
||||||
def test_06(self):
|
def test_06(self):
|
||||||
"""After 50 days"""
|
"""After 50 days"""
|
||||||
date = datetime.strptime('2014-02-20 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-02-20 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -50)
|
self.assertFloatEqual(self.line.theoritical_amount, -50)
|
||||||
|
|
||||||
def test_07(self):
|
def test_07(self):
|
||||||
"""After 182 days, exactly half of the budget line"""
|
"""After 182 days, exactly half of the budget line"""
|
||||||
date = datetime.strptime('2014-07-02 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-07-02 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -182)
|
self.assertFloatEqual(self.line.theoritical_amount, -182)
|
||||||
|
|
||||||
def test_08(self):
|
def test_08(self):
|
||||||
"""After 308 days at noon"""
|
"""After 308 days at noon"""
|
||||||
date = datetime.strptime('2014-11-05 12:00:00', DEFAULT_SERVER_DATETIME_FORMAT) # remember, remember
|
date = datetime.strptime('2014-11-05 12:00:00', DEFAULT_SERVER_DATETIME_FORMAT) # remember, remember
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -308.5)
|
self.assertFloatEqual(self.line.theoritical_amount, -308.5)
|
||||||
|
|
||||||
def test_09(self):
|
def test_09(self):
|
||||||
"""One day before"""
|
"""One day before"""
|
||||||
date = datetime.strptime('2014-12-30 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-12-30 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -363)
|
self.assertFloatEqual(self.line.theoritical_amount, -363)
|
||||||
|
|
||||||
def test_10(self):
|
def test_10(self):
|
||||||
"""At last"""
|
"""At last"""
|
||||||
date = datetime.strptime('2014-12-31 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
date = datetime.strptime('2014-12-31 00:00:00', DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
self.mock_datetime.now.return_value = date
|
self.mock_datetime.now.return_value = date
|
||||||
self.assertEqual(self.line.theoritical_amount, -364)
|
self.assertFloatEqual(self.line.theoritical_amount, -364)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.patcher.stop()
|
self.patcher.stop()
|
||||||
|
|
Loading…
Reference in New Issue