Skip to content
Snippets Groups Projects
Commit 0d602442 authored by Erwan Rouchet's avatar Erwan Rouchet Committed by Bastien Abadie
Browse files

Fix TypeError when a DataImport has an empty workflow

parent 010de0eb
No related branches found
No related tags found
1 merge request!582Fix TypeError when a DataImport has an empty workflow
......@@ -39,6 +39,9 @@ class DataImport(IndexableModel):
return State.Unscheduled
# This allows annotating a DataImport queryset with "last_run" and preventing duplicate SQL queries
if hasattr(self, 'last_run'):
# last_run may be None when there is a workflow without any tasks
if self.last_run is None:
return State.Unscheduled
return self.workflow.get_state(self.last_run)
else:
return self.workflow.state
......
......@@ -133,6 +133,19 @@ class TestImports(FixtureAPITestCase):
data = response.json()
self.assertEqual(data['id'], str(self.dataimport.id))
def test_details_no_tasks(self):
"""
Ensure the DataImport reports an Unscheduled state when there are no tasks in its workflow
"""
self.assertIsNone(self.dataimport.workflow)
self.dataimport.start()
self.dataimport.workflow.tasks.all().delete()
self.client.force_login(self.user)
response = self.client.get(reverse('api:import-details', kwargs={'pk': self.dataimport.id}))
self.assertEqual(response.status_code, status.HTTP_200_OK)
data = response.json()
self.assertEqual(data['state'], 'unscheduled')
def test_retry_requires_login(self):
response = self.client.post(reverse('api:import-retry', kwargs={'pk': self.dataimport.id}))
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment