def test_can_modify_ones_own_schedule(self, job_template, rando): job_template.execute_role.members.add(rando) schedule = Schedule.objects.create(unified_job_template=job_template, rrule=self.rrule, created_by=rando) access = ScheduleAccess(rando) assert access.can_change(schedule, {'rrule': self.rrule2})
def test_move_schedule_from_JT_no_access(self, job_template, rando, jt2): schedule = Schedule.objects.create(unified_job_template=job_template, rrule=self.rrule) jt2.admin_role.members.add(rando) access = ScheduleAccess(rando) assert not access.can_change(schedule, data=dict(unified_job_template=jt2.pk))
def test_inventory_source_org_admin_schedule_access(org_admin, inventory_source): schedule = Schedule.objects.create( unified_job_template=inventory_source, rrule='DTSTART:20151117T050000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1') access = ScheduleAccess(org_admin) assert access.get_queryset() assert access.can_read(schedule) assert access.can_change(schedule, { 'rrule': 'DTSTART:20151117T050000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=2' })
def test_prompts_access_checked(self, job_template, inventory, credential, rando): job_template.execute_role.members.add(rando) access = ScheduleAccess(rando) data = dict( unified_job_template=job_template, rrule=self.rrule, created_by=rando, inventory=inventory, credentials=[credential] ) with mock.patch('awx.main.access.JobLaunchConfigAccess.can_add') as mock_add: mock_add.return_value = True assert access.can_add(data) mock_add.assert_called_once_with(data) data.pop('credentials') schedule = Schedule.objects.create(**data) with mock.patch('awx.main.access.JobLaunchConfigAccess.can_change') as mock_change: mock_change.return_value = True assert access.can_change(schedule, {'inventory': 42}) mock_change.assert_called_once_with(schedule, {'inventory': 42})