def test_get_exporting_job(self): user = self.guest_login() # create jobs which are related with export Job.new_export(user), Job.new_export_search_result(user), resp = self.client.get("/job/") self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.context["jobs"]), 2)
def test_get_exporting_job(self): user = self.guest_login() # create jobs which are related with export Job.new_export(user), Job.new_export_search_result(user), resp = self.client.get('/job/api/v2/jobs') self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.json()), 2)
def export_search_result(request, recv_data): # additional validation if recv_data['export_style'] != 'yaml' and recv_data[ 'export_style'] != 'csv': return HttpResponse('Invalid "export_type" is specified', status=400) user = User.objects.get(id=request.user.id) # check whether same job is sent job_status_not_finished = [ Job.STATUS['PREPARING'], Job.STATUS['PROCESSING'] ] if Job.get_job_with_params( user, recv_data).filter(status__in=job_status_not_finished).exists(): return HttpResponse('Same export processing is under execution', status=400) # create a job to export search result and run it job = Job.new_export_search_result( user, **{ 'text': 'search_results.%s' % recv_data['export_style'], 'params': recv_data, }) job.run() return JsonResponse({ 'result': 'Succeed in registering export processing. ' + 'Please check Job list.' })
def test_job_download_exported_search_result(self): user = self.guest_login() # initialize an export Job job = Job.new_export_search_result(user, text='hoge') job.set_cache('abcd') # check job contents could be downloaded resp = self.client.get('/job/download/%d' % job.id) self.assertEqual(resp.status_code, 200) self.assertEqual(resp['Content-Disposition'], 'attachment; filename="hoge"') self.assertEqual(resp.content.decode('utf8'), 'abcd')
def export_search_result(request, recv_data): # check whether same job is sent job_status_not_finished = [ Job.STATUS["PREPARING"], Job.STATUS["PROCESSING"] ] if (Job.get_job_with_params( request.user, recv_data).filter(status__in=job_status_not_finished).exists()): return HttpResponse("Same export processing is under execution", status=400) # create a job to export search result and run it job = Job.new_export_search_result( request.user, **{ "text": "search_results.%s" % recv_data["export_style"], "params": recv_data, }) job.run() return JsonResponse({ "result": "Succeed in registering export processing. " + "Please check Job list." })