refactor(test): tax rule; removed setUpClass, tearDownClass

This commit is contained in:
ruthra kumar
2026-02-17 16:03:25 +05:30
parent 16bd107583
commit fe8064c3e6
32 changed files with 57 additions and 183 deletions

View File

@@ -18,9 +18,7 @@ from erpnext.tests.utils import ERPNextTestSuite, if_lending_app_installed, if_l
class TestBankClearance(ERPNextTestSuite): class TestBankClearance(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
create_warehouse( create_warehouse(
warehouse_name="_Test Warehouse", warehouse_name="_Test Warehouse",
properties={"parent_warehouse": "All Warehouses - _TC"}, properties={"parent_warehouse": "All Warehouses - _TC"},
@@ -29,7 +27,6 @@ class TestBankClearance(ERPNextTestSuite):
create_item("_Test Item") create_item("_Test Item")
create_cost_center(cost_center_name="_Test Cost Center", company="_Test Company") create_cost_center(cost_center_name="_Test Cost Center", company="_Test Company")
def setUp(self):
make_bank_account() make_bank_account()
add_transactions() add_transactions()

View File

@@ -9,11 +9,9 @@ from erpnext.tests.utils import ERPNextTestSuite
class FinancialReportTemplateTestCase(ERPNextTestSuite): class FinancialReportTemplateTestCase(ERPNextTestSuite):
"""Utility class with common setup and helper methods for all test classes""" """Utility class with common setup and helper methods for all test classes"""
@classmethod def setUp(self):
def setUpClass(cls):
"""Set up test data""" """Set up test data"""
super().setUpClass() self.create_test_template()
cls.create_test_template()
@classmethod @classmethod
def create_test_template(cls): def create_test_template(cls):

View File

@@ -14,9 +14,7 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestOpeningInvoiceCreationTool(ERPNextTestSuite): class TestOpeningInvoiceCreationTool(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
if not frappe.db.exists("Company", "_Test Opening Invoice Company"): if not frappe.db.exists("Company", "_Test Opening Invoice Company"):
make_company() make_company()
create_dimension() create_dimension()

View File

@@ -25,14 +25,10 @@ from erpnext.tests.utils import ERPNextTestSuite
class POSInvoiceTestMixin(ERPNextTestSuite): class POSInvoiceTestMixin(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Stock Entry")
def setUp(self): def setUp(self):
from erpnext.accounts.doctype.pos_closing_entry.test_pos_closing_entry import init_user_and_profile from erpnext.accounts.doctype.pos_closing_entry.test_pos_closing_entry import init_user_and_profile
self.load_test_records("Stock Entry")
self.test_user, self.pos_profile = init_user_and_profile() self.test_user, self.pos_profile = init_user_and_profile()
if frappe.session.user != "Administrator": if frappe.session.user != "Administrator":

View File

@@ -15,23 +15,12 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestProcessStatementOfAccounts(AccountsTestMixin, ERPNextTestSuite): class TestProcessStatementOfAccounts(AccountsTestMixin, ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): frappe.db.set_single_value("Selling Settings", "validate_selling_price", 0)
super().setUpClass()
letterhead = frappe.get_doc("Letter Head", "Company Letterhead - Grey") letterhead = frappe.get_doc("Letter Head", "Company Letterhead - Grey")
letterhead.is_default = 0 letterhead.is_default = 0
letterhead.save() letterhead.save()
cls.enterClassContext(cls.change_settings("Selling Settings", validate_selling_price=0))
@classmethod
def tearDownClass(cls):
super().tearDownClass()
letterhead = frappe.get_doc("Letter Head", "Company Letterhead - Grey")
letterhead.is_default = 1
letterhead.save()
frappe.db.commit() # nosemgrep
def setUp(self):
self.create_company() self.create_company()
self.create_customer() self.create_customer()
self.create_customer(customer_name="Other Customer") self.create_customer(customer_name="Other Customer")

View File

@@ -17,15 +17,11 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestRepostAccountingLedger(AccountsTestMixin, ERPNextTestSuite): class TestRepostAccountingLedger(AccountsTestMixin, ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.enterClassContext(cls.change_settings("Selling Settings", validate_selling_price=0))
def setUp(self): def setUp(self):
self.create_company() self.create_company()
self.create_customer() self.create_customer()
self.create_item() self.create_item()
frappe.db.set_single_value("Selling Settings", "validate_selling_price", 0)
update_repost_settings() update_repost_settings()
def test_01_basic_functions(self): def test_01_basic_functions(self):

View File

@@ -52,6 +52,13 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestSalesInvoice(ERPNextTestSuite): class TestSalesInvoice(ERPNextTestSuite):
def setUp(self): def setUp(self):
self.make_employees()
self.make_sales_person()
self.load_test_records("Journal Entry")
self.load_test_records("Stock Entry")
self.load_test_records("Sales Invoice")
unlink_payment_on_cancel_of_invoice()
from erpnext.stock.doctype.stock_ledger_entry.test_stock_ledger_entry import create_items from erpnext.stock.doctype.stock_ledger_entry.test_stock_ledger_entry import create_items
create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}]) create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}])
@@ -93,21 +100,6 @@ class TestSalesInvoice(ERPNextTestSuite):
w.submit() w.submit()
return w return w
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.enterClassContext(cls.change_settings("Selling Settings", validate_selling_price=0))
cls.make_employees()
cls.make_sales_person()
cls.load_test_records("Journal Entry")
cls.load_test_records("Stock Entry")
cls.load_test_records("Sales Invoice")
unlink_payment_on_cancel_of_invoice()
@classmethod
def tearDownClass(self):
unlink_payment_on_cancel_of_invoice(0)
def test_sales_invoice_qty(self): def test_sales_invoice_qty(self):
si = create_sales_invoice(qty=0, do_not_save=True) si = create_sales_invoice(qty=0, do_not_save=True)
with self.assertRaises(InvalidQtyError): with self.assertRaises(InvalidQtyError):

