Skip to content
Snippets Groups Projects

RestartTask endpoint

Merged Valentin Rigal requested to merge restart-task into master
2 files
+ 30
9
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -581,13 +581,12 @@ class TestAPI(FixtureAPITestCase):
)
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
@expectedFailure
def test_restart_task_forbidden(self):
@patch("arkindex.project.mixins.get_max_level")
def test_restart_task_forbidden(self, get_max_level_mock):
"""An admin access to the process is required"""
get_max_level_mock.return_value = Role.Guest.value
self.client.force_login(self.user)
self.corpus.memberships.filter(user=self.user).update(level=Role.Guest.value)
self.process.save()
with self.assertNumQueries(10):
with self.assertNumQueries(7):
response = self.client.post(
reverse("api:task-restart", kwargs={"pk": str(self.task1.id)})
)
@@ -599,7 +598,7 @@ class TestAPI(FixtureAPITestCase):
def test_restart_task_non_final_state(self):
self.client.force_login(self.user)
with self.assertNumQueries(8):
with self.assertNumQueries(7):
response = self.client.post(
reverse("api:task-restart", kwargs={"pk": str(self.task1.id)})
)
@@ -609,6 +608,22 @@ class TestAPI(FixtureAPITestCase):
["Task's state must be in a final state to be restarted."],
)
def test_restart_task_already_restarted(self):
self.client.force_login(self.user)
self.task2.slug = self.task1.slug + "_restart1"
self.task2.save()
self.task1.state = State.Completed.value
self.task1.save()
with self.assertNumQueries(8):
response = self.client.post(
reverse("api:task-restart", kwargs={"pk": str(self.task1.id)})
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertListEqual(
response.json(),
["This task has already been restarted"],
)
@patch("arkindex.project.aws.s3")
def test_restart_task(self, s3_mock):
"""
Loading