def test_prefetch_jt_copy_capability(job_template, project, inventory, rando): job_template.project = project job_template.inventory = inventory job_template.save() qs = JobTemplate.objects.all() mapping = prefetch_page_capabilities( JobTemplate, qs, [{ 'copy': [ 'project.use', 'inventory.use', ] }], rando, ) assert mapping[job_template.id] == {'copy': False} project.use_role.members.add(rando) inventory.use_role.members.add(rando) mapping = prefetch_page_capabilities( JobTemplate, qs, [{ 'copy': [ 'project.use', 'inventory.use', ] }], rando, ) assert mapping[job_template.id] == {'copy': True}
def test_prefetch_ujt_job_template_capabilities(alice, bob, job_template): job_template.execute_role.members.add(alice) qs = UnifiedJobTemplate.objects.all() mapping = prefetch_page_capabilities(UnifiedJobTemplate, qs, ['admin', 'execute'], alice) assert mapping[job_template.id] == {'edit': False, 'start': True} qs = UnifiedJobTemplate.objects.all() mapping = prefetch_page_capabilities(UnifiedJobTemplate, qs, ['admin', 'execute'], bob) assert mapping[job_template.id] == {'edit': False, 'start': False}
def test_prefetch_group_capabilities(group, rando): group.inventory.adhoc_role.members.add(rando) qs = Group.objects.all() mapping = prefetch_page_capabilities( Group, qs, ['inventory.admin', 'inventory.adhoc'], rando) assert mapping[group.id] == {'edit': False, 'adhoc': True}
def test_prefetch_jt_capabilities(job_template, rando): job_template.execute_role.members.add(rando) qs = JobTemplate.objects.all() mapping = prefetch_page_capabilities(JobTemplate, qs, ['admin', 'execute'], rando) assert mapping[job_template.id] == {'edit': False, 'start': True}