Exemple #1
0
    def test_api_collection_view_data_exists(self, *mocks):
        request = Request({})
        view = ApiCollectionView({}, request)
        resp = view.fetch()

        self.assertEqual(FETCH_JOBS.keys(), [])
        self.assertEqual(resp, {'status': FetchJob.STATUS_COMPLETE,
                                'reason': None})
Exemple #2
0
    def test_api_collection_view_submit_new_job(self, *mocks):
        request = Request({})
        view = ApiCollectionView({}, request)
        resp = view.fetch()

        job = FETCH_JOBS['/tmp/def']
        self.assertEqual(view.request, request)
        self.assertEqual(job.status, FetchJob.STATUS_PENDING)
        self.assertEqual(resp, {'status': FetchJob.STATUS_PENDING,
                                'reason': None})
Exemple #3
0
    def test_api_collection_view_download_data_exception(self, *mocks):
        request = Request({})
        view = ApiCollectionView({}, request)
        resp = view.fetch()

        sleep(0.2)
        job = FETCH_JOBS['/tmp/def']
        resp = view.fetch()
        self.assertEqual(job.status, FetchJob.STATUS_FAILED)
        self.assertTrue(resp['reason'].find('Bad file') != -1)
Exemple #4
0
    def test_api_collection_view_not_submit_job(self, *mocks):
        request = Request({})
        view = ApiCollectionView({}, request)
        resp = view.fetch()

        # Check that second fetch does not submit another job
        resp = view.fetch()
        self.assertEqual(FETCH_JOBS.keys(), ['/tmp/def'])
        self.assertEqual(resp, {'status': FetchJob.STATUS_PENDING,
                                'reason': None})

        job = FETCH_JOBS['/tmp/def']
        self.assertEqual(view.request, request)
        self.assertEqual(job.status, FetchJob.STATUS_PENDING)
        self.assertEqual(resp, {'status': FetchJob.STATUS_PENDING,
                                'reason': None})
Exemple #5
0
    def test_api_collection_view_remove_completed_job(self, *mocks):
        request = Request({})
        view = ApiCollectionView({}, request)
        resp = view.fetch()

        job = FETCH_JOBS['/tmp/def']
        self.assertEqual(view.request, request)
        self.assertEqual(job.status, FetchJob.STATUS_PENDING)
        self.assertEqual(resp, {'status': FetchJob.STATUS_PENDING,
                                'reason': None})

        job.update(status=FetchJob.STATUS_COMPLETE,
                   start_timestamp=datetime.datetime.now())
        self.assertEqual(job.status, FetchJob.STATUS_COMPLETE)

        resp = view.fetch()
        self.assertEqual(job.status, FetchJob.STATUS_COMPLETE)
        self.assertEqual(FETCH_JOBS.keys(), [])
        self.assertEqual(resp, {'status': FetchJob.STATUS_COMPLETE,
                                'reason': None})