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):
@classmethod
def setUpClass(cls):
super().setUpClass()
def setUp(self):
create_warehouse(
warehouse_name="_Test Warehouse",
properties={"parent_warehouse": "All Warehouses - _TC"},
@@ -29,7 +27,6 @@ class TestBankClearance(ERPNextTestSuite):
create_item("_Test Item")
create_cost_center(cost_center_name="_Test Cost Center", company="_Test Company")
def setUp(self):
make_bank_account()
add_transactions()

View File

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

View File

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

View File

@@ -25,14 +25,10 @@ from erpnext.tests.utils import ERPNextTestSuite
class POSInvoiceTestMixin(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Stock Entry")
def setUp(self):
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()
if frappe.session.user != "Administrator":

View File

@@ -15,23 +15,12 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestProcessStatementOfAccounts(AccountsTestMixin, ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
def setUp(self):
frappe.db.set_single_value("Selling Settings", "validate_selling_price", 0)
letterhead = frappe.get_doc("Letter Head", "Company Letterhead - Grey")
letterhead.is_default = 0
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_customer()
self.create_customer(customer_name="Other Customer")

View File

@@ -17,15 +17,11 @@ from erpnext.tests.utils import 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):
self.create_company()
self.create_customer()
self.create_item()
frappe.db.set_single_value("Selling Settings", "validate_selling_price", 0)
update_repost_settings()
def test_01_basic_functions(self):

View File

@@ -52,6 +52,13 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestSalesInvoice(ERPNextTestSuite):
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
create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}])
@@ -93,21 +100,6 @@ class TestSalesInvoice(ERPNextTestSuite):
w.submit()
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):
si = create_sales_invoice(qty=0, do_not_save=True)
with self.assertRaises(InvalidQtyError):

View File

@@ -11,17 +11,8 @@ from erpnext.tests.utils import 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):
frappe.db.sql("delete from `tabTax Rule`")
frappe.db.set_single_value("Shopping Cart Settings", "enabled", 0)
def test_conflict(self):
tax_rule1 = make_tax_rule(

View File

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

View File

@@ -818,18 +818,9 @@ 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")
def setUp(self):
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,

View File

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

View File

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

View File

@@ -28,12 +28,8 @@ def create_test_appointment():
class TestAppointment(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
frappe.db.delete("Lead", {"email_id": LEAD_EMAIL})
def setUp(self):
frappe.db.delete("Lead", {"email_id": LEAD_EMAIL})
self.test_appointment = create_test_appointment()
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):
@classmethod
def setUpClass(cls):
super().setUpClass()
def setUp(self):
# Only first lead is required
# TODO: dynamically generate limited test records
cls.make_leads()
cls.make_opportunities()
self.make_leads()
self.make_opportunities()
@classmethod
def make_opportunities(cls):

View File

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

View File

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

View File

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

View File

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

View File

@@ -27,12 +27,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestJobCard(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("BOM")
def setUp(self):
self.load_test_records("BOM")
self.make_employees() # used in job card time log
self.make_bom_for_jc_tests()
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):
@classmethod
def setUpClass(cls):
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 setUp(self):
self.item_code = "Test Routing Item - A"
def test_sequence_id(self):
operations = [

View File

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

View File

@@ -13,10 +13,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestQuotation(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Quotation")
def setUp(self):
self.load_test_records("Quotation")
def test_update_child_quotation_add_item(self):
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):
@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):
self.create_customer("_Test Customer Credit")

View File

@@ -45,10 +45,8 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestDeliveryNote(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Stock Entry")
def setUp(self):
self.load_test_records("Stock Entry")
def test_delivery_note_qty(self):
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):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Item Price")
def setUp(self):
self.load_test_records("Item Price")
def test_template_item_price(self):
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):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Currency Exchange")
def setUp(self):
self.load_test_records("Currency Exchange")
def test_landed_cost_voucher(self):
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):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Material Request")
def setUp(self):
self.load_test_records("Material Request")
def test_material_request_qty(self):
mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])

View File

@@ -29,13 +29,9 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestPurchaseReceipt(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Purchase Receipt")
def setUp(self):
frappe.local.future_sle = {}
self.load_test_records("Purchase Receipt")
def test_purchase_receipt_qty(self):
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):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.load_test_records("Stock Entry")
def setUp(self):
self.load_test_records("Stock Entry")
def test_cannot_create_direct(self):
frappe.delete_doc_if_exists("Serial No", "_TCSER0001")

View File

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

View File

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

View File

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