test: add test case for Quality Procedure`

This commit is contained in:
s-aga-r 2023-11-06 18:55:06 +05:30
parent 8fbd4cea5b
commit 30c6b83a10

View File

@ -1,23 +1,21 @@
# Copyright (c) 2018, Frappe and Contributors # Copyright (c) 2018, Frappe and Contributors
# See license.txt # See license.txt
import unittest
import frappe import frappe
from frappe.tests.utils import FrappeTestCase
from .quality_procedure import add_node from .quality_procedure import add_node
class TestQualityProcedure(unittest.TestCase): class TestQualityProcedure(FrappeTestCase):
def test_add_node(self): def test_add_node(self):
try: procedure = create_procedure(
procedure = frappe.get_doc( {
dict( "quality_procedure_name": "Test Procedure 1",
doctype="Quality Procedure", "is_group": 1,
quality_procedure_name="Test Procedure 1", "processes": [dict(process_description="Test Step 1")],
processes=[dict(process_description="Test Step 1")], }
) )
).insert()
frappe.local.form_dict = frappe._dict( frappe.local.form_dict = frappe._dict(
doctype="Quality Procedure", doctype="Quality Procedure",
@ -41,16 +39,69 @@ class TestQualityProcedure(unittest.TestCase):
# child unset # child unset
self.assertFalse([d for d in procedure.processes if d.name == node.name]) self.assertFalse([d for d in procedure.processes if d.name == node.name])
finally: def test_remove_parent_from_old_child(self):
procedure.delete() child_qp = create_procedure(
{
"quality_procedure_name": "Test Child 1",
def create_procedure(): "is_group": 0,
return frappe.get_doc( }
dict(
doctype="Quality Procedure",
quality_procedure_name="Test Procedure 1",
is_group=1,
processes=[dict(process_description="Test Step 1")],
) )
).insert() group_qp = create_procedure(
{
"quality_procedure_name": "Test Group",
"is_group": 1,
"processes": [dict(procedure=child_qp.name)],
}
)
child_qp.reload()
self.assertEqual(child_qp.parent_quality_procedure, group_qp.name)
group_qp.reload()
del group_qp.processes[0]
group_qp.save()
child_qp.reload()
self.assertEqual(child_qp.parent_quality_procedure, None)
def remove_child_from_old_parent(self):
child_qp = create_procedure(
{
"quality_procedure_name": "Test Child 1",
"is_group": 0,
}
)
group_qp = create_procedure(
{
"quality_procedure_name": "Test Group",
"is_group": 1,
"processes": [dict(procedure=child_qp.name)],
}
)
group_qp.reload()
self.assertTrue([d for d in group_qp.processes if d.procedure == child_qp.name])
child_qp.reload()
self.assertEqual(child_qp.parent_quality_procedure, group_qp.name)
child_qp.parent_quality_procedure = None
child_qp.save()
group_qp.reload()
self.assertFalse([d for d in group_qp.processes if d.procedure == child_qp.name])
def create_procedure(kwargs=None):
kwargs = frappe._dict(kwargs or {})
doc = frappe.new_doc("Quality Procedure")
doc.quality_procedure_name = kwargs.quality_procedure_name or "_Test Procedure"
doc.is_group = kwargs.is_group or 0
for process in kwargs.processes or []:
doc.append("processes", process)
doc.insert()
return doc