From 5db66bd6dd2a6ab37f559f4d389e38f497f6649f Mon Sep 17 00:00:00 2001 From: KerollesFathy Date: Wed, 28 Aug 2024 12:59:18 +0300 Subject: [PATCH] test: get scrap items from sub assemblies consider the parent BOM --- erpnext/manufacturing/doctype/bom/test_bom.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index d02b51ca6e7..e6ee59afb27 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -755,6 +755,19 @@ class TestBOM(FrappeTestCase): self.assertTrue("_Test RM Item 2 Fixed Asset Item" not in items) self.assertTrue("_Test RM Item 3 Manufacture Item" in items) + def test_get_scrap_items_from_sub_assemblies(self): + from erpnext.manufacturing.doctype.bom.bom import get_scrap_items_from_sub_assemblies + + bom = frappe.copy_doc(test_records[1]) + bom.insert(ignore_mandatory=True) + + bom_scraped_items = [i.get("item_code") for i in bom.get("scrap_items", [])] + + # get scrapted items for parent bom + scraped_items = get_scrap_items_from_sub_assemblies(bom.name, bom.company, 2, None) + for item_code in scraped_items.keys(): + self.assertIn(item_code, bom_scraped_items, f"Item {item_code} not found in BOM scrap items") + def get_default_bom(item_code="_Test FG Item 2"): return frappe.db.get_value("BOM", {"item": item_code, "is_active": 1, "is_default": 1})