From 07f8250e407080e43fefa9408e2e3e058978bbb4 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Thu, 27 Aug 2026 12:48:45 +0530 Subject: [PATCH] test: block item change on Sales Order-sourced Material Request row --- .../material_request/test_material_request.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index aaa69e9d130..0dada9746a2 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -1064,6 +1064,18 @@ class TestMaterialRequest(ERPNextTestSuite): self.assertEqual(mr.items[0].qty, 5) self.assertEqual(mr.items[1].qty, 5) + def test_item_change_on_sales_order_row_is_blocked(self): + from erpnext.selling.doctype.sales_order.sales_order import make_material_request + from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order + + other_item = create_item("_Test MR Item Swap").name + so = make_sales_order() + mr = make_material_request(so.name) + mr.material_request_type = "Purchase" + # swapping the fetched item would leave a stale link to the SO row + mr.items[0].item_code = other_item + self.assertRaises(frappe.ValidationError, mr.insert) + def test_pending_qty_in_pick_list(self): """Test for pick list mapped doc qty from partially received Material Request Transfer""" import json