From 1296829b9cb37a9d45d69d7ff5b5a9531938653f Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Mon, 5 Jan 2026 16:44:06 +0530 Subject: [PATCH 1/5] fix(test): Use the system-configured float precision --- erpnext/assets/doctype/asset/asset.py | 6 ++---- erpnext/assets/doctype/asset/test_asset.py | 4 +++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 701be98a0d6..2fb36816932 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -589,9 +589,7 @@ class Asset(AccountsController): def set_depreciation_rate(self): for d in self.get("finance_books"): self.validate_asset_finance_books(d) - d.rate_of_depreciation = flt( - self.get_depreciation_rate(d, on_validate=True), d.precision("rate_of_depreciation") - ) + d.rate_of_depreciation = self.get_depreciation_rate(d, on_validate=True) def validate_asset_finance_books(self, row): row.expected_value_after_useful_life = flt( @@ -981,7 +979,7 @@ class Asset(AccountsController): if isinstance(args, str): args = json.loads(args) - rate_field_precision = frappe.get_precision(args.doctype, "rate_of_depreciation") or 2 + rate_field_precision = frappe.get_single_value("System Settings", "float_precision") or 2 if args.get("depreciation_method") == "Double Declining Balance": return self.get_double_declining_balance_rate(args, rate_field_precision) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index c54c39ab7c8..8613ec7e183 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -37,12 +37,14 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import ( make_purchase_invoice as make_invoice, ) from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt +from erpnext.tests.utils import ERPNextTestSuite -class AssetSetup(IntegrationTestCase): +class AssetSetup(ERPNextTestSuite): @classmethod def setUpClass(cls): super().setUpClass() + frappe.db.set_single_value("System Settings", "float_precision", 3) set_depreciation_settings_in_company() create_asset_data() enable_cwip_accounting("Computers") From 8d186d6b3ff38c99eba310f45297994447b08bf7 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Mon, 5 Jan 2026 16:47:32 +0530 Subject: [PATCH 2/5] fix: use correct test class --- erpnext/assets/doctype/asset/test_asset.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 8613ec7e183..b683aa4f8de 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -37,10 +37,9 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import ( make_purchase_invoice as make_invoice, ) from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt -from erpnext.tests.utils import ERPNextTestSuite -class AssetSetup(ERPNextTestSuite): +class AssetSetup(IntegrationTestCase): @classmethod def setUpClass(cls): super().setUpClass() From 007258d657ef0b03c9bef37b9b69de3dc55f1a44 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 6 Jan 2026 14:39:31 +0530 Subject: [PATCH 3/5] refactor: modify test cases to handle float precision rounded to 2 decimals --- erpnext/assets/doctype/asset/test_asset.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index b683aa4f8de..14ba699c8a6 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -798,9 +798,9 @@ class TestDepreciationMethods(AssetSetup): self.assertEqual(asset.status, "Draft") expected_schedules = [ - ["2030-12-31", 66667.00, 66667.00], - ["2031-12-31", 22222.11, 88889.11], - ["2032-12-31", 1110.89, 90000.0], + ["2030-12-31", 66670.0, 66670.0], + ["2031-12-31", 22221.11, 88891.11], + ["2032-12-31", 1108.89, 90000.0], ] schedules = [ @@ -826,7 +826,7 @@ class TestDepreciationMethods(AssetSetup): self.assertEqual(asset.status, "Draft") - expected_schedules = [["2031-12-31", 33333.50, 83333.50], ["2032-12-31", 6666.50, 90000.0]] + expected_schedules = [["2031-12-31", 33335.0, 83335.0], ["2032-12-31", 6665.0, 90000.0]] schedules = [ [cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount] @@ -944,12 +944,12 @@ class TestDepreciationMethods(AssetSetup): ) expected_schedules = [ - ["2022-02-28", 337.72, 337.72], - ["2022-03-31", 675.45, 1013.17], - ["2022-04-30", 675.45, 1688.62], - ["2022-05-31", 675.45, 2364.07], - ["2022-06-30", 675.45, 3039.52], - ["2022-07-15", 1960.48, 5000.0], + ["2022-02-28", 337.71, 337.71], + ["2022-03-31", 675.42, 1013.13], + ["2022-04-30", 675.42, 1688.55], + ["2022-05-31", 675.42, 2363.97], + ["2022-06-30", 675.42, 3039.39], + ["2022-07-15", 1960.61, 5000.0], ] schedules = [ From 825e3717ca2760cde11fd5510718f8c0b2500947 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 6 Jan 2026 14:41:36 +0530 Subject: [PATCH 4/5] fix: do not update float precision on setup --- erpnext/assets/doctype/asset/test_asset.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 14ba699c8a6..a382237db6a 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -43,7 +43,6 @@ class AssetSetup(IntegrationTestCase): @classmethod def setUpClass(cls): super().setUpClass() - frappe.db.set_single_value("System Settings", "float_precision", 3) set_depreciation_settings_in_company() create_asset_data() enable_cwip_accounting("Computers") From c0a85faa68777ece2fed91026de0f4d6c7a568c1 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 6 Jan 2026 23:49:21 +0530 Subject: [PATCH 5/5] test: set up float precision --- erpnext/assets/doctype/asset/test_asset.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index a382237db6a..9e701083764 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -700,6 +700,18 @@ class TestAsset(AssetSetup): class TestDepreciationMethods(AssetSetup): + @classmethod + def setUpClass(cls): + super().setUpClass() + + cls._old_float_precision = frappe.db.get_single_value("System Settings", "float_precision") + frappe.db.set_single_value("System Settings", "float_precision", 2) + + @classmethod + def tearDownClass(cls): + frappe.db.set_single_value("System Settings", "float_precision", cls._old_float_precision) + super().tearDownClass() + def test_schedule_for_straight_line_method(self): asset = create_asset( calculate_depreciation=1,