From 4bcb12617c6d14cd323d1fad7da295d8679eb2f3 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Thu, 26 Jan 2023 11:39:41 +0100 Subject: [PATCH] fix: assertAlmostEqual with precision --- frappe/model/base_document.py | 2 +- frappe/tests/utils.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 8cd074a4c0..783e879bff 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -1068,7 +1068,7 @@ class BaseDocument: def is_dummy_password(self, pwd): return "".join(set(pwd)) == "*" - def precision(self, fieldname, parentfield=None): + def precision(self, fieldname, parentfield=None) -> int | None: """Returns float precision for a particular field (or get global default). :param fieldname: Fieldname for which precision is required. diff --git a/frappe/tests/utils.py b/frappe/tests/utils.py index 15e0c3d9c0..5f13c9cd11 100644 --- a/frappe/tests/utils.py +++ b/frappe/tests/utils.py @@ -55,12 +55,14 @@ class FrappeTestCase(unittest.TestCase): else: self._compare_field(value, actual.get(field), actual, field) - def _compare_field(self, expected, actual, doc, field): + def _compare_field(self, expected, actual, doc: BaseDocument, field: str): msg = f"{field} should be same." if isinstance(expected, float): precision = doc.precision(field) - self.assertAlmostEqual(expected, actual, f"{field} should be same to {precision} digits") + self.assertAlmostEqual( + expected, actual, places=precision, msg=f"{field} should be same to {precision} digits" + ) elif isinstance(expected, (bool, int)): self.assertEqual(expected, cint(actual), msg=msg) elif isinstance(expected, datetime_like_types):