diff --git a/awx/main/tests/functional/models/test_workflow.py b/awx/main/tests/functional/models/test_workflow.py new file mode 100644 index 0000000000..48b0fecaf5 --- /dev/null +++ b/awx/main/tests/functional/models/test_workflow.py @@ -0,0 +1,34 @@ + +# Python +import pytest + +# AWX +from awx.main.models.workflow import WorkflowJob, WorkflowJobTemplateNode + +class TestWorkflowJob: + @pytest.fixture + def workflow_job(self, workflow_job_template_factory): + wfjt = workflow_job_template_factory('blah').workflow_job_template + wfj = WorkflowJob.objects.create(workflow_job_template=wfjt) + + nodes = [WorkflowJobTemplateNode.objects.create(workflow_job_template=wfjt) for i in range(0, 5)] + + nodes[0].success_nodes.add(nodes[1]) + nodes[1].success_nodes.add(nodes[2]) + + nodes[0].failure_nodes.add(nodes[3]) + nodes[3].failure_nodes.add(nodes[4]) + + return wfj + + @pytest.mark.django_db + def test_inherit_job_template_workflow_nodes(self, mocker, workflow_job): + workflow_job.inherit_job_template_workflow_nodes() + + nodes = WorkflowJob.objects.get(id=workflow_job.id).workflow_job_nodes.all().order_by('created') + assert nodes[0].success_nodes.filter(id=nodes[1].id).exists() + assert nodes[1].success_nodes.filter(id=nodes[2].id).exists() + assert nodes[0].failure_nodes.filter(id=nodes[3].id).exists() + assert nodes[3].failure_nodes.filter(id=nodes[4].id).exists() + +