def test_status_detail_superuser(self): """Superusers should be able to access all status records.""" self._login(self.superuser) response = self.client.get( reverse('usertaskstatus-detail', args=[self.status.uuid])) assert response.status_code == 200 serializer = StatusSerializer(self.status, context=_context(response)) assert _data(response) == serializer.data
def test_status_list(self): """ Users should be able to access a list of their tasks' status records. """ response = self.client.get(reverse('usertaskstatus-list')) assert response.status_code == 200 serializer = StatusSerializer([self.status], context=_context(response), many=True) assert _data(response)['results'] == serializer.data
def test_status_detail(self): """ Users should be able to access status records for tasks they triggered. """ response = self.client.get(reverse('usertaskstatus-detail', args=[self.status.uuid])) assert response.status_code == 200 serializer = StatusSerializer(self.status, context=_context(response)) assert _data(response) == serializer.data
def test_status_list_superuser(self): """Superusers should be able to access a list of all task status records.""" self._login(self.superuser) response = self.client.get(reverse('usertaskstatus-list')) assert response.status_code == 200 serializer = StatusSerializer([self.status, self.older_status], context=_context(response), many=True) assert _data(response) == serializer.data
def test_output(self): """The serializer should generate the expected data for a status record.""" status = UserTaskStatus.objects.create(user=self.user, task_id=str(uuid4()), name='SampleTask', total_steps=4) expected = { 'name': 'SampleTask', 'state': 'Pending', 'state_text': 'Pending', 'completed_steps': 0, 'total_steps': 4, 'attempts': 1, 'created': _format(status.created), 'modified': _format(status.modified), 'artifacts': [] } serializer = StatusSerializer(status) assert serializer.data == expected
def test_output_with_artifact(self): """The serializer should include URLs for any generated artifacts.""" status = UserTaskStatus.objects.create(user=self.user, task_id=str(uuid4()), name='SampleTask', total_steps=4) artifact = UserTaskArtifact.objects.create(status=status, text='Lorem Ipsum') expected = { 'name': 'SampleTask', 'state': 'Pending', 'state_text': 'Pending', 'completed_steps': 0, 'total_steps': 4, 'attempts': 1, 'created': _format(status.created), 'modified': _format(status.modified), 'artifacts': [f'http://testserver/artifacts/{artifact.uuid}/'] } request = APIRequestFactory().get( reverse('usertaskstatus-detail', args=[status.uuid])) serializer = StatusSerializer(status, context={'request': request}) assert serializer.data == expected