From dd7cc56dfe4ff316d87352719ce269481f44e049 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 (cherry picked from commit 1296829b9cb37a9d45d69d7ff5b5a9531938653f) --- 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 95011c8bba1..6954a1d752d 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -598,9 +598,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( @@ -990,7 +988,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 6440fcfad62..44429ee7327 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 1efbc60df1c934476090cd484299541591578a91 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 (cherry picked from commit 8d186d6b3ff38c99eba310f45297994447b08bf7) --- 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 44429ee7327..cf49c5e3463 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 b855f30600ca2ae468721fc23cc5445b797b9596 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 (cherry picked from commit 007258d657ef0b03c9bef37b9b69de3dc55f1a44) --- 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 cf49c5e3463..a2503c3907c 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -924,9 +924,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 = [ @@ -952,7 +952,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] @@ -1070,12 +1070,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 0af4cd9098ef3d871ff426fb400cfdb605f610bb 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 (cherry picked from commit 825e3717ca2760cde11fd5510718f8c0b2500947) --- 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 a2503c3907c..eb399b1e6f0 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 b000224a93eac3fcc4ce9ba8797aab4ce580a67f 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 (cherry picked from commit c0a85faa68777ece2fed91026de0f4d6c7a568c1) --- 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 eb399b1e6f0..62e532f322f 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -826,6 +826,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,