def test_job_relaunch_resource_access(self, user, inventory, machine_credential, inv_access, cred_access, can_start): job_template = JobTemplate.objects.create( ask_inventory_on_launch=True, ask_credential_on_launch=True) u = user('user1', False) job_with_links = Job.objects.create(name='existing-job', inventory=inventory, job_template=job_template, created_by=u) job_with_links.credentials.add(machine_credential) JobLaunchConfig.objects.create(job=job_with_links, inventory=inventory) job_with_links.launch_config.credentials.add( machine_credential) # credential was prompted job_template.execute_role.members.add(u) if inv_access: job_with_links.inventory.use_role.members.add(u) if cred_access: machine_credential.use_role.members.add(u) access = JobAccess(u) if can_start: assert access.can_start(job_with_links, validate_license=False) else: with pytest.raises(PermissionDenied): access.can_start(job_with_links, validate_license=False)
def test_job_relaunch_resource_access(self, user, inventory, machine_credential, inv_access, cred_access, can_start): job_template = JobTemplate.objects.create( ask_inventory_on_launch=True, ask_credential_on_launch=True) job_with_links = Job.objects.create(name='existing-job', inventory=inventory, job_template=job_template) job_with_links.credentials.add(machine_credential) JobLaunchConfig.objects.create(job=job_with_links, inventory=inventory) job_with_links.launch_config.credentials.add( machine_credential) # credential was prompted u = user('user1', False) job_template.execute_role.members.add(u) if inv_access: job_with_links.inventory.use_role.members.add(u) if cred_access: machine_credential.use_role.members.add(u) access = JobAccess(u) assert access.can_start( job_with_links, validate_license=False ) == can_start, ( "Inventory access: {}\nCredential access: {}\n Expected access: {}" .format(inv_access, cred_access, can_start))