From e10007c6468c545f09e394f5dea7010fd5772669 Mon Sep 17 00:00:00 2001 From: Pugazhendhi Velu Date: Wed, 5 Nov 2025 15:02:57 +0000 Subject: [PATCH] test: add test for company linked address fields --- .../tests/test_accounts_controller.py | 121 +++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/erpnext/controllers/tests/test_accounts_controller.py b/erpnext/controllers/tests/test_accounts_controller.py index 4181894c9d5..82c2cd5482e 100644 --- a/erpnext/controllers/tests/test_accounts_controller.py +++ b/erpnext/controllers/tests/test_accounts_controller.py @@ -16,9 +16,16 @@ from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_pay from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.accounts.party import get_party_account -from erpnext.buying.doctype.purchase_order.test_purchase_order import prepare_data_for_internal_transfer +from erpnext.buying.doctype.purchase_order.test_purchase_order import ( + create_purchase_order, + prepare_data_for_internal_transfer, +) from erpnext.projects.doctype.project.test_project import make_project +from erpnext.selling.doctype.quotation.test_quotation import make_quotation +from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order +from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note from erpnext.stock.doctype.item.test_item import create_item +from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt def make_customer(customer_name, currency=None): @@ -2228,6 +2235,30 @@ class TestAccountsController(IntegrationTestCase): supplier_shipping.append("links", {"link_doctype": "Supplier", "link_name": "_Test Supplier"}) supplier_shipping.save() + company_address = make_address( + address_title="Company", address_type="Shipping", address_line1="100", city="Mumbai" + ) + company_address.append("links", {"link_doctype": "Company", "link_name": "_Test Company"}) + company_address.save() + + q = make_quotation(do_not_save=True, qty=10) + q.company_address = supplier_shipping.name + self.assertRaises(frappe.ValidationError, q.save) + q.company_address = company_address.name + q.save() + + so = make_sales_order(do_not_save=True) + so.company_address = supplier_shipping.name + self.assertRaises(frappe.ValidationError, so.save) + so.company_address = company_address.name + so.save() + + so.dispatch_address_name = supplier_shipping.name + self.assertRaises(frappe.ValidationError, so.save) + so.dispatch_address_name = company_address.name + so.reload() + so.save() + si = create_sales_invoice(do_not_save=True) si.customer_address = supplier_billing.name self.assertRaises(frappe.ValidationError, si.save) @@ -2240,12 +2271,100 @@ class TestAccountsController(IntegrationTestCase): si.reload() si.save() + si.company_address = supplier_shipping.name + self.assertRaises(frappe.ValidationError, si.save) + si.company_address = company_address.name + si.reload() + si.save() + + si.dispatch_address_name = supplier_shipping.name + self.assertRaises(frappe.ValidationError, si.save) + si.dispatch_address_name = company_address.name + si.reload() + si.save() + + dn = create_delivery_note(do_not_save=True, qty=10) + dn.company_address = supplier_shipping.name + self.assertRaises(frappe.ValidationError, dn.save) + dn.company_address = company_address.name + dn.save() + + dn.dispatch_address_name = supplier_shipping.name + self.assertRaises(frappe.ValidationError, dn.save) + dn.dispatch_address_name = company_address.name + dn.reload() + dn.save() + + sq = frappe.new_doc("Supplier Quotation") + sq.naming_series = "PUR-SQTN-.YYYY.-" + sq.supplier = "_Test Supplier" + sq.company = "_Test Company" + sq.append( + "items", + { + "item_code": "_Test Item", + "item_name": "_Test Item", + "description": "_Test Item", + "warehouse": "_Test Warehouse - _TC", + "qty": 1, + "uom": "Nos", + "stock_uom": "Nos", + "rate": 100, + }, + ) + sq.shipping_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, sq.save) + sq.shipping_address = company_address.name + sq.save() + + sq.billing_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, sq.save) + sq.billing_address = company_address.name + sq.reload() + sq.save() + + po = create_purchase_order(do_not_save=True) + po.shipping_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, po.save) + po.shipping_address = company_address.name + po.save() + + po.billing_address = supplier_billing.name + self.assertRaises(frappe.ValidationError, po.save) + po.billing_address = company_address.name + po.reload() + po.save() + pi = make_purchase_invoice(do_not_save=True) pi.supplier_address = customer_shipping.name self.assertRaises(frappe.ValidationError, pi.save) pi.supplier_address = supplier_shipping.name pi.save() + pi.billing_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, pi.save) + pi.billing_address = company_address.name + pi.reload() + pi.save() + + pi.shipping_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, pi.save) + pi.shipping_address = company_address.name + pi.reload() + pi.save() + + pr = make_purchase_receipt(do_not_save=True) + pr.shipping_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, pr.save) + pr.shipping_address = company_address.name + pr.save() + + pr.billing_address = customer_shipping.name + self.assertRaises(frappe.ValidationError, pr.save) + pr.billing_address = company_address.name + pr.reload() + pr.save() + def test_party_contact(self): from frappe.contacts.doctype.contact.test_contact import create_contact