def test_silo_detail_import_done(self): # Create Silo, Read and CeleryTask read_type = factories.ReadType(read_type="CSV") read = factories.Read( owner=self.user, type=read_type, read_name="TEST SILO DONE", description="unittest" ) silo = factories.Silo(owner=self.user, public=False) silo.reads.add(read) factories.CeleryTask(content_object=read, task_status=CeleryTask.TASK_FINISHED) # Check view request = self.factory.get(self.silo_detail_url) request.user = self.user response = siloDetail(request, silo.pk) self.assertContains( response, '<a href="/show_read/{}" target="_blank">{}</a>'.format( read.id, read.read_name) ) self.assertNotContains( response, '<span class="btn-sm btn-danger">Import Failed</span>') self.assertNotContains( response, '<span class="btn-sm btn-warning">Import running</span>') self.assertNotContains( response, '<h4 style="color:#ff3019">Import process failed</h4>') self.assertNotContains(response, '<h4>Import process running</h4>')
def test_celery_success(self): """ Test if the celery task process_silo actually imports data :return: """ silo = factories.Silo(owner=self.user, public=False) read_type = factories.ReadType(read_type="CSV") upload_file = open('silo/tests/sample_data/test.csv', 'rb') read = factories.Read(owner=self.user, type=read_type, file_data=SimpleUploadedFile(upload_file.name, upload_file.read())) task = factories.CeleryTask(task_status=CeleryTask.TASK_CREATED, content_object=read) process_done = process_silo(silo.id, read.id) self.assertEqual(getSiloColumnNames(silo.id), ['First_Name', 'Last_Name', 'E-mail']) self.assertTrue(process_done)
def test_celery_failure(self): silo = factories.Silo(owner=self.user, public=False) read_type = factories.ReadType(read_type="CSV") upload_file = open('silo/tests/sample_data/test_broken.csv', 'rb') read = factories.Read(owner=self.user, type=read_type, file_data=SimpleUploadedFile(upload_file.name, upload_file.read())) task = factories.CeleryTask(content_object=read) process_silo(silo.id, read.id) ctask = CeleryTask.objects.get( object_id=read.id, content_type=ContentType.objects.get_for_model(Read) ) self.assertEqual(ctask.task_id, task.task_id) self.assertEqual(ctask.task_status, CeleryTask.TASK_FAILED)
def test_silo_detail_import_failed(self): # Create Silo, Read and CeleryTask read_type = factories.ReadType(read_type="CSV") read = factories.Read( owner=self.user, type=read_type, read_name="TEST SILO FAIL", description="unittest" ) silo = factories.Silo(owner=self.user, public=False) silo.reads.add(read) task = factories.CeleryTask(content_object=read, task_status=CeleryTask.TASK_FAILED) # Check view request = self.factory.get(self.silo_detail_url) request.user = self.user response = siloDetail(request, silo.pk) self.assertContains(response, "<a href=\"/show_read/"+str(read.id)+"\" target=\"_blank\">"+read.read_name+"</a>") self.assertContains(response, "<span class=\"btn-sm btn-danger\">Import Failed</span>") self.assertContains(response, "<h4 style=\"color:#ff3019\">Import process failed</h4>")