refactor(test): make asset deterministic

This commit is contained in:
ruthra kumar
2026-01-29 12:58:27 +05:30
parent 9cd52c245b
commit 6737ccac95
8 changed files with 67 additions and 49 deletions

View File

@@ -22,7 +22,7 @@ from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import (
from erpnext.accounts.doctype.sales_invoice.sales_invoice import make_inter_company_transaction
from erpnext.accounts.utils import PaymentEntryUnlinkError
from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries
from erpnext.assets.doctype.asset.test_asset import create_asset, create_asset_data
from erpnext.assets.doctype.asset.test_asset import create_asset
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
get_depr_schedule,
)
@@ -1626,7 +1626,6 @@ class TestSalesInvoice(ERPNextTestSuite):
self.assertRaises(frappe.ValidationError, cr_note.save)
def test_gle_made_when_asset_is_returned(self):
create_asset_data()
asset = create_asset(item_code="Macbook Pro")
si = create_sales_invoice(item_code="Macbook Pro", asset=asset.name, qty=1, rate=90000)
@@ -3118,7 +3117,6 @@ class TestSalesInvoice(ERPNextTestSuite):
Tests if an Asset set to depreciate yearly on June 30, that gets sold on Sept 30, creates an additional depreciation entry on its date of sale.
"""
create_asset_data()
asset = create_asset(item_code="Macbook Pro", calculate_depreciation=1, submit=1)
post_depreciation_entries(getdate("2021-09-30"))
@@ -3144,7 +3142,6 @@ class TestSalesInvoice(ERPNextTestSuite):
Tests if an Asset set to depreciate yearly on Dec 31, that gets sold on Dec 31 after two years, created an additional depreciation entry on its date of sale.
"""
create_asset_data()
asset = create_asset(
item_code="Macbook Pro",
calculate_depreciation=1,

View File

@@ -40,18 +40,10 @@ from erpnext.tests.utils import ERPNextTestSuite
class AssetSetup(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
def setUp(self):
set_depreciation_settings_in_company()
create_asset_data()
enable_cwip_accounting("Computers")
make_purchase_receipt(item_code="Macbook Pro", qty=1, rate=100000.0, location="Test Location")
frappe.db.sql("delete from `tabTax Rule`")
@classmethod
def tearDownClass(cls):
frappe.db.rollback()
class TestAsset(AssetSetup):
@@ -1906,31 +1898,9 @@ def get_gl_entries(doctype, docname):
)
def create_asset_data():
if not frappe.db.exists("Asset Category", "Computers"):
create_asset_category()
if not frappe.db.exists("Item", "Macbook Pro"):
create_fixed_asset_item()
if not frappe.db.exists("Location", "Test Location"):
frappe.get_doc({"doctype": "Location", "location_name": "Test Location"}).insert()
if not frappe.db.exists("Finance Book", "Test Finance Book 1"):
frappe.get_doc({"doctype": "Finance Book", "finance_book_name": "Test Finance Book 1"}).insert()
if not frappe.db.exists("Finance Book", "Test Finance Book 2"):
frappe.get_doc({"doctype": "Finance Book", "finance_book_name": "Test Finance Book 2"}).insert()
if not frappe.db.exists("Finance Book", "Test Finance Book 3"):
frappe.get_doc({"doctype": "Finance Book", "finance_book_name": "Test Finance Book 3"}).insert()
def create_asset(**args):
args = frappe._dict(args)
create_asset_data()
asset = frappe.get_doc(
{
"doctype": "Asset",

View File

@@ -8,7 +8,6 @@ from frappe.utils import cint, flt, now_datetime
from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries
from erpnext.assets.doctype.asset.test_asset import (
create_asset,
create_asset_data,
create_fixed_asset_item,
set_depreciation_settings_in_company,
)
@@ -26,7 +25,6 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestAssetCapitalization(ERPNextTestSuite):
def setUp(self):
set_depreciation_settings_in_company()
create_asset_data()
create_asset_capitalization_data()
frappe.db.sql("delete from `tabTax Rule`")

View File

@@ -8,7 +8,7 @@ from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sal
from erpnext.assets.doctype.asset.depreciation import (
post_depreciation_entries,
)
from erpnext.assets.doctype.asset.test_asset import create_asset, create_asset_data
from erpnext.assets.doctype.asset.test_asset import create_asset
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
get_asset_depr_schedule_doc,
get_depr_schedule,
@@ -21,9 +21,6 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestAssetDepreciationSchedule(ERPNextTestSuite):
def setUp(self):
create_asset_data()
def test_throw_error_if_another_asset_depr_schedule_exist(self):
asset = create_asset(item_code="Macbook Pro", calculate_depreciation=1, submit=1)
@@ -815,7 +812,6 @@ class TestAssetDepreciationSchedule(ERPNextTestSuite):
def test_depreciation_on_return_of_sold_asset(self):
from erpnext.controllers.sales_and_purchase_return import make_return_doc
create_asset_data()
asset = create_asset(item_code="Macbook Pro", calculate_depreciation=1, submit=1)
post_depreciation_entries(getdate("2021-09-30"))

View File

@@ -5,7 +5,7 @@ import unittest
import frappe
from frappe.utils import add_days, now
from erpnext.assets.doctype.asset.test_asset import create_asset, create_asset_data
from erpnext.assets.doctype.asset.test_asset import create_asset
from erpnext.setup.doctype.employee.test_employee import make_employee
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt
from erpnext.tests.utils import ERPNextTestSuite
@@ -16,7 +16,6 @@ class TestAssetMovement(ERPNextTestSuite):
frappe.db.set_value(
"Company", "_Test Company", "capital_work_in_progress_account", "CWIP Account - _TC"
)
create_asset_data()
make_location()
def test_movement(self):

View File

@@ -14,7 +14,6 @@ from erpnext.assets.doctype.asset.asset import (
)
from erpnext.assets.doctype.asset.test_asset import (
create_asset,
create_asset_data,
set_depreciation_settings_in_company,
)
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
@@ -34,7 +33,6 @@ class TestAssetRepair(ERPNextTestSuite):
super().setUpClass()
cls.load_test_records("Stock Entry")
set_depreciation_settings_in_company()
create_asset_data()
create_item("_Test Stock Item")
frappe.db.sql("delete from `tabTax Rule`")

View File

@@ -7,7 +7,6 @@ from frappe.utils import add_days, cstr, get_last_day, getdate, nowdate
from erpnext.assets.doctype.asset.asset import get_asset_value_after_depreciation
from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries
from erpnext.assets.doctype.asset.test_asset import create_asset_data
from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
get_asset_depr_schedule_doc,
)
@@ -18,7 +17,6 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestAssetValueAdjustment(ERPNextTestSuite):
def setUp(self):
create_asset_data()
frappe.db.set_value(
"Company", "_Test Company", "capital_work_in_progress_account", "CWIP Account - _TC"
)

View File

@@ -253,6 +253,7 @@ class ERPNextTestSuite(unittest.TestCase):
cls.make_monthly_distribution()
cls.make_projects()
cls.make_dunning_type()
cls.make_finance_book()
cls.update_selling_settings()
cls.update_stock_settings()
cls.update_system_settings()
@@ -2245,6 +2246,20 @@ class ERPNextTestSuite(unittest.TestCase):
"asset_category": cls.asset_category[0].name,
"asset_naming_series": "ABC.###",
},
{
"doctype": "Item",
"item_code": "Macbook Pro",
"item_name": "Macbook Pro",
"description": "Macbook Pro Retina Display",
"asset_category": "Computers",
"item_group": "All Item Groups",
"stock_uom": "Nos",
"is_stock_item": 0,
"is_fixed_asset": 1,
"auto_create_assets": 1,
"is_grouped_asset": 0,
"asset_naming_series": "ACC-ASS-.YYYY.-",
},
]
cls.item = []
for x in records:
@@ -2716,7 +2731,29 @@ class ERPNextTestSuite(unittest.TestCase):
"depreciation_expense_account": "_Test Depreciations - _TC",
}
],
}
},
{
"doctype": "Asset Category",
"asset_category_name": "Computers",
"total_number_of_depreciations": 3,
"frequency_of_depreciation": 3,
"enable_cwip_accounting": True,
"accounts": [
{
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
"accumulated_depreciation_account": "_Test Accumulated Depreciations - _TC",
"depreciation_expense_account": "_Test Depreciations - _TC",
"capital_work_in_progress_account": "CWIP Account - _TC",
},
{
"company_name": "_Test Company with perpetual inventory",
"fixed_asset_account": "_Test Fixed Asset - TCP1",
"accumulated_depreciation_account": "_Test Accumulated Depreciations - TCP1",
"depreciation_expense_account": "_Test Depreciations - TCP1",
},
],
},
]
cls.asset_category = []
for x in records:
@@ -3090,6 +3127,31 @@ class ERPNextTestSuite(unittest.TestCase):
frappe.get_doc("Dunning Type", {"dunning_type": x.get("dunning_type")})
)
@classmethod
def make_finance_book(cls):
records = [
{
"doctype": "Finance Book",
"finance_book_name": "Test Finance Book 1",
},
{
"doctype": "Finance Book",
"finance_book_name": "Test Finance Book 2",
},
{
"doctype": "Finance Book",
"finance_book_name": "Test Finance Book 3",
},
]
cls.finance_book = []
for x in records:
if not frappe.db.exists("Finance Book", {"finance_book_name": x.get("finance_book_name")}):
cls.finance_book.append(frappe.get_doc(x).insert())
else:
cls.finance_book.append(
frappe.get_doc("Finance Book", {"finance_book_name": x.get("finance_book_name")})
)
@contextmanager
def set_user(self, user: str):
try: