refactor: use cls.globalTestRecords instead of declaring test_records

This commit is contained in:
David
2024-10-11 04:58:12 +02:00
parent d8b0b92925
commit 56c99fe7e1
32 changed files with 220 additions and 284 deletions

View File

@@ -5,14 +5,9 @@ import unittest
import frappe import frappe
from frappe.tests import IntegrationTestCase from frappe.tests import IntegrationTestCase
test_records = frappe.get_test_records("Cost Center")
class TestCostCenter(IntegrationTestCase): class TestCostCenter(IntegrationTestCase):
def test_cost_center_creation_against_child_node(self): def test_cost_center_creation_against_child_node(self):
if not frappe.db.get_value("Cost Center", {"name": "_Test Cost Center 2 - _TC"}):
frappe.get_doc(test_records[1]).insert()
cost_center = frappe.get_doc( cost_center = frappe.get_doc(
{ {
"doctype": "Cost Center", "doctype": "Cost Center",

View File

@@ -25,22 +25,22 @@ class TestJournalEntry(IntegrationTestCase):
"Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1} "Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1}
) )
def test_journal_entry_with_against_jv(self): def test_journal_entry_with_against_jv(self):
jv_invoice = frappe.copy_doc(test_records[2]) jv_invoice = frappe.copy_doc(self.globalTestRecords["Journal Entry"][2])
base_jv = frappe.copy_doc(test_records[0]) base_jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][0])
self.jv_against_voucher_testcase(base_jv, jv_invoice) self.jv_against_voucher_testcase(base_jv, jv_invoice)
def test_jv_against_sales_order(self): def test_jv_against_sales_order(self):
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
sales_order = make_sales_order(do_not_save=True) sales_order = make_sales_order(do_not_save=True)
base_jv = frappe.copy_doc(test_records[0]) base_jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][0])
self.jv_against_voucher_testcase(base_jv, sales_order) self.jv_against_voucher_testcase(base_jv, sales_order)
def test_jv_against_purchase_order(self): def test_jv_against_purchase_order(self):
from erpnext.buying.doctype.purchase_order.test_purchase_order import create_purchase_order from erpnext.buying.doctype.purchase_order.test_purchase_order import create_purchase_order
purchase_order = create_purchase_order(do_not_save=True) purchase_order = create_purchase_order(do_not_save=True)
base_jv = frappe.copy_doc(test_records[1]) base_jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][1])
self.jv_against_voucher_testcase(base_jv, purchase_order) self.jv_against_voucher_testcase(base_jv, purchase_order)
def jv_against_voucher_testcase(self, base_jv, test_voucher): def jv_against_voucher_testcase(self, base_jv, test_voucher):
@@ -589,6 +589,3 @@ def make_journal_entry(
jv.submit() jv.submit()
return jv return jv
test_records = frappe.get_test_records("Journal Entry")

View File

@@ -25,7 +25,7 @@ from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import (
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
from erpnext.setup.doctype.employee.test_employee import make_employee from erpnext.setup.doctype.employee.test_employee import make_employee
EXTRA_TEST_RECORD_DEPENDENCIES = ["Item"] EXTRA_TEST_RECORD_DEPENDENCIES = ["Item", "Currency Exchange"]
class UnitTestPaymentEntry(UnitTestCase): class UnitTestPaymentEntry(UnitTestCase):
@@ -619,12 +619,9 @@ class TestPaymentEntry(IntegrationTestCase):
self.assertEqual(flt(pe.references[0].exchange_gain_loss, 2), -94.74) self.assertEqual(flt(pe.references[0].exchange_gain_loss, 2), -94.74)
def test_payment_entry_retrieves_last_exchange_rate(self): def test_payment_entry_retrieves_last_exchange_rate(self):
from erpnext.setup.doctype.currency_exchange.test_currency_exchange import ( from erpnext.setup.doctype.currency_exchange.test_currency_exchange import save_new_records
save_new_records,
test_records,
)
save_new_records(test_records) save_new_records(self.globalTestRecords["Currency Exchange"])
pe = frappe.new_doc("Payment Entry") pe = frappe.new_doc("Payment Entry")
pe.payment_type = "Pay" pe.payment_type = "Pay"

View File

@@ -248,6 +248,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -289,6 +290,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -377,6 +379,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -431,6 +434,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -482,6 +486,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -512,6 +517,7 @@ class TestPOSInvoice(IntegrationTestCase):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item( se = make_serialized_item(
self,
company="_Test Company", company="_Test Company",
target_warehouse="Stores - _TC", target_warehouse="Stores - _TC",
cost_center="Main - _TC", cost_center="Main - _TC",
@@ -901,7 +907,7 @@ class TestPOSInvoice(IntegrationTestCase):
frappe.db.savepoint("before_test_delivered_serial_no_case") frappe.db.savepoint("before_test_delivered_serial_no_case")
try: try:
se = make_serialized_item() se = make_serialized_item(self)
serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0] serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]
dn = create_delivery_note(item_code="_Test Serialized Item With Series", serial_no=[serial_no]) dn = create_delivery_note(item_code="_Test Serialized Item With Series", serial_no=[serial_no])

View File

@@ -411,7 +411,7 @@ class TestPOSInvoiceMergeLog(IntegrationTestCase):
frappe.db.sql("delete from `tabPOS Invoice`") frappe.db.sql("delete from `tabPOS Invoice`")
try: try:
se = make_serialized_item() se = make_serialized_item(self)
serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0] serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]
init_user_and_profile() init_user_and_profile()

View File

@@ -115,7 +115,7 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
def test_gl_entries_without_perpetual_inventory(self): def test_gl_entries_without_perpetual_inventory(self):
frappe.db.set_value("Company", "_Test Company", "round_off_account", "Round Off - _TC") frappe.db.set_value("Company", "_Test Company", "round_off_account", "Round Off - _TC")
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
self.assertTrue(not cint(erpnext.is_perpetual_inventory_enabled(pi.company))) self.assertTrue(not cint(erpnext.is_perpetual_inventory_enabled(pi.company)))
pi.insert() pi.insert()
pi.submit() pi.submit()
@@ -156,7 +156,7 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
self.check_gle_for_pi(pi.name) self.check_gle_for_pi(pi.name)
def test_terms_added_after_save(self): def test_terms_added_after_save(self):
pi = frappe.copy_doc(test_records[1]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][1])
pi.insert() pi.insert()
self.assertTrue(pi.payment_schedule) self.assertTrue(pi.payment_schedule)
self.assertEqual(pi.payment_schedule[0].due_date, pi.due_date) self.assertEqual(pi.payment_schedule[0].due_date, pi.due_date)
@@ -383,13 +383,13 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
self.assertEqual(discrepancy_caused_by_exchange_rate_diff, amount) self.assertEqual(discrepancy_caused_by_exchange_rate_diff, amount)
def test_purchase_invoice_change_naming_series(self): def test_purchase_invoice_change_naming_series(self):
pi = frappe.copy_doc(test_records[1]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][1])
pi.insert() pi.insert()
pi.naming_series = "TEST-" pi.naming_series = "TEST-"
self.assertRaises(frappe.CannotChangeConstantError, pi.save) self.assertRaises(frappe.CannotChangeConstantError, pi.save)
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.insert() pi.insert()
pi.load_from_db() pi.load_from_db()
@@ -429,7 +429,7 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
self.assertEqual(expected_values[i][2], gle.credit) self.assertEqual(expected_values[i][2], gle.credit)
def test_purchase_invoice_calculation(self): def test_purchase_invoice_calculation(self):
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.insert() pi.insert()
pi.load_from_db() pi.load_from_db()
@@ -465,15 +465,11 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
"Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1} "Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1}
) )
def test_purchase_invoice_with_advance(self): def test_purchase_invoice_with_advance(self):
from erpnext.accounts.doctype.journal_entry.test_journal_entry import ( jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][1])
test_records as jv_test_records,
)
jv = frappe.copy_doc(jv_test_records[1])
jv.insert() jv.insert()
jv.submit() jv.submit()
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.disable_rounded_total = 1 pi.disable_rounded_total = 1
pi.allocate_advances_automatically = 0 pi.allocate_advances_automatically = 0
pi.append( pi.append(
@@ -522,15 +518,11 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
"Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1} "Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1}
) )
def test_invoice_with_advance_and_multi_payment_terms(self): def test_invoice_with_advance_and_multi_payment_terms(self):
from erpnext.accounts.doctype.journal_entry.test_journal_entry import ( jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][1])
test_records as jv_test_records,
)
jv = frappe.copy_doc(jv_test_records[1])
jv.insert() jv.insert()
jv.submit() jv.submit()
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.disable_rounded_total = 1 pi.disable_rounded_total = 1
pi.allocate_advances_automatically = 0 pi.allocate_advances_automatically = 0
pi.append( pi.append(
@@ -945,16 +937,12 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
) )
def test_outstanding_amount_after_advance_jv_cancelation(self): def test_outstanding_amount_after_advance_jv_cancelation(self):
from erpnext.accounts.doctype.journal_entry.test_journal_entry import ( jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][1])
test_records as jv_test_records,
)
jv = frappe.copy_doc(jv_test_records[1])
jv.accounts[0].is_advance = "Yes" jv.accounts[0].is_advance = "Yes"
jv.insert() jv.insert()
jv.submit() jv.submit()
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.append( pi.append(
"advances", "advances",
{ {
@@ -1004,7 +992,7 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
pe.insert() pe.insert()
pe.submit() pe.submit()
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.is_pos = 0 pi.is_pos = 0
pi.append( pi.append(
"advances", "advances",
@@ -1040,7 +1028,7 @@ class TestPurchaseInvoice(IntegrationTestCase, StockTestMixin):
shipping_rule_type="Buying", shipping_rule_name="Shipping Rule - Purchase Invoice Test" shipping_rule_type="Buying", shipping_rule_name="Shipping Rule - Purchase Invoice Test"
) )
pi = frappe.copy_doc(test_records[0]) pi = frappe.copy_doc(self.globalTestRecords["Purchase Invoice"][0])
pi.shipping_rule = shipping_rule.name pi.shipping_rule = shipping_rule.name
pi.insert() pi.insert()
@@ -2662,6 +2650,3 @@ def toggle_provisional_accounting_setting(**args):
company.enable_provisional_accounting_for_non_stock_items = args.enable or 0 company.enable_provisional_accounting_for_non_stock_items = args.enable or 0
company.default_provisional_account = args.provisional_account company.default_provisional_account = args.provisional_account
company.save() company.save()
test_records = frappe.get_test_records("Purchase Invoice")

View File

@@ -68,7 +68,7 @@ class TestSalesInvoice(IntegrationTestCase):
frappe.db.rollback() frappe.db.rollback()
def make(self): def make(self):
w = frappe.copy_doc(test_records[0]) w = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
w.is_pos = 0 w.is_pos = 0
w.insert() w.insert()
w.submit() w.submit()
@@ -93,7 +93,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(si.items[0].qty, 1) self.assertEqual(si.items[0].qty, 1)
def test_timestamp_change(self): def test_timestamp_change(self):
w = frappe.copy_doc(test_records[0]) w = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
w.docstatus = 0 w.docstatus = 0
w.insert() w.insert()
@@ -110,27 +110,27 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertRaises(frappe.TimestampMismatchError, w2.save) self.assertRaises(frappe.TimestampMismatchError, w2.save)
def test_sales_invoice_change_naming_series(self): def test_sales_invoice_change_naming_series(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.insert() si.insert()
si.naming_series = "TEST-" si.naming_series = "TEST-"
self.assertRaises(frappe.CannotChangeConstantError, si.save) self.assertRaises(frappe.CannotChangeConstantError, si.save)
si = frappe.copy_doc(test_records[1]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][1])
si.insert() si.insert()
si.naming_series = "TEST-" si.naming_series = "TEST-"
self.assertRaises(frappe.CannotChangeConstantError, si.save) self.assertRaises(frappe.CannotChangeConstantError, si.save)
def test_add_terms_after_save(self): def test_add_terms_after_save(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.insert() si.insert()
self.assertTrue(si.payment_schedule) self.assertTrue(si.payment_schedule)
self.assertEqual(getdate(si.payment_schedule[0].due_date), getdate(si.due_date)) self.assertEqual(getdate(si.payment_schedule[0].due_date), getdate(si.due_date))
def test_sales_invoice_calculation_base_currency(self): def test_sales_invoice_calculation_base_currency(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.insert() si.insert()
expected_values = { expected_values = {
@@ -182,7 +182,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_payment_entry_unlink_against_invoice(self): def test_payment_entry_unlink_against_invoice(self):
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.is_pos = 0 si.is_pos = 0
si.insert() si.insert()
si.submit() si.submit()
@@ -248,7 +248,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertRaises(PaymentEntryUnlinkError, si1.cancel) self.assertRaises(PaymentEntryUnlinkError, si1.cancel)
def test_sales_invoice_calculation_export_currency(self): def test_sales_invoice_calculation_export_currency(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.currency = "USD" si.currency = "USD"
si.conversion_rate = 50 si.conversion_rate = 50
si.get("items")[0].rate = 1 si.get("items")[0].rate = 1
@@ -367,7 +367,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(si.grand_total, 4900.00) self.assertEqual(si.grand_total, 4900.00)
def test_sales_invoice_discount_amount(self): def test_sales_invoice_discount_amount(self):
si = frappe.copy_doc(test_records[3]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][3])
si.discount_amount = 104.94 si.discount_amount = 104.94
si.append( si.append(
"taxes", "taxes",
@@ -449,7 +449,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_discount_amount_gl_entry(self): def test_discount_amount_gl_entry(self):
frappe.db.set_value("Company", "_Test Company", "round_off_account", "Round Off - _TC") frappe.db.set_value("Company", "_Test Company", "round_off_account", "Round Off - _TC")
si = frappe.copy_doc(test_records[3]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][3])
si.discount_amount = 104.94 si.discount_amount = 104.94
si.append( si.append(
"taxes", "taxes",
@@ -480,15 +480,15 @@ class TestSalesInvoice(IntegrationTestCase):
(d[0], d) (d[0], d)
for d in [ for d in [
[si.debit_to, 1500, 0.0], [si.debit_to, 1500, 0.0],
[test_records[3]["items"][0]["income_account"], 0.0, 1163.45], [self.globalTestRecords["Sales Invoice"][3]["items"][0]["income_account"], 0.0, 1163.45],
[test_records[3]["taxes"][0]["account_head"], 0.0, 130.31], [self.globalTestRecords["Sales Invoice"][3]["taxes"][0]["account_head"], 0.0, 130.31],
[test_records[3]["taxes"][1]["account_head"], 0.0, 2.61], [self.globalTestRecords["Sales Invoice"][3]["taxes"][1]["account_head"], 0.0, 2.61],
[test_records[3]["taxes"][2]["account_head"], 0.0, 1.30], [self.globalTestRecords["Sales Invoice"][3]["taxes"][2]["account_head"], 0.0, 1.30],
[test_records[3]["taxes"][3]["account_head"], 0.0, 25.95], [self.globalTestRecords["Sales Invoice"][3]["taxes"][3]["account_head"], 0.0, 25.95],
[test_records[3]["taxes"][4]["account_head"], 0.0, 145.43], [self.globalTestRecords["Sales Invoice"][3]["taxes"][4]["account_head"], 0.0, 145.43],
[test_records[3]["taxes"][5]["account_head"], 0.0, 116.34], [self.globalTestRecords["Sales Invoice"][3]["taxes"][5]["account_head"], 0.0, 116.34],
[test_records[3]["taxes"][6]["account_head"], 0.0, 100], [self.globalTestRecords["Sales Invoice"][3]["taxes"][6]["account_head"], 0.0, 100],
[test_records[3]["taxes"][7]["account_head"], 168.54, 0.0], [self.globalTestRecords["Sales Invoice"][3]["taxes"][7]["account_head"], 168.54, 0.0],
["_Test Account Service Tax - _TC", 16.85, 0.0], ["_Test Account Service Tax - _TC", 16.85, 0.0],
["Round Off - _TC", 0.01, 0.0], ["Round Off - _TC", 0.01, 0.0],
] ]
@@ -638,7 +638,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(si.grand_total, 1116.0) self.assertEqual(si.grand_total, 1116.0)
def test_inclusive_rate_validations(self): def test_inclusive_rate_validations(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
for i, tax in enumerate(si.get("taxes")): for i, tax in enumerate(si.get("taxes")):
tax.idx = i + 1 tax.idx = i + 1
@@ -656,7 +656,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_sales_invoice_calculation_base_currency_with_tax_inclusive_price(self): def test_sales_invoice_calculation_base_currency_with_tax_inclusive_price(self):
# prepare # prepare
si = frappe.copy_doc(test_records[3]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][3])
si.insert() si.insert()
expected_values = { expected_values = {
@@ -730,7 +730,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_sales_invoice_calculation_export_currency_with_tax_inclusive_price(self): def test_sales_invoice_calculation_export_currency_with_tax_inclusive_price(self):
# prepare # prepare
si = frappe.copy_doc(test_records[3]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][3])
si.currency = "USD" si.currency = "USD"
si.conversion_rate = 50 si.conversion_rate = 50
si.get("items")[0].price_list_rate = 55.56 si.get("items")[0].price_list_rate = 55.56
@@ -819,7 +819,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(w.outstanding_amount, w.base_rounded_total) self.assertEqual(w.outstanding_amount, w.base_rounded_total)
def test_rounded_total_with_cash_discount(self): def test_rounded_total_with_cash_discount(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
item = copy.deepcopy(si.get("items")[0]) item = copy.deepcopy(si.get("items")[0])
item.update( item.update(
@@ -842,12 +842,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_payment(self): def test_payment(self):
w = self.make() w = self.make()
jv = frappe.get_doc(frappe.copy_doc(self.globalTestRecords["Journal Entry"][0]))
from erpnext.accounts.doctype.journal_entry.test_journal_entry import (
test_records as jv_test_records,
)
jv = frappe.get_doc(frappe.copy_doc(jv_test_records[0]))
jv.get("accounts")[0].reference_type = w.doctype jv.get("accounts")[0].reference_type = w.doctype
jv.get("accounts")[0].reference_name = w.name jv.get("accounts")[0].reference_name = w.name
jv.insert() jv.insert()
@@ -886,7 +881,7 @@ class TestSalesInvoice(IntegrationTestCase):
) )
# make invoice # make invoice
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.is_pos = 0 si.is_pos = 0
si.insert() si.insert()
si.submit() si.submit()
@@ -913,7 +908,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(si.outstanding_amount, 0) self.assertEqual(si.outstanding_amount, 0)
def test_sales_invoice_gl_entry_without_perpetual_inventory(self): def test_sales_invoice_gl_entry_without_perpetual_inventory(self):
si = frappe.copy_doc(test_records[1]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][1])
si.insert() si.insert()
si.submit() si.submit()
@@ -931,9 +926,9 @@ class TestSalesInvoice(IntegrationTestCase):
(d[0], d) (d[0], d)
for d in [ for d in [
[si.debit_to, 630.0, 0.0], [si.debit_to, 630.0, 0.0],
[test_records[1]["items"][0]["income_account"], 0.0, 500.0], [self.globalTestRecords["Sales Invoice"][1]["items"][0]["income_account"], 0.0, 500.0],
[test_records[1]["taxes"][0]["account_head"], 0.0, 80.0], [self.globalTestRecords["Sales Invoice"][1]["taxes"][0]["account_head"], 0.0, 80.0],
[test_records[1]["taxes"][1]["account_head"], 0.0, 50.0], [self.globalTestRecords["Sales Invoice"][1]["taxes"][1]["account_head"], 0.0, 50.0],
] ]
) )
@@ -1310,7 +1305,7 @@ class TestSalesInvoice(IntegrationTestCase):
def test_pos_si_without_payment(self): def test_pos_si_without_payment(self):
make_pos_profile() make_pos_profile()
pos = copy.deepcopy(test_records[1]) pos = copy.deepcopy(dict(self.globalTestRecords["Sales Invoice"][1]))
pos["is_pos"] = 1 pos["is_pos"] = 1
pos["update_stock"] = 1 pos["update_stock"] = 1
@@ -1365,7 +1360,7 @@ class TestSalesInvoice(IntegrationTestCase):
(d[0], d) (d[0], d)
for d in [ for d in [
[si.debit_to, 100.0, 0.0], [si.debit_to, 100.0, 0.0],
[test_records[1]["items"][0]["income_account"], 0.0, 100.0], [self.globalTestRecords["Sales Invoice"][1]["items"][0]["income_account"], 0.0, 100.0],
] ]
) )
for _i, gle in enumerate(gl_entries): for _i, gle in enumerate(gl_entries):
@@ -1374,21 +1369,13 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(expected_values[gle.account][2], gle.credit) self.assertEqual(expected_values[gle.account][2], gle.credit)
def _insert_purchase_receipt(self): def _insert_purchase_receipt(self):
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import ( pr = frappe.copy_doc(self.globalTestRecords["Purchase Receipt"][0])
test_records as pr_test_records,
)
pr = frappe.copy_doc(pr_test_records[0])
pr.naming_series = "_T-Purchase Receipt-" pr.naming_series = "_T-Purchase Receipt-"
pr.insert() pr.insert()
pr.submit() pr.submit()
def _insert_delivery_note(self): def _insert_delivery_note(self):
from erpnext.stock.doctype.delivery_note.test_delivery_note import ( dn = frappe.copy_doc(self.globalTestRecords["Delivery Note"][0])
test_records as dn_test_records,
)
dn = frappe.copy_doc(dn_test_records[0])
dn.naming_series = "_T-Delivery Note-" dn.naming_series = "_T-Delivery Note-"
dn.insert() dn.insert()
dn.submit() dn.submit()
@@ -1398,15 +1385,11 @@ class TestSalesInvoice(IntegrationTestCase):
"Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1} "Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1}
) )
def test_sales_invoice_with_advance(self): def test_sales_invoice_with_advance(self):
from erpnext.accounts.doctype.journal_entry.test_journal_entry import ( jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][0])
test_records as jv_test_records,
)
jv = frappe.copy_doc(jv_test_records[0])
jv.insert() jv.insert()
jv.submit() jv.submit()
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.allocate_advances_automatically = 0 si.allocate_advances_automatically = 0
si.append( si.append(
"advances", "advances",
@@ -1447,11 +1430,11 @@ class TestSalesInvoice(IntegrationTestCase):
def test_serialized(self): def test_serialized(self):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item() se = make_serialized_item(self)
se.load_from_db() se.load_from_db()
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.update_stock = 1 si.update_stock = 1
si.get("items")[0].item_code = "_Test Serialized Item With Series" si.get("items")[0].item_code = "_Test Serialized Item With Series"
si.get("items")[0].qty = 1 si.get("items")[0].qty = 1
@@ -1499,7 +1482,7 @@ class TestSalesInvoice(IntegrationTestCase):
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item() se = make_serialized_item(self)
se.load_from_db() se.load_from_db()
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0] serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]
@@ -1678,7 +1661,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(incoming_rate, 10.0) self.assertEqual(incoming_rate, 10.0)
def test_discount_on_net_total(self): def test_discount_on_net_total(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.apply_discount_on = "Net Total" si.apply_discount_on = "Net Total"
si.discount_amount = 625 si.discount_amount = 625
si.insert() si.insert()
@@ -1917,16 +1900,12 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(si.get("items")[0].rate, flt((price_list_rate * 25) / 100 + price_list_rate)) self.assertEqual(si.get("items")[0].rate, flt((price_list_rate * 25) / 100 + price_list_rate))
def test_outstanding_amount_after_advance_jv_cancellation(self): def test_outstanding_amount_after_advance_jv_cancellation(self):
from erpnext.accounts.doctype.journal_entry.test_journal_entry import ( jv = frappe.copy_doc(self.globalTestRecords["Journal Entry"][0])
test_records as jv_test_records,
)
jv = frappe.copy_doc(jv_test_records[0])
jv.accounts[0].is_advance = "Yes" jv.accounts[0].is_advance = "Yes"
jv.insert() jv.insert()
jv.submit() jv.submit()
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.append( si.append(
"advances", "advances",
{ {
@@ -2000,7 +1979,7 @@ class TestSalesInvoice(IntegrationTestCase):
sales_order.reload() sales_order.reload()
self.assertEqual(sales_order.advance_paid, 300) self.assertEqual(sales_order.advance_paid, 300)
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.items[0].sales_order = sales_order.name si.items[0].sales_order = sales_order.name
si.items[0].so_detail = sales_order.get("items")[0].name si.items[0].so_detail = sales_order.get("items")[0].name
si.is_pos = 0 si.is_pos = 0
@@ -2053,7 +2032,7 @@ class TestSalesInvoice(IntegrationTestCase):
item_price.price_list_rate = 100 item_price.price_list_rate = 100
item_price.insert() item_price.insert()
si = frappe.copy_doc(test_records[1]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][1])
si.items[0].uom = "_Test UOM 1" si.items[0].uom = "_Test UOM 1"
si.items[0].conversion_factor = None si.items[0].conversion_factor = None
si.items[0].price_list_rate = None si.items[0].price_list_rate = None
@@ -2354,7 +2333,7 @@ class TestSalesInvoice(IntegrationTestCase):
shipping_rule_type="Selling", shipping_rule_name="Shipping Rule - Sales Invoice Test" shipping_rule_type="Selling", shipping_rule_name="Shipping Rule - Sales Invoice Test"
) )
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
si.shipping_rule = shipping_rule.name si.shipping_rule = shipping_rule.name
si.insert() si.insert()
@@ -2698,7 +2677,7 @@ class TestSalesInvoice(IntegrationTestCase):
basic_rate=500, basic_rate=500,
) )
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.customer = "_Test Internal Customer 3" si.customer = "_Test Internal Customer 3"
si.update_stock = 1 si.update_stock = 1
si.set_warehouse = "Finished Goods - _TC" si.set_warehouse = "Finished Goods - _TC"
@@ -3315,7 +3294,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(invoice.status, "Overdue and Discounted") self.assertEqual(invoice.status, "Overdue and Discounted")
def test_sales_commission(self): def test_sales_commission(self):
si = frappe.copy_doc(test_records[2]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][2])
frappe.db.set_value("Item", si.get("items")[0].item_code, "grant_commission", 1) frappe.db.set_value("Item", si.get("items")[0].item_code, "grant_commission", 1)
frappe.db.set_value("Item", si.get("items")[1].item_code, "grant_commission", 0) frappe.db.set_value("Item", si.get("items")[1].item_code, "grant_commission", 0)
@@ -4187,7 +4166,7 @@ class TestSalesInvoice(IntegrationTestCase):
self.assertEqual(jv[0], si.grand_total) self.assertEqual(jv[0], si.grand_total)
def test_invoice_remarks(self): def test_invoice_remarks(self):
si = frappe.copy_doc(test_records[0]) si = frappe.copy_doc(self.globalTestRecords["Sales Invoice"][0])
si.po_no = "Test PO" si.po_no = "Test PO"
si.po_date = nowdate() si.po_date = nowdate()
si.save() si.save()
@@ -4357,7 +4336,6 @@ def create_sales_invoice_against_cost_center(**args):
EXTRA_TEST_RECORD_DEPENDENCIES = ["Journal Entry", "Contact", "Address"] EXTRA_TEST_RECORD_DEPENDENCIES = ["Journal Entry", "Contact", "Address"]
test_records = frappe.get_test_records("Sales Invoice")
def get_outstanding_amount(against_voucher_type, against_voucher, account, party, party_type): def get_outstanding_amount(against_voucher_type, against_voucher, account, party, party_type):

View File

@@ -11,19 +11,17 @@ from erpnext.accounts.doctype.shipping_rule.shipping_rule import (
OverlappingConditionError, OverlappingConditionError,
) )
test_records = frappe.get_test_records("Shipping Rule")
class TestShippingRule(IntegrationTestCase): class TestShippingRule(IntegrationTestCase):
def test_from_greater_than_to(self): def test_from_greater_than_to(self):
shipping_rule = frappe.copy_doc(test_records[0]) shipping_rule = frappe.copy_doc(self.globalTestRecords["Shipping Rule"][0])
shipping_rule.name = test_records[0].get("name") shipping_rule.name = self.globalTestRecords["Shipping Rule"][0].get("name")
shipping_rule.get("conditions")[0].from_value = 101 shipping_rule.get("conditions")[0].from_value = 101
self.assertRaises(FromGreaterThanToError, shipping_rule.insert) self.assertRaises(FromGreaterThanToError, shipping_rule.insert)
def test_many_zero_to_values(self): def test_many_zero_to_values(self):
shipping_rule = frappe.copy_doc(test_records[0]) shipping_rule = frappe.copy_doc(self.globalTestRecords["Shipping Rule"][0])
shipping_rule.name = test_records[0].get("name") shipping_rule.name = self.globalTestRecords["Shipping Rule"][0].get("name")
shipping_rule.get("conditions")[0].to_value = 0 shipping_rule.get("conditions")[0].to_value = 0
self.assertRaises(ManyBlankToValuesError, shipping_rule.insert) self.assertRaises(ManyBlankToValuesError, shipping_rule.insert)
@@ -35,8 +33,8 @@ class TestShippingRule(IntegrationTestCase):
((50, 150), (25, 175)), ((50, 150), (25, 175)),
((50, 150), (50, 150)), ((50, 150), (50, 150)),
]: ]:
shipping_rule = frappe.copy_doc(test_records[0]) shipping_rule = frappe.copy_doc(self.globalTestRecords["Shipping Rule"][0])
shipping_rule.name = test_records[0].get("name") shipping_rule.name = self.globalTestRecords["Shipping Rule"][0].get("name")
shipping_rule.get("conditions")[0].from_value = range_a[0] shipping_rule.get("conditions")[0].from_value = range_a[0]
shipping_rule.get("conditions")[0].to_value = range_a[1] shipping_rule.get("conditions")[0].to_value = range_a[1]
shipping_rule.get("conditions")[1].from_value = range_b[0] shipping_rule.get("conditions")[1].from_value = range_b[0]

View File

@@ -90,7 +90,7 @@ class TestAssetRepair(IntegrationTestCase):
def test_serialized_item_consumption(self): def test_serialized_item_consumption(self):
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
stock_entry = make_serialized_item() stock_entry = make_serialized_item(self)
bundle_id = stock_entry.get("items")[0].serial_and_batch_bundle bundle_id = stock_entry.get("items")[0].serial_and_batch_bundle
serial_nos = get_serial_nos_from_bundle(bundle_id) serial_nos = get_serial_nos_from_bundle(bundle_id)
serial_no = serial_nos[0] serial_no = serial_nos[0]

View File

@@ -19,7 +19,7 @@ class UnitTestSupplierQuotation(UnitTestCase):
class TestPurchaseOrder(IntegrationTestCase): class TestPurchaseOrder(IntegrationTestCase):
def test_supplier_quotation_qty(self): def test_supplier_quotation_qty(self):
sq = frappe.copy_doc(test_records[0]) sq = frappe.copy_doc(self.globalTestRecords["Supplier Quotation"][0])
sq.items[0].qty = 0 sq.items[0].qty = 0
with self.assertRaises(InvalidQtyError): with self.assertRaises(InvalidQtyError):
sq.save() sq.save()
@@ -32,7 +32,7 @@ class TestPurchaseOrder(IntegrationTestCase):
def test_make_purchase_order(self): def test_make_purchase_order(self):
from erpnext.buying.doctype.supplier_quotation.supplier_quotation import make_purchase_order from erpnext.buying.doctype.supplier_quotation.supplier_quotation import make_purchase_order
sq = frappe.copy_doc(test_records[0]).insert() sq = frappe.copy_doc(self.globalTestRecords["Supplier Quotation"][0]).insert()
self.assertRaises(frappe.ValidationError, make_purchase_order, sq.name) self.assertRaises(frappe.ValidationError, make_purchase_order, sq.name)
@@ -50,6 +50,3 @@ class TestPurchaseOrder(IntegrationTestCase):
doc.set("schedule_date", "2013-04-12") doc.set("schedule_date", "2013-04-12")
po.insert() po.insert()
test_records = frappe.get_test_records("Supplier Quotation")

View File

@@ -47,9 +47,7 @@ class TestRequestedItemsToOrderAndReceive(IntegrationTestCase):
def setup_material_request(self, order=False, receive=False, days=0): def setup_material_request(self, order=False, receive=False, days=0):
po = None po = None
test_records = frappe.get_test_records("Material Request") mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr = frappe.copy_doc(test_records[0])
mr.transaction_date = add_days(today(), days) mr.transaction_date = add_days(today(), days)
mr.schedule_date = add_days(mr.transaction_date, 1) mr.schedule_date = add_days(mr.transaction_date, 1)
for row in mr.items: for row in mr.items:

View File

@@ -11,8 +11,11 @@ def add_default_params(func, doctype):
return partial(func, doctype=doctype, txt="", searchfield="name", start=0, page_len=20, filters=None) return partial(func, doctype=doctype, txt="", searchfield="name", start=0, page_len=20, filters=None)
EXTRA_TEST_RECORD_DEPENDENCIES = ["Employee", "Lead", "Item", "BOM", "Project", "Account"]
class TestQueries(IntegrationTestCase): class TestQueries(IntegrationTestCase):
# All tests are based on doctype/test_records.json # All tests are based on self.globalTestRecords[doctype]
def assert_nested_in(self, item, container): def assert_nested_in(self, item, container):
self.assertIn(item, [vals for tuples in container for vals in tuples]) self.assertIn(item, [vals for tuples in container for vals in tuples])

View File

@@ -98,7 +98,7 @@ class TestMaintenanceSchedule(IntegrationTestCase):
def test_serial_no_filters(self): def test_serial_no_filters(self):
# Without serial no. set in schedule -> returns None # Without serial no. set in schedule -> returns None
item_code = "_Test Serial Item" item_code = "_Test Serial Item"
make_serial_item_with_serial(item_code) make_serial_item_with_serial(self, item_code)
ms = make_maintenance_schedule(item_code=item_code) ms = make_maintenance_schedule(item_code=item_code)
ms.submit() ms.submit()
@@ -109,7 +109,7 @@ class TestMaintenanceSchedule(IntegrationTestCase):
self.assertEqual(serial_nos, None) self.assertEqual(serial_nos, None)
# With serial no. set in schedule -> returns serial nos. # With serial no. set in schedule -> returns serial nos.
make_serial_item_with_serial(item_code) make_serial_item_with_serial(self, item_code)
ms = make_maintenance_schedule(item_code=item_code, serial_no="TEST001, TEST002") ms = make_maintenance_schedule(item_code=item_code, serial_no="TEST001, TEST002")
ms.submit() ms.submit()
@@ -125,7 +125,7 @@ class TestMaintenanceSchedule(IntegrationTestCase):
# Checks whether serials are automatically updated when changing in items table. # Checks whether serials are automatically updated when changing in items table.
# Also checks if other fields trigger generate schdeule if changed in items table. # Also checks if other fields trigger generate schdeule if changed in items table.
item_code = "_Test Serial Item" item_code = "_Test Serial Item"
make_serial_item_with_serial(item_code) make_serial_item_with_serial(self, item_code)
ms = make_maintenance_schedule(item_code=item_code, serial_no="TEST001, TEST002") ms = make_maintenance_schedule(item_code=item_code, serial_no="TEST001, TEST002")
ms.save() ms.save()
@@ -152,7 +152,7 @@ class TestMaintenanceSchedule(IntegrationTestCase):
frappe.db.rollback() frappe.db.rollback()
def make_serial_item_with_serial(item_code): def make_serial_item_with_serial(self, item_code):
serial_item_doc = create_item(item_code, is_stock_item=1) serial_item_doc = create_item(item_code, is_stock_item=1)
if not serial_item_doc.has_serial_no or not serial_item_doc.serial_no_series: if not serial_item_doc.has_serial_no or not serial_item_doc.serial_no_series:
serial_item_doc.has_serial_no = 1 serial_item_doc.has_serial_no = 1
@@ -160,7 +160,7 @@ def make_serial_item_with_serial(item_code):
serial_item_doc.save(ignore_permissions=True) serial_item_doc.save(ignore_permissions=True)
active_serials = frappe.db.get_all("Serial No", {"status": "Active", "item_code": item_code}) active_serials = frappe.db.get_all("Serial No", {"status": "Active", "item_code": item_code})
if len(active_serials) < 2: if len(active_serials) < 2:
make_serialized_item(item_code=item_code) make_serialized_item(self, item_code=item_code)
def get_events(ms): def get_events(ms):

View File

@@ -22,7 +22,6 @@ from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import
create_stock_reconciliation, create_stock_reconciliation,
) )
test_records = frappe.get_test_records("BOM")
EXTRA_TEST_RECORD_DEPENDENCIES = ["Item", "Quality Inspection Template"] EXTRA_TEST_RECORD_DEPENDENCIES = ["Item", "Quality Inspection Template"]
@@ -43,8 +42,8 @@ class TestBOM(IntegrationTestCase):
items_dict = get_bom_items_as_dict( items_dict = get_bom_items_as_dict(
bom=get_default_bom(), company="_Test Company", qty=1, fetch_exploded=0 bom=get_default_bom(), company="_Test Company", qty=1, fetch_exploded=0
) )
self.assertTrue(test_records[2]["items"][0]["item_code"] in items_dict) self.assertTrue(self.globalTestRecords["BOM"][2]["items"][0]["item_code"] in items_dict)
self.assertTrue(test_records[2]["items"][1]["item_code"] in items_dict) self.assertTrue(self.globalTestRecords["BOM"][2]["items"][1]["item_code"] in items_dict)
self.assertEqual(len(items_dict.values()), 2) self.assertEqual(len(items_dict.values()), 2)
@timeout @timeout
@@ -54,10 +53,10 @@ class TestBOM(IntegrationTestCase):
items_dict = get_bom_items_as_dict( items_dict = get_bom_items_as_dict(
bom=get_default_bom(), company="_Test Company", qty=1, fetch_exploded=1 bom=get_default_bom(), company="_Test Company", qty=1, fetch_exploded=1
) )
self.assertTrue(test_records[2]["items"][0]["item_code"] in items_dict) self.assertTrue(self.globalTestRecords["BOM"][2]["items"][0]["item_code"] in items_dict)
self.assertFalse(test_records[2]["items"][1]["item_code"] in items_dict) self.assertFalse(self.globalTestRecords["BOM"][2]["items"][1]["item_code"] in items_dict)
self.assertTrue(test_records[0]["items"][0]["item_code"] in items_dict) self.assertTrue(self.globalTestRecords["BOM"][0]["items"][0]["item_code"] in items_dict)
self.assertTrue(test_records[0]["items"][1]["item_code"] in items_dict) self.assertTrue(self.globalTestRecords["BOM"][0]["items"][1]["item_code"] in items_dict)
self.assertEqual(len(items_dict.values()), 3) self.assertEqual(len(items_dict.values()), 3)
@timeout @timeout
@@ -115,7 +114,7 @@ class TestBOM(IntegrationTestCase):
@timeout @timeout
def test_bom_cost(self): def test_bom_cost(self):
bom = frappe.copy_doc(test_records[2]) bom = frappe.copy_doc(self.globalTestRecords["BOM"][2])
bom.insert() bom.insert()
raw_material_cost = 0.0 raw_material_cost = 0.0
@@ -144,7 +143,7 @@ class TestBOM(IntegrationTestCase):
@timeout @timeout
def test_bom_cost_with_batch_size(self): def test_bom_cost_with_batch_size(self):
bom = frappe.copy_doc(test_records[2]) bom = frappe.copy_doc(self.globalTestRecords["BOM"][2])
bom.docstatus = 0 bom.docstatus = 0
op_cost = 0.0 op_cost = 0.0
for op_row in bom.operations: for op_row in bom.operations:
@@ -174,7 +173,7 @@ class TestBOM(IntegrationTestCase):
item_price.price_list_rate = rate item_price.price_list_rate = rate
item_price.insert() item_price.insert()
bom = frappe.copy_doc(test_records[2]) bom = frappe.copy_doc(self.globalTestRecords["BOM"][2])
bom.set_rate_of_sub_assembly_item_based_on_bom = 0 bom.set_rate_of_sub_assembly_item_based_on_bom = 0
bom.rm_cost_as_per = "Price List" bom.rm_cost_as_per = "Price List"
bom.buying_price_list = "_Test Price List" bom.buying_price_list = "_Test Price List"
@@ -200,7 +199,7 @@ class TestBOM(IntegrationTestCase):
@timeout @timeout
def test_bom_cost_multi_uom_based_on_valuation_rate(self): def test_bom_cost_multi_uom_based_on_valuation_rate(self):
bom = frappe.copy_doc(test_records[2]) bom = frappe.copy_doc(self.globalTestRecords["BOM"][2])
bom.set_rate_of_sub_assembly_item_based_on_bom = 0 bom.set_rate_of_sub_assembly_item_based_on_bom = 0
bom.rm_cost_as_per = "Valuation Rate" bom.rm_cost_as_per = "Valuation Rate"
bom.items[0].uom = "_Test UOM 1" bom.items[0].uom = "_Test UOM 1"
@@ -220,7 +219,7 @@ class TestBOM(IntegrationTestCase):
@timeout @timeout
def test_bom_cost_with_fg_based_operating_cost(self): def test_bom_cost_with_fg_based_operating_cost(self):
bom = frappe.copy_doc(test_records[4]) bom = frappe.copy_doc(self.globalTestRecords["BOM"][4])
bom.insert() bom.insert()
raw_material_cost = 0.0 raw_material_cost = 0.0
@@ -575,7 +574,7 @@ class TestBOM(IntegrationTestCase):
@timeout @timeout
def test_clear_inpection_quality(self): def test_clear_inpection_quality(self):
bom = frappe.copy_doc(test_records[2], ignore_no_copy=True) bom = frappe.copy_doc(self.globalTestRecords["BOM"][2], ignore_no_copy=True)
bom.docstatus = 0 bom.docstatus = 0
bom.is_default = 0 bom.is_default = 0
bom.quality_inspection_template = "_Test Quality Inspection Template" bom.quality_inspection_template = "_Test Quality Inspection Template"

View File

@@ -13,8 +13,6 @@ from erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool import (
enqueue_update_cost, enqueue_update_cost,
) )
test_records = frappe.get_test_records("BOM")
class UnitTestBomUpdateLog(UnitTestCase): class UnitTestBomUpdateLog(UnitTestCase):
""" """
@@ -25,11 +23,14 @@ class UnitTestBomUpdateLog(UnitTestCase):
pass pass
EXTRA_TEST_RECORD_DEPENDENCIES = ["BOM"]
class TestBOMUpdateLog(IntegrationTestCase): class TestBOMUpdateLog(IntegrationTestCase):
"Test BOM Update Tool Operations via BOM Update Log." "Test BOM Update Tool Operations via BOM Update Log."
def setUp(self): def setUp(self):
bom_doc = frappe.copy_doc(test_records[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

@@ -12,8 +12,6 @@ from erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool import enqueu
from erpnext.manufacturing.doctype.production_plan.test_production_plan import make_bom from erpnext.manufacturing.doctype.production_plan.test_production_plan import make_bom
from erpnext.stock.doctype.item.test_item import create_item from erpnext.stock.doctype.item.test_item import create_item
test_records = frappe.get_test_records("BOM")
class UnitTestBomUpdateTool(UnitTestCase): class UnitTestBomUpdateTool(UnitTestCase):
""" """
@@ -24,6 +22,9 @@ class UnitTestBomUpdateTool(UnitTestCase):
pass pass
EXTRA_TEST_RECORD_DEPENDENCIES = ["BOM"]
class TestBOMUpdateTool(IntegrationTestCase): class TestBOMUpdateTool(IntegrationTestCase):
"Test major functions run via BOM Update Tool." "Test major functions run via BOM Update Tool."
@@ -34,7 +35,7 @@ class TestBOMUpdateTool(IntegrationTestCase):
def test_replace_bom(self): def test_replace_bom(self):
current_bom = "BOM-_Test Item Home Desktop Manufactured-001" current_bom = "BOM-_Test Item Home Desktop Manufactured-001"
bom_doc = frappe.copy_doc(test_records[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

@@ -37,11 +37,19 @@ class UnitTestJobCard(UnitTestCase):
class TestJobCard(IntegrationTestCase): class TestJobCard(IntegrationTestCase):
def setUp(self): def setUp(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"
self.source_warehouse = None self.source_warehouse = None
self._work_order = None self._work_order = None
def make_bom_for_jc_tests(self):
bom = frappe.copy_doc(self.globalTestRecords["BOM"][2])
bom.set_rate_of_sub_assembly_item_based_on_bom = 0
bom.rm_cost_as_per = "Valuation Rate"
bom.items[0].uom = "_Test UOM 1"
bom.items[0].conversion_factor = 5
bom.insert()
@property @property
def work_order(self) -> WorkOrder: def work_order(self) -> WorkOrder:
"""Work Order lazily created for tests.""" """Work Order lazily created for tests."""
@@ -669,13 +677,3 @@ def make_wo_with_transfer_against_jc():
work_order.submit() work_order.submit()
return work_order return work_order
def make_bom_for_jc_tests():
test_records = frappe.get_test_records("BOM")
bom = frappe.copy_doc(test_records[2])
bom.set_rate_of_sub_assembly_item_based_on_bom = 0
bom.rm_cost_as_per = "Valuation Rate"
bom.items[0].uom = "_Test UOM 1"
bom.items[0].conversion_factor = 5
bom.insert()

View File

@@ -41,7 +41,7 @@ class TestQuotation(IntegrationTestCase):
def test_make_sales_order_terms_copied(self): def test_make_sales_order_terms_copied(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order from erpnext.selling.doctype.quotation.quotation import make_sales_order
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.insert() quotation.insert()
@@ -90,7 +90,7 @@ class TestQuotation(IntegrationTestCase):
maintain_rate = frappe.db.get_single_value("Selling Settings", "maintain_same_sales_rate") maintain_rate = frappe.db.get_single_value("Selling Settings", "maintain_same_sales_rate")
frappe.db.set_single_value("Selling Settings", "maintain_same_sales_rate", 1) frappe.db.set_single_value("Selling Settings", "maintain_same_sales_rate", 1)
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.insert() quotation.insert()
@@ -105,7 +105,7 @@ class TestQuotation(IntegrationTestCase):
def test_make_sales_order_with_different_currency(self): def test_make_sales_order_with_different_currency(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order from erpnext.selling.doctype.quotation.quotation import make_sales_order
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.insert() quotation.insert()
@@ -125,7 +125,7 @@ class TestQuotation(IntegrationTestCase):
def test_make_sales_order(self): def test_make_sales_order(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order from erpnext.selling.doctype.quotation.quotation import make_sales_order
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.insert() quotation.insert()
@@ -149,7 +149,7 @@ class TestQuotation(IntegrationTestCase):
def test_make_sales_order_with_terms(self): def test_make_sales_order_with_terms(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order from erpnext.selling.doctype.quotation.quotation import make_sales_order
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.update({"payment_terms_template": "_Test Payment Term Template"}) quotation.update({"payment_terms_template": "_Test Payment Term Template"})
@@ -189,7 +189,7 @@ class TestQuotation(IntegrationTestCase):
) )
def test_valid_till_before_transaction_date(self): def test_valid_till_before_transaction_date(self):
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.valid_till = add_days(quotation.transaction_date, -1) quotation.valid_till = add_days(quotation.transaction_date, -1)
self.assertRaises(frappe.ValidationError, quotation.validate) self.assertRaises(frappe.ValidationError, quotation.validate)
@@ -198,7 +198,7 @@ class TestQuotation(IntegrationTestCase):
frappe.db.set_single_value("Selling Settings", "allow_sales_order_creation_for_expired_quotation", 0) frappe.db.set_single_value("Selling Settings", "allow_sales_order_creation_for_expired_quotation", 0)
quotation = frappe.copy_doc(test_records[0]) quotation = frappe.copy_doc(self.globalTestRecords["Quotation"][0])
quotation.valid_till = add_days(nowdate(), -1) quotation.valid_till = add_days(nowdate(), -1)
quotation.insert() quotation.insert()
quotation.submit() quotation.submit()
@@ -218,11 +218,13 @@ class TestQuotation(IntegrationTestCase):
rate_with_margin = flt((1500 * 18.75) / 100 + 1500) rate_with_margin = flt((1500 * 18.75) / 100 + 1500)
test_records[0]["items"][0]["price_list_rate"] = 1500 test_record = dict(self.globalTestRecords["Quotation"][0])
test_records[0]["items"][0]["margin_type"] = "Percentage"
test_records[0]["items"][0]["margin_rate_or_amount"] = 18.75
quotation = frappe.copy_doc(test_records[0]) test_record["items"][0]["price_list_rate"] = 1500
test_record["items"][0]["margin_type"] = "Percentage"
test_record["items"][0]["margin_rate_or_amount"] = 18.75
quotation = frappe.copy_doc(test_record)
quotation.transaction_date = nowdate() quotation.transaction_date = nowdate()
quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.valid_till = add_months(quotation.transaction_date, 1)
quotation.insert() quotation.insert()
@@ -737,9 +739,6 @@ class TestQuotation(IntegrationTestCase):
item_doc.save() item_doc.save()
test_records = frappe.get_test_records("Quotation")
def enable_calculate_bundle_price(enable=1): def enable_calculate_bundle_price(enable=1):
selling_settings = frappe.get_doc("Selling Settings") selling_settings = frappe.get_doc("Selling Settings")
selling_settings.editable_bundle_item_rates = enable selling_settings.editable_bundle_item_rates = enable

View File

@@ -21,7 +21,6 @@ IGNORE_TEST_RECORD_DEPENDENCIES = [
"Warehouse", "Warehouse",
] ]
EXTRA_TEST_RECORD_DEPENDENCIES = ["Fiscal Year"] EXTRA_TEST_RECORD_DEPENDENCIES = ["Fiscal Year"]
test_records = frappe.get_test_records("Company")
class TestCompany(IntegrationTestCase): class TestCompany(IntegrationTestCase):
@@ -116,7 +115,7 @@ class TestCompany(IntegrationTestCase):
max_rgt = frappe.db.sql("select max(rgt) from `tabCompany`")[0][0] max_rgt = frappe.db.sql("select max(rgt) from `tabCompany`")[0][0]
if not records: if not records:
records = test_records[2:] records = self.globalTestRecords["Company"][2:]
for company in records: for company in records:
lft, rgt, parent_company = frappe.db.get_value( lft, rgt, parent_company = frappe.db.get_value(

View File

@@ -9,8 +9,6 @@ from frappe.utils import cint, flt
from erpnext.setup.utils import get_exchange_rate from erpnext.setup.utils import get_exchange_rate
test_records = frappe.get_test_records("Currency Exchange")
def save_new_records(test_records): def save_new_records(test_records):
for record in test_records: for record in test_records:
@@ -92,7 +90,7 @@ class TestCurrencyExchange(IntegrationTestCase):
self.clear_cache() self.clear_cache()
def test_exchange_rate(self, mock_get): def test_exchange_rate(self, mock_get):
save_new_records(test_records) save_new_records(self.globalTestRecords["Currency Exchange"])
frappe.db.set_single_value("Accounts Settings", "allow_stale", 1) frappe.db.set_single_value("Accounts Settings", "allow_stale", 1)
@@ -117,7 +115,7 @@ class TestCurrencyExchange(IntegrationTestCase):
self.assertEqual(flt(exchange_rate, 3), 65.1) self.assertEqual(flt(exchange_rate, 3), 65.1)
def test_exchange_rate_via_exchangerate_host(self, mock_get): def test_exchange_rate_via_exchangerate_host(self, mock_get):
save_new_records(test_records) save_new_records(self.globalTestRecords["Currency Exchange"])
# Update Currency Exchange Rate # Update Currency Exchange Rate
settings = frappe.get_single("Currency Exchange Settings") settings = frappe.get_single("Currency Exchange Settings")

View File

@@ -13,8 +13,6 @@ from frappe.utils.nestedset import (
rebuild_tree, rebuild_tree,
) )
test_records = frappe.get_test_records("Item Group")
class TestItem(IntegrationTestCase): class TestItem(IntegrationTestCase):
def test_basic_tree(self, records=None): def test_basic_tree(self, records=None):
@@ -22,7 +20,7 @@ class TestItem(IntegrationTestCase):
max_rgt = frappe.db.sql("select max(rgt) from `tabItem Group`")[0][0] max_rgt = frappe.db.sql("select max(rgt) from `tabItem Group`")[0][0]
if not records: if not records:
records = test_records[2:] records = self.globalTestRecords["Item Group"][2:]
for item_group in records: for item_group in records:
lft, rgt, parent_item_group = frappe.db.get_value( lft, rgt, parent_item_group = frappe.db.get_value(
@@ -165,7 +163,7 @@ class TestItem(IntegrationTestCase):
) )
frappe.delete_doc("Item Group", "_Test Item Group B - 3") frappe.delete_doc("Item Group", "_Test Item Group B - 3")
records_to_test = test_records[2:] records_to_test = self.globalTestRecords["Item Group"][2:]
del records_to_test[4] del records_to_test[4]
self.test_basic_tree(records=records_to_test) self.test_basic_tree(records=records_to_test)
@@ -175,7 +173,7 @@ class TestItem(IntegrationTestCase):
self.assertEqual(new_rgt, item_group.rgt - 2) self.assertEqual(new_rgt, item_group.rgt - 2)
# insert it back # insert it back
frappe.copy_doc(test_records[6]).insert() frappe.copy_doc(self.globalTestRecords["Item Group"][6]).insert()
self.test_basic_tree() self.test_basic_tree()
@@ -185,12 +183,12 @@ class TestItem(IntegrationTestCase):
def test_merge_groups(self): def test_merge_groups(self):
frappe.rename_doc("Item Group", "_Test Item Group B", "_Test Item Group C", merge=True) frappe.rename_doc("Item Group", "_Test Item Group B", "_Test Item Group C", merge=True)
records_to_test = test_records[2:] records_to_test = self.globalTestRecords["Item Group"][2:]
del records_to_test[1] del records_to_test[1]
self.test_basic_tree(records=records_to_test) self.test_basic_tree(records=records_to_test)
# insert Group B back # insert Group B back
frappe.copy_doc(test_records[3]).insert() frappe.copy_doc(self.globalTestRecords["Item Group"][3]).insert()
self.test_basic_tree() self.test_basic_tree()
# move its children back # move its children back
@@ -206,12 +204,12 @@ class TestItem(IntegrationTestCase):
def test_merge_leaves(self): def test_merge_leaves(self):
frappe.rename_doc("Item Group", "_Test Item Group B - 2", "_Test Item Group B - 1", merge=True) frappe.rename_doc("Item Group", "_Test Item Group B - 2", "_Test Item Group B - 1", merge=True)
records_to_test = test_records[2:] records_to_test = self.globalTestRecords["Item Group"][2:]
del records_to_test[3] del records_to_test[3]
self.test_basic_tree(records=records_to_test) self.test_basic_tree(records=records_to_test)
# insert Group B - 2back # insert Group B - 2back
frappe.copy_doc(test_records[5]).insert() frappe.copy_doc(self.globalTestRecords["Item Group"][5]).insert()
self.test_basic_tree() self.test_basic_tree()
def test_merge_leaf_into_group(self): def test_merge_leaf_into_group(self):

View File

@@ -756,7 +756,7 @@ class TestDeliveryNote(IntegrationTestCase):
self.assertEqual(flt(bin_details.ordered_qty), flt(packed_item.ordered_qty)) self.assertEqual(flt(bin_details.ordered_qty), flt(packed_item.ordered_qty))
def test_return_for_serialized_items(self): def test_return_for_serialized_items(self):
se = make_serialized_item() se = make_serialized_item(self)
serial_no = [get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]] serial_no = [get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]]

View File

@@ -89,16 +89,16 @@ class TestItem(IntegrationTestCase):
frappe.flags.attribute_values = None frappe.flags.attribute_values = None
def get_item(self, idx): def get_item(self, idx):
item_code = test_records[idx].get("item_code") item_code = self.globalTestRecords["Item"][idx].get("item_code")
if not frappe.db.exists("Item", item_code): if not frappe.db.exists("Item", item_code):
item = frappe.copy_doc(test_records[idx]) item = frappe.copy_doc(self.globalTestRecords["Item"][idx])
item.insert() item.insert()
else: else:
item = frappe.get_doc("Item", item_code) item = frappe.get_doc("Item", item_code)
return item return item
def test_get_item_details(self): def test_get_item_details(self):
# delete modified item price record and make as per test_records # delete modified item price record and make as per self.globalTestRecords["Item"]
frappe.db.sql("""delete from `tabItem Price`""") frappe.db.sql("""delete from `tabItem Price`""")
frappe.db.sql("""delete from `tabBin`""") frappe.db.sql("""delete from `tabBin`""")
@@ -693,7 +693,7 @@ class TestItem(IntegrationTestCase):
self.assertEqual(received_attrs, {"Extra Small", "Extra Large"}) self.assertEqual(received_attrs, {"Extra Small", "Extra Large"})
def test_check_stock_uom_with_bin(self): def test_check_stock_uom_with_bin(self):
# this item has opening stock and stock_uom set in test_records. # this item has opening stock and stock_uom set in self.globalTestRecords["Item"].
item = frappe.get_doc("Item", "_Test Item") item = frappe.get_doc("Item", "_Test Item")
item.stock_uom = "Gram" item.stock_uom = "Gram"
self.assertRaises(frappe.ValidationError, item.save) self.assertRaises(frappe.ValidationError, item.save)
@@ -936,9 +936,6 @@ def make_item_variant():
variant.save() variant.save()
test_records = frappe.get_test_records("Item")
def create_item( def create_item(
item_code, item_code,
is_stock_item=1, is_stock_item=1,

View File

@@ -48,7 +48,7 @@ class TestItemPrice(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, doc.save) self.assertRaises(frappe.ValidationError, doc.save)
def test_duplicate_item(self): def test_duplicate_item(self):
doc = frappe.copy_doc(test_records[0]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][0])
self.assertRaises(ItemPriceDuplicateItem, doc.save) self.assertRaises(ItemPriceDuplicateItem, doc.save)
def test_addition_of_new_fields(self): def test_addition_of_new_fields(self):
@@ -63,13 +63,13 @@ class TestItemPrice(IntegrationTestCase):
"valid_upto", "valid_upto",
"note", "note",
] ]
doc_fields = frappe.copy_doc(test_records[1]).__dict__.keys() doc_fields = frappe.copy_doc(self.globalTestRecords["Item Price"][1]).__dict__.keys()
for test_field in test_fields_existance: for test_field in test_fields_existance:
self.assertTrue(test_field in doc_fields) self.assertTrue(test_field in doc_fields)
def test_dates_validation_error(self): def test_dates_validation_error(self):
doc = frappe.copy_doc(test_records[1]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][1])
# Enter invalid dates valid_from >= valid_upto # Enter invalid dates valid_from >= valid_upto
doc.valid_from = "2017-04-20" doc.valid_from = "2017-04-20"
doc.valid_upto = "2017-04-17" doc.valid_upto = "2017-04-17"
@@ -78,7 +78,7 @@ class TestItemPrice(IntegrationTestCase):
def test_price_in_a_qty(self): def test_price_in_a_qty(self):
# Check correct price at this quantity # Check correct price at this quantity
doc = frappe.copy_doc(test_records[2]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][2])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
@@ -93,7 +93,7 @@ class TestItemPrice(IntegrationTestCase):
def test_price_with_no_qty(self): def test_price_with_no_qty(self):
# Check correct price when no quantity # Check correct price when no quantity
doc = frappe.copy_doc(test_records[2]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][2])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
"customer": doc.customer, "customer": doc.customer,
@@ -106,7 +106,7 @@ class TestItemPrice(IntegrationTestCase):
def test_prices_at_date(self): def test_prices_at_date(self):
# Check correct price at first date # Check correct price at first date
doc = frappe.copy_doc(test_records[2]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][2])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
@@ -121,7 +121,7 @@ class TestItemPrice(IntegrationTestCase):
def test_prices_at_invalid_date(self): def test_prices_at_invalid_date(self):
# Check correct price at invalid date # Check correct price at invalid date
doc = frappe.copy_doc(test_records[3]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][3])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
@@ -135,7 +135,7 @@ class TestItemPrice(IntegrationTestCase):
def test_prices_outside_of_date(self): def test_prices_outside_of_date(self):
# Check correct price when outside of the date # Check correct price when outside of the date
doc = frappe.copy_doc(test_records[4]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][4])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
@@ -150,7 +150,7 @@ class TestItemPrice(IntegrationTestCase):
def test_lowest_price_when_no_date_provided(self): def test_lowest_price_when_no_date_provided(self):
# Check lowest price when no date provided # Check lowest price when no date provided
doc = frappe.copy_doc(test_records[1]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][1])
args = { args = {
"price_list": doc.price_list, "price_list": doc.price_list,
@@ -162,14 +162,14 @@ class TestItemPrice(IntegrationTestCase):
self.assertEqual(price, 10) self.assertEqual(price, 10)
def test_invalid_item(self): def test_invalid_item(self):
doc = frappe.copy_doc(test_records[1]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][1])
# Enter invalid item code # Enter invalid item code
doc.item_code = "This is not an item code" doc.item_code = "This is not an item code"
# Valid item codes must already exist # Valid item codes must already exist
self.assertRaises(frappe.ValidationError, doc.save) self.assertRaises(frappe.ValidationError, doc.save)
def test_invalid_price_list(self): def test_invalid_price_list(self):
doc = frappe.copy_doc(test_records[1]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][1])
# Check for invalid price list # Check for invalid price list
doc.price_list = "This is not a price list" doc.price_list = "This is not a price list"
# Valid price list must already exist # Valid price list must already exist
@@ -177,7 +177,7 @@ class TestItemPrice(IntegrationTestCase):
def test_empty_duplicate_validation(self): def test_empty_duplicate_validation(self):
# Check if none/empty values are not compared during insert validation # Check if none/empty values are not compared during insert validation
doc = frappe.copy_doc(test_records[2]) doc = frappe.copy_doc(self.globalTestRecords["Item Price"][2])
doc.customer = None doc.customer = None
doc.price_list_rate = 21 doc.price_list_rate = 21
doc.insert() doc.insert()
@@ -193,6 +193,3 @@ class TestItemPrice(IntegrationTestCase):
frappe.db.rollback() frappe.db.rollback()
self.assertEqual(price, 21) self.assertEqual(price, 21)
test_records = frappe.get_test_records("Item Price")

View File

@@ -30,6 +30,9 @@ class UnitTestLandedCostVoucher(UnitTestCase):
pass pass
EXTRA_TEST_RECORD_DEPENDENCIES = ["Currency Exchange"]
class TestLandedCostVoucher(IntegrationTestCase): class TestLandedCostVoucher(IntegrationTestCase):
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)
@@ -508,12 +511,9 @@ class TestLandedCostVoucher(IntegrationTestCase):
self.assertEqual(pr.items[1].landed_cost_voucher_amount, 100) self.assertEqual(pr.items[1].landed_cost_voucher_amount, 100)
def test_multi_currency_lcv(self): def test_multi_currency_lcv(self):
from erpnext.setup.doctype.currency_exchange.test_currency_exchange import ( from erpnext.setup.doctype.currency_exchange.test_currency_exchange import save_new_records
save_new_records,
test_records,
)
save_new_records(test_records) save_new_records(self.globalTestRecords["Currency Exchange"])
## Create USD Shipping charges_account ## Create USD Shipping charges_account
usd_shipping = create_account( usd_shipping = create_account(

View File

@@ -31,7 +31,7 @@ class UnitTestMaterialRequest(UnitTestCase):
class TestMaterialRequest(IntegrationTestCase): class TestMaterialRequest(IntegrationTestCase):
def test_material_request_qty(self): def test_material_request_qty(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.items[0].qty = 0 mr.items[0].qty = 0
with self.assertRaises(InvalidQtyError): with self.assertRaises(InvalidQtyError):
mr.insert() mr.insert()
@@ -42,7 +42,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(mr.items[0].qty, 1) self.assertEqual(mr.items[0].qty, 1)
def test_make_purchase_order(self): def test_make_purchase_order(self):
mr = frappe.copy_doc(test_records[0]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]).insert()
self.assertRaises(frappe.ValidationError, make_purchase_order, mr.name) self.assertRaises(frappe.ValidationError, make_purchase_order, mr.name)
@@ -54,7 +54,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(len(po.get("items")), len(mr.get("items"))) self.assertEqual(len(po.get("items")), len(mr.get("items")))
def test_make_supplier_quotation(self): def test_make_supplier_quotation(self):
mr = frappe.copy_doc(test_records[0]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]).insert()
self.assertRaises(frappe.ValidationError, make_supplier_quotation, mr.name) self.assertRaises(frappe.ValidationError, make_supplier_quotation, mr.name)
@@ -66,7 +66,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(len(sq.get("items")), len(mr.get("items"))) self.assertEqual(len(sq.get("items")), len(mr.get("items")))
def test_make_stock_entry(self): def test_make_stock_entry(self):
mr = frappe.copy_doc(test_records[0]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]).insert()
self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name) self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name)
@@ -81,7 +81,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(len(se.get("items")), len(mr.get("items"))) self.assertEqual(len(se.get("items")), len(mr.get("items")))
def test_in_transit_make_stock_entry(self): def test_in_transit_make_stock_entry(self):
mr = frappe.copy_doc(test_records[0]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]).insert()
self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name) self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name)
@@ -142,7 +142,7 @@ class TestMaterialRequest(IntegrationTestCase):
se.submit() se.submit()
def test_cannot_stop_cancelled_material_request(self): def test_cannot_stop_cancelled_material_request(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -151,7 +151,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, mr.update_status, "Stopped") self.assertRaises(frappe.ValidationError, mr.update_status, "Stopped")
def test_mr_changes_from_stopped_to_pending_after_reopen(self): def test_mr_changes_from_stopped_to_pending_after_reopen(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
self.assertEqual("Pending", mr.status) self.assertEqual("Pending", mr.status)
@@ -163,7 +163,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual("Pending", mr.status) self.assertEqual("Pending", mr.status)
def test_cannot_submit_cancelled_mr(self): def test_cannot_submit_cancelled_mr(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
mr.load_from_db() mr.load_from_db()
@@ -171,14 +171,14 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, mr.submit) self.assertRaises(frappe.ValidationError, mr.submit)
def test_mr_changes_from_pending_to_cancelled_after_cancel(self): def test_mr_changes_from_pending_to_cancelled_after_cancel(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
mr.cancel() mr.cancel()
self.assertEqual("Cancelled", mr.status) self.assertEqual("Cancelled", mr.status)
def test_cannot_change_cancelled_mr(self): def test_cannot_change_cancelled_mr(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
mr.load_from_db() mr.load_from_db()
@@ -192,21 +192,21 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertRaises(frappe.InvalidStatusError, mr.update_status, "Pending") self.assertRaises(frappe.InvalidStatusError, mr.update_status, "Pending")
def test_cannot_submit_deleted_material_request(self): def test_cannot_submit_deleted_material_request(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.delete() mr.delete()
self.assertRaises(frappe.ValidationError, mr.submit) self.assertRaises(frappe.ValidationError, mr.submit)
def test_cannot_delete_submitted_mr(self): def test_cannot_delete_submitted_mr(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
self.assertRaises(frappe.ValidationError, mr.delete) self.assertRaises(frappe.ValidationError, mr.delete)
def test_stopped_mr_changes_to_pending_after_reopen(self): def test_stopped_mr_changes_to_pending_after_reopen(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
mr.load_from_db() mr.load_from_db()
@@ -216,7 +216,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(mr.status, "Pending") self.assertEqual(mr.status, "Pending")
def test_pending_mr_changes_to_stopped_after_stop(self): def test_pending_mr_changes_to_stopped_after_stop(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
mr.load_from_db() mr.load_from_db()
@@ -225,7 +225,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(mr.status, "Stopped") self.assertEqual(mr.status, "Stopped")
def test_cannot_stop_unsubmitted_mr(self): def test_cannot_stop_unsubmitted_mr(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
self.assertRaises(frappe.InvalidStatusError, mr.update_status, "Stopped") self.assertRaises(frappe.InvalidStatusError, mr.update_status, "Stopped")
@@ -238,7 +238,7 @@ class TestMaterialRequest(IntegrationTestCase):
) )
# submit material request of type Purchase # submit material request of type Purchase
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -310,7 +310,7 @@ class TestMaterialRequest(IntegrationTestCase):
) )
# submit material request of type Purchase # submit material request of type Purchase
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Material Transfer" mr.material_request_type = "Material Transfer"
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -472,7 +472,7 @@ class TestMaterialRequest(IntegrationTestCase):
) )
# submit material request of type Purchase # submit material request of type Purchase
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Material Transfer" mr.material_request_type = "Material Transfer"
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -547,7 +547,7 @@ class TestMaterialRequest(IntegrationTestCase):
def test_incorrect_mapping_of_stock_entry(self): def test_incorrect_mapping_of_stock_entry(self):
# submit material request of type Transfer # submit material request of type Transfer
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Material Transfer" mr.material_request_type = "Material Transfer"
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -584,7 +584,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertRaises(frappe.MappingMismatchError, se.insert) self.assertRaises(frappe.MappingMismatchError, se.insert)
# submit material request of type Transfer # submit material request of type Transfer
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Material Issue" mr.material_request_type = "Material Issue"
mr.insert() mr.insert()
mr.submit() mr.submit()
@@ -595,7 +595,7 @@ class TestMaterialRequest(IntegrationTestCase):
def test_warehouse_company_validation(self): def test_warehouse_company_validation(self):
from erpnext.stock.utils import InvalidWarehouseCompany from erpnext.stock.utils import InvalidWarehouseCompany
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.company = "_Test Company 1" mr.company = "_Test Company 1"
self.assertRaises(InvalidWarehouseCompany, mr.insert) self.assertRaises(InvalidWarehouseCompany, mr.insert)
@@ -605,7 +605,7 @@ class TestMaterialRequest(IntegrationTestCase):
) )
def test_make_stock_entry_for_material_issue(self): def test_make_stock_entry_for_material_issue(self):
mr = frappe.copy_doc(test_records[0]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0]).insert()
self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name) self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name)
@@ -629,7 +629,7 @@ class TestMaterialRequest(IntegrationTestCase):
existing_requested_qty = _get_requested_qty() existing_requested_qty = _get_requested_qty()
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Material Issue" mr.material_request_type = "Material Issue"
mr.submit() mr.submit()
frappe.db.value_cache = {} frappe.db.value_cache = {}
@@ -657,7 +657,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(_get_requested_qty(), existing_requested_qty) self.assertEqual(_get_requested_qty(), existing_requested_qty)
def test_material_request_type_manufacture(self): def test_material_request_type_manufacture(self):
mr = frappe.copy_doc(test_records[1]).insert() mr = frappe.copy_doc(self.globalTestRecords["Material Request"][1]).insert()
mr = frappe.get_doc("Material Request", mr.name) mr = frappe.get_doc("Material Request", mr.name)
mr.submit() mr.submit()
completed_qty = mr.items[0].ordered_qty completed_qty = mr.items[0].ordered_qty
@@ -729,7 +729,7 @@ class TestMaterialRequest(IntegrationTestCase):
self.assertEqual(requested_qty, existing_requested_qty) self.assertEqual(requested_qty, existing_requested_qty)
def test_multi_uom_for_purchase(self): def test_multi_uom_for_purchase(self):
mr = frappe.copy_doc(test_records[0]) mr = frappe.copy_doc(self.globalTestRecords["Material Request"][0])
mr.material_request_type = "Purchase" mr.material_request_type = "Purchase"
item = mr.items[0] item = mr.items[0]
mr.schedule_date = today() mr.schedule_date = today()
@@ -891,4 +891,3 @@ def make_material_request(**args):
EXTRA_TEST_RECORD_DEPENDENCIES = ["Currency Exchange", "BOM"] EXTRA_TEST_RECORD_DEPENDENCIES = ["Currency Exchange", "BOM"]
test_records = frappe.get_test_records("Material Request")

View File

@@ -790,7 +790,7 @@ class TestPickList(IntegrationTestCase):
self.assertEqual(so.per_delivered, 100) self.assertEqual(so.per_delivered, 100)
def test_picklist_with_partial_bundles(self): def test_picklist_with_partial_bundles(self):
# from test_records.json # from self.globalTestRecords
warehouse = "_Test Warehouse - _TC" warehouse = "_Test Warehouse - _TC"
quantities = [5, 2] quantities = [5, 2]

View File

@@ -374,7 +374,7 @@ class TestPurchaseReceipt(IntegrationTestCase):
self.assertFalse(frappe.db.get_value("Serial No", pr_row_1_serial_no, "warehouse")) self.assertFalse(frappe.db.get_value("Serial No", pr_row_1_serial_no, "warehouse"))
def test_rejected_warehouse_filter(self): def test_rejected_warehouse_filter(self):
pr = frappe.copy_doc(test_records[0]) pr = frappe.copy_doc(self.globalTestRecords["Purchase Receipt"][0])
pr.get("items")[0].item_code = "_Test Serialized Item With Series" pr.get("items")[0].item_code = "_Test Serialized Item With Series"
pr.get("items")[0].qty = 3 pr.get("items")[0].qty = 3
pr.get("items")[0].rejected_qty = 2 pr.get("items")[0].rejected_qty = 2
@@ -383,7 +383,7 @@ class TestPurchaseReceipt(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, pr.save) self.assertRaises(frappe.ValidationError, pr.save)
def test_rejected_serial_no(self): def test_rejected_serial_no(self):
pr = frappe.copy_doc(test_records[0]) pr = frappe.copy_doc(self.globalTestRecords["Purchase Receipt"][0])
pr.get("items")[0].item_code = "_Test Serialized Item With Series" pr.get("items")[0].item_code = "_Test Serialized Item With Series"
pr.get("items")[0].qty = 3 pr.get("items")[0].qty = 3
pr.get("items")[0].rejected_qty = 2 pr.get("items")[0].rejected_qty = 2
@@ -3955,4 +3955,3 @@ def make_purchase_receipt(**args):
EXTRA_TEST_RECORD_DEPENDENCIES = ["BOM", "Item Price", "Location"] EXTRA_TEST_RECORD_DEPENDENCIES = ["BOM", "Item Price", "Location"]
test_records = frappe.get_test_records("Purchase Receipt")

View File

@@ -55,7 +55,7 @@ class TestSerialNo(IntegrationTestCase):
self.assertTrue(SerialNoCannotCannotChangeError, sr.save) self.assertTrue(SerialNoCannotCannotChangeError, sr.save)
def test_inter_company_transfer(self): def test_inter_company_transfer(self):
se = make_serialized_item(target_warehouse="_Test Warehouse - _TC") se = make_serialized_item(self, target_warehouse="_Test Warehouse - _TC")
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)
create_delivery_note(item_code="_Test Serialized Item With Series", qty=1, serial_no=[serial_nos[0]]) create_delivery_note(item_code="_Test Serialized Item With Series", qty=1, serial_no=[serial_nos[0]])
@@ -85,7 +85,7 @@ class TestSerialNo(IntegrationTestCase):
Then Receive into and Deliver from second company. Then Receive into and Deliver from second company.
Try to cancel intermediate receipts/deliveries to test if it is blocked. Try to cancel intermediate receipts/deliveries to test if it is blocked.
""" """
se = make_serialized_item(target_warehouse="_Test Warehouse - _TC") se = make_serialized_item(self, target_warehouse="_Test Warehouse - _TC")
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)
sn_doc = frappe.get_doc("Serial No", serial_nos[0]) sn_doc = frappe.get_doc("Serial No", serial_nos[0])
@@ -145,7 +145,7 @@ class TestSerialNo(IntegrationTestCase):
If Receipt is cancelled, it should be Inactive in the same company. If Receipt is cancelled, it should be Inactive in the same company.
""" """
# Receipt in **first** company # Receipt in **first** company
se = make_serialized_item(target_warehouse="_Test Warehouse - _TC") se = make_serialized_item(self, target_warehouse="_Test Warehouse - _TC")
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)
sn_doc = frappe.get_doc("Serial No", serial_nos[0]) sn_doc = frappe.get_doc("Serial No", serial_nos[0])

