mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-08 17:11:48 -05:00
do not deny existing workflow node relationships
This commit is contained in:
@@ -77,7 +77,7 @@ def test_node_accepts_prompted_fields(inventory, project, workflow_job_template,
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
class TestExclusivePathEnforcement():
|
||||
class TestExclusiveRelationshipEnforcement():
|
||||
@pytest.fixture
|
||||
def n1(self, workflow_job_template):
|
||||
return WorkflowJobTemplateNode.objects.create(workflow_job_template=workflow_job_template)
|
||||
@@ -86,11 +86,11 @@ class TestExclusivePathEnforcement():
|
||||
def n2(self, workflow_job_template):
|
||||
return WorkflowJobTemplateNode.objects.create(workflow_job_template=workflow_job_template)
|
||||
|
||||
def generate_url(self, path, id):
|
||||
return reverse('api:workflow_job_template_node_{}_nodes_list'.format(path),
|
||||
def generate_url(self, relationship, id):
|
||||
return reverse('api:workflow_job_template_node_{}_nodes_list'.format(relationship),
|
||||
kwargs={'pk': id})
|
||||
|
||||
path_permutations = [
|
||||
relationship_permutations = [
|
||||
['success', 'failure', 'always'],
|
||||
['success', 'always', 'failure'],
|
||||
['failure', 'always', 'success'],
|
||||
@@ -99,10 +99,10 @@ class TestExclusivePathEnforcement():
|
||||
['always', 'failure', 'success'],
|
||||
]
|
||||
|
||||
@pytest.mark.parametrize("paths", path_permutations, ids=["-".join(item) for item in path_permutations])
|
||||
def test_multi_connections_same_parent_disallowed(self, post, admin_user, n1, n2, paths):
|
||||
for index, path in enumerate(paths):
|
||||
r = post(self.generate_url(path, n1.id),
|
||||
@pytest.mark.parametrize("relationships", relationship_permutations, ids=["-".join(item) for item in relationship_permutations])
|
||||
def test_multi_connections_same_parent_disallowed(self, post, admin_user, n1, n2, relationships):
|
||||
for index, relationship in enumerate(relationships):
|
||||
r = post(self.generate_url(relationship, n1.id),
|
||||
data={'associate': True, 'id': n2.id},
|
||||
user=admin_user,
|
||||
expect=204 if index == 0 else 400)
|
||||
@@ -110,16 +110,16 @@ class TestExclusivePathEnforcement():
|
||||
if index != 0:
|
||||
assert {'Error': 'Relationship not allowed.'} == json.loads(r.content)
|
||||
|
||||
@pytest.mark.parametrize("relationship", ['success', 'failure', 'always']):
|
||||
@pytest.mark.parametrize("relationship", ['success', 'failure', 'always'])
|
||||
def test_existing_relationship_allowed(self, post, admin_user, n1, n2, relationship):
|
||||
r = post(self.generate_url(path, n1.id),
|
||||
data={'associate': True, 'id': n2.id},
|
||||
user=admin_user,
|
||||
expect=204)
|
||||
r = post(self.generate_url(path, n1.id),
|
||||
data={'associate': True, 'id': n2.id},
|
||||
user=admin_user,
|
||||
expect=200)
|
||||
post(self.generate_url(relationship, n1.id),
|
||||
data={'associate': True, 'id': n2.id},
|
||||
user=admin_user,
|
||||
expect=204)
|
||||
post(self.generate_url(relationship, n1.id),
|
||||
data={'associate': True, 'id': n2.id},
|
||||
user=admin_user,
|
||||
expect=204)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
Reference in New Issue
Block a user