From 4fac1e96f4a2086b1e0ef01420cfb932e943286a Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Fri, 18 Mar 2016 15:11:13 -0400 Subject: [PATCH] Test that helps test the implemenation of role auto-reparenting --- awx/main/tests/functional/test_rbac_core.py | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/awx/main/tests/functional/test_rbac_core.py b/awx/main/tests/functional/test_rbac_core.py index d7657344f5..2ad1250f81 100644 --- a/awx/main/tests/functional/test_rbac_core.py +++ b/awx/main/tests/functional/test_rbac_core.py @@ -4,6 +4,7 @@ from awx.main.models import ( Role, RolePermission, Organization, + Project, ) @@ -195,3 +196,48 @@ def test_hierarchy_rebuilding(): assert X.is_ancestor_of(D) is False +@pytest.mark.django_db +def test_auto_parenting(): + org1 = Organization.objects.create(name='org1') + org2 = Organization.objects.create(name='org2') + + prj1 = Project.objects.create(name='prj1') + prj2 = Project.objects.create(name='prj2') + + assert org1.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org1.admin_role.is_ancestor_of(prj2.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj2.admin_role) is False + + prj1.organization = org1 + prj1.save() + + assert org1.admin_role.is_ancestor_of(prj1.admin_role) + assert org1.admin_role.is_ancestor_of(prj2.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj2.admin_role) is False + + prj2.organization = org1 + prj2.save() + + assert org1.admin_role.is_ancestor_of(prj1.admin_role) + assert org1.admin_role.is_ancestor_of(prj2.admin_role) + assert org2.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj2.admin_role) is False + + prj1.organization = org2 + prj1.save() + + assert org1.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org1.admin_role.is_ancestor_of(prj2.admin_role) + assert org2.admin_role.is_ancestor_of(prj1.admin_role) + assert org2.admin_role.is_ancestor_of(prj2.admin_role) is False + + prj2.organization = org2 + prj2.save() + + assert org1.admin_role.is_ancestor_of(prj1.admin_role) is False + assert org1.admin_role.is_ancestor_of(prj2.admin_role) is False + assert org2.admin_role.is_ancestor_of(prj1.admin_role) + assert org2.admin_role.is_ancestor_of(prj2.admin_role) +