View File

@@ -389,7 +389,7 @@ class TestStockEntry(IntegrationTestCase):
"Test `is_finished_item` for one item repacked into two items." "Test `is_finished_item` for one item repacked into two items."
make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=100, basic_rate=100) make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=100, basic_rate=100)
repack = frappe.copy_doc(test_records[3]) repack = frappe.copy_doc(self.globalTestRecords["Stock Entry"][3])
repack.posting_date = nowdate() repack.posting_date = nowdate()
repack.posting_time = nowtime() repack.posting_time = nowtime()
@@ -434,7 +434,7 @@ class TestStockEntry(IntegrationTestCase):
item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=50, basic_rate=100 item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=50, basic_rate=100
) )
repack = frappe.copy_doc(test_records[3]) repack = frappe.copy_doc(self.globalTestRecords["Stock Entry"][3])
repack.posting_date = nowdate() repack.posting_date = nowdate()
repack.posting_time = nowtime() repack.posting_time = nowtime()
repack.set_stock_entry_type() repack.set_stock_entry_type()
@@ -571,7 +571,7 @@ class TestStockEntry(IntegrationTestCase):
self.assertEqual(expected_gl_entries[i][2], gle[2]) self.assertEqual(expected_gl_entries[i][2], gle[2])
def test_serial_no_not_reqd(self): def test_serial_no_not_reqd(self):
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.get("items")[0].serial_no = "ABCD" se.get("items")[0].serial_no = "ABCD"
bundle_id = make_serial_batch_bundle( bundle_id = make_serial_batch_bundle(
@@ -593,7 +593,7 @@ class TestStockEntry(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, bundle_id.make_serial_and_batch_bundle) self.assertRaises(frappe.ValidationError, bundle_id.make_serial_and_batch_bundle)
def test_serial_no_reqd(self): def test_serial_no_reqd(self):
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.get("items")[0].item_code = "_Test Serialized Item" se.get("items")[0].item_code = "_Test Serialized Item"
se.get("items")[0].qty = 2 se.get("items")[0].qty = 2
se.get("items")[0].transfer_qty = 2 se.get("items")[0].transfer_qty = 2
@@ -616,7 +616,7 @@ class TestStockEntry(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, bundle_id.make_serial_and_batch_bundle) self.assertRaises(frappe.ValidationError, bundle_id.make_serial_and_batch_bundle)
def test_serial_no_qty_less(self): def test_serial_no_qty_less(self):
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.get("items")[0].item_code = "_Test Serialized Item" se.get("items")[0].item_code = "_Test Serialized Item"
se.get("items")[0].qty = 2 se.get("items")[0].qty = 2
se.get("items")[0].serial_no = "ABCD" se.get("items")[0].serial_no = "ABCD"
@@ -649,7 +649,7 @@ class TestStockEntry(IntegrationTestCase):
doc.item_code = "_Test Serialized Item" doc.item_code = "_Test Serialized Item"
doc.insert(ignore_permissions=True) doc.insert(ignore_permissions=True)
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.get("items")[0].item_code = "_Test Serialized Item" se.get("items")[0].item_code = "_Test Serialized Item"
se.get("items")[0].qty = 2 se.get("items")[0].qty = 2
se.get("items")[0].transfer_qty = 2 se.get("items")[0].transfer_qty = 2
@@ -681,7 +681,7 @@ class TestStockEntry(IntegrationTestCase):
self.assertFalse(frappe.db.get_value("Serial No", "ABCD1", "warehouse")) self.assertFalse(frappe.db.get_value("Serial No", "ABCD1", "warehouse"))
def test_serial_by_series(self): def test_serial_by_series(self):
se = make_serialized_item() se = make_serialized_item(self)
serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)
@@ -691,11 +691,11 @@ class TestStockEntry(IntegrationTestCase):
return se, serial_nos return se, serial_nos
def test_serial_move(self): def test_serial_move(self):
se = make_serialized_item() se = make_serialized_item(self)
serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0] serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]
frappe.flags.use_serial_and_batch_fields = True frappe.flags.use_serial_and_batch_fields = True
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.purpose = "Material Transfer" se.purpose = "Material Transfer"
se.get("items")[0].item_code = "_Test Serialized Item With Series" se.get("items")[0].item_code = "_Test Serialized Item With Series"
se.get("items")[0].qty = 1 se.get("items")[0].qty = 1
@@ -765,7 +765,7 @@ class TestStockEntry(IntegrationTestCase):
from erpnext.stock.utils import InvalidWarehouseCompany from erpnext.stock.utils import InvalidWarehouseCompany
st1 = frappe.copy_doc(test_records[0]) st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1" st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
st1.set_stock_entry_type() st1.set_stock_entry_type()
st1.insert() st1.insert()
@@ -784,7 +784,7 @@ class TestStockEntry(IntegrationTestCase):
"Sales User", "Sales Manager", "Stock User", "Stock Manager" "Sales User", "Sales Manager", "Stock User", "Stock Manager"
) )
st1 = frappe.copy_doc(test_records[0]) st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
st1.company = "_Test Company 1" st1.company = "_Test Company 1"
frappe.set_user("test@example.com") frappe.set_user("test@example.com")
@@ -794,7 +794,7 @@ class TestStockEntry(IntegrationTestCase):
test_user.add_roles("System Manager") test_user.add_roles("System Manager")
frappe.set_user("test2@example.com") frappe.set_user("test2@example.com")
st1 = frappe.copy_doc(test_records[0]) st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
st1.company = "_Test Company 1" st1.company = "_Test Company 1"
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1" st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
st1.get("items")[0].expense_account = "Stock Adjustment - _TC1" st1.get("items")[0].expense_account = "Stock Adjustment - _TC1"
@@ -814,14 +814,14 @@ class TestStockEntry(IntegrationTestCase):
# test freeze_stocks_upto # test freeze_stocks_upto
frappe.db.set_single_value("Stock Settings", "stock_frozen_upto", add_days(nowdate(), 5)) frappe.db.set_single_value("Stock Settings", "stock_frozen_upto", add_days(nowdate(), 5))
se = frappe.copy_doc(test_records[0]).insert() se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0]).insert()
self.assertRaises(StockFreezeError, se.submit) self.assertRaises(StockFreezeError, se.submit)
frappe.db.set_single_value("Stock Settings", "stock_frozen_upto", "") frappe.db.set_single_value("Stock Settings", "stock_frozen_upto", "")
# test freeze_stocks_upto_days # test freeze_stocks_upto_days
frappe.db.set_single_value("Stock Settings", "stock_frozen_upto_days", -1) frappe.db.set_single_value("Stock Settings", "stock_frozen_upto_days", -1)
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
se.set_posting_time = 1 se.set_posting_time = 1
se.posting_date = nowdate() se.posting_date = nowdate()
se.set_stock_entry_type() se.set_stock_entry_type()
@@ -989,7 +989,7 @@ class TestStockEntry(IntegrationTestCase):
self.assertRaises(frappe.ValidationError, ste.submit) self.assertRaises(frappe.ValidationError, ste.submit)
def test_same_serial_nos_in_repack_or_manufacture_entries(self): def test_same_serial_nos_in_repack_or_manufacture_entries(self):
s1 = make_serialized_item(target_warehouse="_Test Warehouse - _TC") s1 = make_serialized_item(self, target_warehouse="_Test Warehouse - _TC")
serial_nos = get_serial_nos_from_bundle(s1.get("items")[0].serial_and_batch_bundle) serial_nos = get_serial_nos_from_bundle(s1.get("items")[0].serial_and_batch_bundle)
s2 = make_stock_entry( s2 = make_stock_entry(
@@ -1048,7 +1048,7 @@ class TestStockEntry(IntegrationTestCase):
if not frappe.db.exists("Item", item_code): if not frappe.db.exists("Item", item_code):
create_item(item_code) create_item(item_code)
repack = frappe.copy_doc(test_records[3]) repack = frappe.copy_doc(self.globalTestRecords["Stock Entry"][3])
repack.inspection_required = 1 repack.inspection_required = 1
for d in repack.items: for d in repack.items:
if not d.s_warehouse and d.t_warehouse: if not d.s_warehouse and d.t_warehouse:
@@ -1182,7 +1182,7 @@ class TestStockEntry(IntegrationTestCase):
def test_conversion_factor_change(self): def test_conversion_factor_change(self):
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1) frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
repack_entry = frappe.copy_doc(test_records[3]) repack_entry = frappe.copy_doc(self.globalTestRecords["Stock Entry"][3])
repack_entry.posting_date = nowdate() repack_entry.posting_date = nowdate()
repack_entry.posting_time = nowtime() repack_entry.posting_time = nowtime()
repack_entry.set_stock_entry_type() repack_entry.set_stock_entry_type()
@@ -1867,9 +1867,9 @@ class TestStockEntry(IntegrationTestCase):
self.assertEqual(sle.stock_value, 100 * i) self.assertEqual(sle.stock_value, 100 * i)
def make_serialized_item(**args): def make_serialized_item(self, **args):
args = frappe._dict(args) args = frappe._dict(args)
se = frappe.copy_doc(test_records[0]) se = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
if args.company: if args.company:
se.company = args.company se.company = args.company
@@ -1961,9 +1961,6 @@ def get_multiple_items():
] ]
test_records = frappe.get_test_records("Stock Entry")
def initialize_records_for_future_negative_sle_test( def initialize_records_for_future_negative_sle_test(
item_code, batch_no, warehouses, opening_qty, posting_date item_code, batch_no, warehouses, opening_qty, posting_date
): ):

View File

@@ -12,7 +12,7 @@ from erpnext.maintenance.doctype.maintenance_schedule.test_maintenance_schedule
class TestStockLedgerReeport(IntegrationTestCase): class TestStockLedgerReeport(IntegrationTestCase):
def setUp(self) -> None: def setUp(self) -> None:
make_serial_item_with_serial("_Test Stock Report Serial Item") make_serial_item_with_serial(self, "_Test Stock Report Serial Item")
self.filters = frappe._dict( self.filters = frappe._dict(
company="_Test Company", company="_Test Company",
from_date=today(), from_date=today(),

View File

@@ -5,7 +5,7 @@ from frappe.tests import IntegrationTestCase
from erpnext import encode_company_abbr from erpnext import encode_company_abbr
test_records = frappe.get_test_records("Company") EXTRA_TEST_RECORD_DEPENDENCIES = ["Company"]
class TestInit(IntegrationTestCase): class TestInit(IntegrationTestCase):