Example #1
0
    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)
Example #2
0
    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)
Example #3
0
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.'
    })
Example #4
0
    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')
Example #5
0
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."
    })