test: API hit via BOM Update Tool
- test creation of log and it's impact
This commit is contained in:
parent
a51ba4cedf
commit
1d1e925bcf
@ -1,9 +1,88 @@
|
|||||||
# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
|
|
||||||
# import frappe
|
import frappe
|
||||||
from frappe.tests.utils import FrappeTestCase
|
from frappe.tests.utils import FrappeTestCase
|
||||||
|
|
||||||
|
from erpnext.manufacturing.doctype.bom_update_log.bom_update_log import (
|
||||||
|
BOMMissingError,
|
||||||
|
run_bom_job,
|
||||||
|
)
|
||||||
|
from erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool import enqueue_replace_bom
|
||||||
|
|
||||||
|
test_records = frappe.get_test_records("BOM")
|
||||||
|
|
||||||
|
|
||||||
class TestBOMUpdateLog(FrappeTestCase):
|
class TestBOMUpdateLog(FrappeTestCase):
|
||||||
pass
|
"Test BOM Update Tool Operations via BOM Update Log."
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
bom_doc = frappe.copy_doc(test_records[0])
|
||||||
|
bom_doc.items[1].item_code = "_Test Item"
|
||||||
|
bom_doc.insert()
|
||||||
|
|
||||||
|
self.boms = frappe._dict(
|
||||||
|
current_bom="BOM-_Test Item Home Desktop Manufactured-001",
|
||||||
|
new_bom=bom_doc.name,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.new_bom_doc = bom_doc
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
frappe.db.rollback()
|
||||||
|
|
||||||
|
if self._testMethodName == "test_bom_update_log_completion":
|
||||||
|
# clear logs and delete BOM created via setUp
|
||||||
|
frappe.db.delete("BOM Update Log")
|
||||||
|
self.new_bom_doc.cancel()
|
||||||
|
self.new_bom_doc.delete()
|
||||||
|
frappe.db.commit() # explicitly commit and restore to original state
|
||||||
|
|
||||||
|
def test_bom_update_log_validate(self):
|
||||||
|
"Test if BOM presence is validated."
|
||||||
|
|
||||||
|
with self.assertRaises(BOMMissingError):
|
||||||
|
enqueue_replace_bom(boms={})
|
||||||
|
|
||||||
|
def test_bom_update_log_queueing(self):
|
||||||
|
"Test if BOM Update Log is created and queued."
|
||||||
|
|
||||||
|
log = enqueue_replace_bom(
|
||||||
|
boms=self.boms,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(log.docstatus, 1)
|
||||||
|
self.assertEqual(log.status, "Queued")
|
||||||
|
|
||||||
|
def test_bom_update_log_completion(self):
|
||||||
|
"Test if BOM Update Log handles job completion correctly."
|
||||||
|
|
||||||
|
log = enqueue_replace_bom(
|
||||||
|
boms=self.boms,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Explicitly commits log, new bom (setUp) and replacement impact.
|
||||||
|
# Is run via background jobs IRL
|
||||||
|
run_bom_job(
|
||||||
|
doc=log,
|
||||||
|
boms=self.boms,
|
||||||
|
update_type="Replace BOM",
|
||||||
|
)
|
||||||
|
log.reload()
|
||||||
|
|
||||||
|
self.assertEqual(log.status, "Completed")
|
||||||
|
|
||||||
|
# teardown (undo replace impact) due to commit
|
||||||
|
boms = frappe._dict(
|
||||||
|
current_bom=self.boms.new_bom,
|
||||||
|
new_bom=self.boms.current_bom,
|
||||||
|
)
|
||||||
|
log2 = enqueue_replace_bom(
|
||||||
|
boms=self.boms,
|
||||||
|
)
|
||||||
|
run_bom_job( # Explicitly commits
|
||||||
|
doc=log2,
|
||||||
|
boms=boms,
|
||||||
|
update_type="Replace BOM",
|
||||||
|
)
|
||||||
|
self.assertEqual(log2.status, "Completed")
|
||||||
|
|||||||
@ -13,6 +13,8 @@ test_records = frappe.get_test_records("BOM")
|
|||||||
|
|
||||||
|
|
||||||
class TestBOMUpdateTool(FrappeTestCase):
|
class TestBOMUpdateTool(FrappeTestCase):
|
||||||
|
"Test major functions run via BOM Update Tool."
|
||||||
|
|
||||||
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"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user