1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-01 08:21:15 +03:00

Fixed post delete behavior for roles, added test

This commit is contained in:
Akita Noek 2016-03-16 09:13:33 -04:00
parent 67b37e17cb
commit 9909ea90c1
2 changed files with 7 additions and 1 deletions

View File

@ -293,4 +293,4 @@ class ImplicitRoleField(models.ForeignKey):
children = [c for c in this_role.children.all()] children = [c for c in this_role.children.all()]
this_role.delete() this_role.delete()
for child in children: for child in children:
children.rebuild_role_ancestor_list() child.rebuild_role_ancestor_list()

View File

@ -134,11 +134,14 @@ def test_auto_field_adjuments(organization, inventory, team, alice):
def test_implicit_deletes(alice): def test_implicit_deletes(alice):
'Ensures implicit resources and roles delete themselves' 'Ensures implicit resources and roles delete themselves'
delorg = Organization.objects.create(name='test-org') delorg = Organization.objects.create(name='test-org')
child = Role.objects.create(name='child-role')
child.parents.add(delorg.admin_role)
delorg.admin_role.members.add(alice) delorg.admin_role.members.add(alice)
admin_role_id = delorg.admin_role.id admin_role_id = delorg.admin_role.id
auditor_role_id = delorg.auditor_role.id auditor_role_id = delorg.auditor_role.id
assert child.ancestors.count() > 1
assert Role.objects.filter(id=admin_role_id).count() == 1 assert Role.objects.filter(id=admin_role_id).count() == 1
assert Role.objects.filter(id=auditor_role_id).count() == 1 assert Role.objects.filter(id=auditor_role_id).count() == 1
n_alice_roles = alice.roles.count() n_alice_roles = alice.roles.count()
@ -152,6 +155,9 @@ def test_implicit_deletes(alice):
assert alice.roles.count() == (n_alice_roles - 1) assert alice.roles.count() == (n_alice_roles - 1)
assert RolePermission.objects.filter(id=rp.id).count() == 0 assert RolePermission.objects.filter(id=rp.id).count() == 0
assert Role.singleton('System Administrator').children.count() == (n_system_admin_children - 1) assert Role.singleton('System Administrator').children.count() == (n_system_admin_children - 1)
assert child.ancestors.count() == 1
assert child.ancestors.all()[0] == child
@pytest.mark.django_db @pytest.mark.django_db
def test_content_object(user): def test_content_object(user):