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})
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})
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)
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})
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})