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:
parent
67b37e17cb
commit
9909ea90c1
@ -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()
|
||||||
|
@ -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):
|
||||||
|
Loading…
Reference in New Issue
Block a user