def test_link_2_tasks_wrong_task_id(self): task = TaskFactory.create(state=Task.STATES.IN_PROGRESS) task_to_link = TaskFactory.create(state=Task.STATES.IN_PROGRESS) response = self.client.post( '/api/v1/tasks/{}/link-task/'.format(task.pk), data=json.dumps({'task': task_to_link.pk + 100}), content_type='application/json') self.assertEqual(response.status_code, 404) task.refresh_from_db() self.assertIsNone(task.linked_task)
def test_parital_update_task_with_done_state(self): data = {'description': 'test new description'} task = TaskFactory.create(state=Task.STATES.DONE) response = self.client.patch('/api/v1/tasks/{}/'.format(task.pk), data=json.dumps(data), content_type='application/json') self.assertEqual(response.status_code, 404)
def test_set_task_done_wrong_task_id(self): task = TaskFactory.create(state=Task.STATES.NEW) response = self.client.post( '/api/v1/tasks/{}/set-done/'.format(task.pk + 10000), content_type='application/json') self.assertEqual(response.status_code, 404) task.refresh_from_db() self.assertEqual(task.state, Task.STATES.NEW)
def test_set_task_done(self): task = TaskFactory.create(state=Task.STATES.IN_PROGRESS) response = self.client.post('/api/v1/tasks/{}/set-done/'.format( task.pk), content_type='application/json') self.assertEqual(response.status_code, 200) task.refresh_from_db() self.assertEqual(task.state, Task.STATES.DONE) response = response.json() self.assertEqual(response['state'], 'done')
def test_parital_update_task(self): data = {'description': 'test new description'} task = TaskFactory.create(state=Task.STATES.NEW) response = self.client.patch('/api/v1/tasks/{}/'.format(task.pk), data=json.dumps(data), content_type='application/json') self.assertEqual(response.status_code, 200) response = response.json() task.refresh_from_db() self.assertEqual(response['description'], data['description']) self.assertEqual(response['state'], Task.STATES.NEW)
def test_update_task_state(self): data = { 'title': 'new updated task', 'description': 'test description', 'state': Task.STATES.IN_PROGRESS } task = TaskFactory.create(state=Task.STATES.NEW) response = self.client.put('/api/v1/tasks/{}/'.format(task.pk), data=json.dumps(data), content_type='application/json') self.assertEqual(response.status_code, 200) response = response.json() task.refresh_from_db() self.assertEqual(response['title'], data['title']) self.assertEqual(response['description'], data['description']) # did not update as it's a read only field self.assertEqual(response['state'], Task.STATES.NEW)
def test_create_task(self): TaskFactory.create() self.assertEqual(Task.objects.count(), 1)
def test_delete_task(self): task = TaskFactory.create() response = self.client.delete('/api/v1/tasks/{}/'.format(task.pk), content_type='application/json') self.assertEqual(response.status_code, 204) self.assertFalse(Task.objects.filter(pk=task.pk).exists())