Beispiel #1
0
    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>')
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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>")