View File

@@ -11,17 +11,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestTaxRule(ERPNextTestSuite): class TestTaxRule(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
frappe.db.set_single_value("Shopping Cart Settings", "enabled", 0)
@classmethod
def tearDownClass(cls):
frappe.db.sql("delete from `tabTax Rule`")
def setUp(self): def setUp(self):
frappe.db.sql("delete from `tabTax Rule`") frappe.db.set_single_value("Shopping Cart Settings", "enabled", 0)
def test_conflict(self): def test_conflict(self):
tax_rule1 = make_tax_rule( tax_rule1 = make_tax_rule(

View File

@@ -14,9 +14,7 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestTaxWithholdingCategory(ERPNextTestSuite): class TestTaxWithholdingCategory(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
# create relevant supplier, etc # create relevant supplier, etc
create_records() create_records()
create_tax_withholding_category_records() create_tax_withholding_category_records()

View File

@@ -818,18 +818,9 @@ class TestAsset(AssetSetup):
class TestDepreciationMethods(AssetSetup): class TestDepreciationMethods(AssetSetup):
@classmethod def setUp(self):
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) 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): def test_schedule_for_straight_line_method(self):
asset = create_asset( asset = create_asset(
calculate_depreciation=1, calculate_depreciation=1,

View File

@@ -12,9 +12,7 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestAssetShiftAllocation(ERPNextTestSuite): class TestAssetShiftAllocation(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
create_asset_shift_factors() create_asset_shift_factors()
def test_asset_shift_allocation(self): def test_asset_shift_allocation(self):

View File

@@ -14,10 +14,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestPurchaseOrder(ERPNextTestSuite): class TestPurchaseOrder(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Supplier Quotation")
super().setUpClass()
cls.load_test_records("Supplier Quotation")
def test_update_child_supplier_quotation_add_item(self): def test_update_child_supplier_quotation_add_item(self):
sq = frappe.copy_doc(self.globalTestRecords["Supplier Quotation"][0]) sq = frappe.copy_doc(self.globalTestRecords["Supplier Quotation"][0])

View File

@@ -28,12 +28,8 @@ def create_test_appointment():
class TestAppointment(ERPNextTestSuite): class TestAppointment(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
frappe.db.delete("Lead", {"email_id": LEAD_EMAIL})
def setUp(self): def setUp(self):
frappe.db.delete("Lead", {"email_id": LEAD_EMAIL})
self.test_appointment = create_test_appointment() self.test_appointment = create_test_appointment()
self.test_appointment.set_verified(self.test_appointment.customer_email) self.test_appointment.set_verified(self.test_appointment.customer_email)

View File

@@ -14,13 +14,11 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestOpportunity(ERPNextTestSuite): class TestOpportunity(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
# Only first lead is required # Only first lead is required
# TODO: dynamically generate limited test records # TODO: dynamically generate limited test records
cls.make_leads() self.make_leads()
cls.make_opportunities() self.make_opportunities()
@classmethod @classmethod
def make_opportunities(cls): def make_opportunities(cls):

View File

@@ -8,9 +8,7 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestOpportunitySummaryBySalesStage(ERPNextTestSuite): class TestOpportunitySummaryBySalesStage(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
create_opportunity() create_opportunity()
def test_opportunity_summary_by_sales_stage(self): def test_opportunity_summary_by_sales_stage(self):

View File

@@ -24,10 +24,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestBOM(ERPNextTestSuite): class TestBOM(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("BOM")
super().setUpClass()
cls.load_test_records("BOM")
@timeout @timeout
def test_get_items(self): def test_get_items(self):

View File

@@ -17,12 +17,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestBOMUpdateLog(ERPNextTestSuite): class TestBOMUpdateLog(ERPNextTestSuite):
"Test BOM Update Tool Operations via BOM Update Log." "Test BOM Update Tool Operations via BOM Update Log."
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("BOM")
def setUp(self): def setUp(self):
self.load_test_records("BOM")
bom_doc = frappe.copy_doc(self.globalTestRecords["BOM"][0]) bom_doc = frappe.copy_doc(self.globalTestRecords["BOM"][0])
bom_doc.items[1].item_code = "_Test Item" bom_doc.items[1].item_code = "_Test Item"
bom_doc.insert() bom_doc.insert()

View File

@@ -16,10 +16,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestBOMUpdateTool(ERPNextTestSuite): class TestBOMUpdateTool(ERPNextTestSuite):
"Test major functions run via BOM Update Tool." "Test major functions run via BOM Update Tool."
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("BOM")
super().setUpClass()
cls.load_test_records("BOM")
@timeout @timeout
def test_replace_bom(self): def test_replace_bom(self):

View File

@@ -27,12 +27,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestJobCard(ERPNextTestSuite): class TestJobCard(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("BOM")
def setUp(self): def setUp(self):
self.load_test_records("BOM")
self.make_employees() # used in job card time log self.make_employees() # used in job card time log
self.make_bom_for_jc_tests() self.make_bom_for_jc_tests()
self.transfer_material_against: Literal["Work Order", "Job Card"] = "Work Order" self.transfer_material_against: Literal["Work Order", "Job Card"] = "Work Order"

View File

@@ -9,14 +9,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestRouting(ERPNextTestSuite): class TestRouting(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.item_code = "Test Routing Item - A"
super().setUpClass()
cls.item_code = "Test Routing Item - A"
@classmethod
def tearDownClass(cls):
frappe.db.sql("delete from tabBOM where item=%s", cls.item_code)
def test_sequence_id(self): def test_sequence_id(self):
operations = [ operations = [

View File

@@ -10,12 +10,10 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestActivityCost(ERPNextTestSuite): class TestActivityCost(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
# TODO: only 1 employee is required # TODO: only 1 employee is required
cls.make_employees() self.make_employees()
cls.make_activity_type() self.make_activity_type()
def test_duplication(self): def test_duplication(self):
frappe.db.sql("delete from `tabActivity Cost`") frappe.db.sql("delete from `tabActivity Cost`")

View File

@@ -13,10 +13,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestQuotation(ERPNextTestSuite): class TestQuotation(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Quotation")
super().setUpClass()
cls.load_test_records("Quotation")
def test_update_child_quotation_add_item(self): def test_update_child_quotation_add_item(self):
from erpnext.stock.doctype.item.test_item import make_item from erpnext.stock.doctype.item.test_item import make_item

View File

@@ -36,21 +36,6 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestSalesOrder(AccountsTestMixin, ERPNextTestSuite): class TestSalesOrder(AccountsTestMixin, ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.unlink_setting = int(
frappe.db.get_single_value("Accounts Settings", "unlink_advance_payment_on_cancelation_of_order")
)
@classmethod
def tearDownClass(cls) -> None:
# reset config to previous state
frappe.db.set_single_value(
"Accounts Settings", "unlink_advance_payment_on_cancelation_of_order", cls.unlink_setting
)
super().tearDownClass()
def setUp(self): def setUp(self):
self.create_customer("_Test Customer Credit") self.create_customer("_Test Customer Credit")

View File

@@ -45,10 +45,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestDeliveryNote(ERPNextTestSuite): class TestDeliveryNote(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Stock Entry")
super().setUpClass()
cls.load_test_records("Stock Entry")
def test_delivery_note_qty(self): def test_delivery_note_qty(self):
dn = create_delivery_note(qty=0, do_not_save=True) dn = create_delivery_note(qty=0, do_not_save=True)

View File

@@ -11,10 +11,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestItemPrice(ERPNextTestSuite): class TestItemPrice(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Item Price")
super().setUpClass()
cls.load_test_records("Item Price")
def test_template_item_price(self): def test_template_item_price(self):
from erpnext.stock.doctype.item.test_item import make_item from erpnext.stock.doctype.item.test_item import make_item

View File

@@ -24,10 +24,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestLandedCostVoucher(ERPNextTestSuite): class TestLandedCostVoucher(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Currency Exchange")
super().setUpClass()
cls.load_test_records("Currency Exchange")
def test_landed_cost_voucher(self): def test_landed_cost_voucher(self):
frappe.db.set_single_value("Buying Settings", "allow_multiple_items", 1) frappe.db.set_single_value("Buying Settings", "allow_multiple_items", 1)

View File

@@ -24,10 +24,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestMaterialRequest(ERPNextTestSuite): class TestMaterialRequest(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Material Request")
super().setUpClass()
cls.load_test_records("Material Request")
def test_material_request_qty(self): def test_material_request_qty(self):
mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])

View File

@@ -29,13 +29,9 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestPurchaseReceipt(ERPNextTestSuite): class TestPurchaseReceipt(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Purchase Receipt")
def setUp(self): def setUp(self):
frappe.local.future_sle = {} frappe.local.future_sle = {}
self.load_test_records("Purchase Receipt")
def test_purchase_receipt_qty(self): def test_purchase_receipt_qty(self):
pr = make_purchase_receipt(qty=0, rejected_qty=0, do_not_save=True) pr = make_purchase_receipt(qty=0, rejected_qty=0, do_not_save=True)

View File

@@ -23,10 +23,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestSerialNo(ERPNextTestSuite): class TestSerialNo(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls): self.load_test_records("Stock Entry")
super().setUpClass()
cls.load_test_records("Stock Entry")
def test_cannot_create_direct(self): def test_cannot_create_direct(self):
frappe.delete_doc_if_exists("Serial No", "_TCSER0001") frappe.delete_doc_if_exists("Serial No", "_TCSER0001")

View File

@@ -34,10 +34,6 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestStockReconciliation(ERPNextTestSuite, StockTestMixin): class TestStockReconciliation(ERPNextTestSuite, StockTestMixin):
@classmethod
def setUpClass(cls):
super().setUpClass()
def setUp(self): def setUp(self):
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1) frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
frappe.local.future_sle = {} frappe.local.future_sle = {}

View File

@@ -311,10 +311,8 @@ class TestLIFOValuationSLE(ERPNextTestSuite):
ITEM_CODE = "_Test LIFO item" ITEM_CODE = "_Test LIFO item"
WAREHOUSE = "_Test Warehouse - _TC" WAREHOUSE = "_Test Warehouse - _TC"
@classmethod def setUp(self) -> None:
def setUpClass(cls) -> None: make_item(self.ITEM_CODE, {"valuation_method": "LIFO"})
super().setUpClass()
make_item(cls.ITEM_CODE, {"valuation_method": "LIFO"})
def _make_stock_entry(self, qty, rate=None): def _make_stock_entry(self, qty, rate=None):
kwargs = { kwargs = {

View File

@@ -15,19 +15,16 @@ months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
class TestIssueAnalytics(ERPNextTestSuite): class TestIssueAnalytics(ERPNextTestSuite):
@classmethod def setUp(self):
def setUpClass(cls):
super().setUpClass()
frappe.db.sql("delete from `tabIssue` where company='_Test Company'")
frappe.db.set_single_value("Support Settings", "track_service_level_agreement", 1) frappe.db.set_single_value("Support Settings", "track_service_level_agreement", 1)
current_month_date = getdate() current_month_date = getdate()
last_month_date = add_months(current_month_date, -1) last_month_date = add_months(current_month_date, -1)
cls.current_month = str(months[current_month_date.month - 1]).lower() self.current_month = str(months[current_month_date.month - 1]).lower()
cls.last_month = str(months[last_month_date.month - 1]).lower() self.last_month = str(months[last_month_date.month - 1]).lower()
if current_month_date.year != last_month_date.year: if current_month_date.year != last_month_date.year:
cls.current_month += "_" + str(current_month_date.year) self.current_month += "_" + str(current_month_date.year)
cls.last_month += "_" + str(last_month_date.year) self.last_month += "_" + str(last_month_date.year)
def test_issue_analytics(self): def test_issue_analytics(self):
create_service_level_agreements_for_issues() create_service_level_agreements_for_issues()