예제 #1
0
 def test_with_debug_none_for_coverage(self):
     request = self.request_factory.get('/')
     try:
         # May or may not raise an exception depending on settings.DEBUG...
         viewutil.serve_file(
             request, '/dirname', 'file.txt', '/nginx/', debug=None)
     except Http404:
         pass
예제 #2
0
 def test_with_debug_none_for_coverage(self):
     request = self.request_factory.get('/')
     try:
         # May or may not raise an exception depending on settings.DEBUG...
         viewutil.serve_file(request,
                             '/dirname',
                             'file.txt',
                             '/nginx/',
                             debug=None)
     except Http404:
         pass
예제 #3
0
    def test_works(self):
        request = self.request_factory.get('/')

        # /dirname/file.txt doesn't exist, so static.serve raises
        # Http404
        self.assertRaises(Http404, lambda: viewutil.serve_file(
                request, '/dirname', 'file.txt', '/nginx/', debug=True))

        # With debug=False, the response object should be interesting
        response = viewutil.serve_file(
            request, '/dirname', 'file.txt', '/nginx/', debug=False)

        # Content type for 'file.txt' is guesses as 'text/plain'
        self.assertEquals('text/plain', response['Content-Type'])
        # Apache URL
        self.assertEquals('/dirname/file.txt', response['X-Sendfile'])
        # Nginx URL
        self.assertEquals('/nginx/file.txt', response['X-Accel-Redirect'])
        # 200 = OK
        self.assertEquals(200, response.status_code)
예제 #4
0
    def test_works(self):
        request = self.request_factory.get('/')

        # /dirname/file.txt doesn't exist, so static.serve raises
        # Http404
        self.assertRaises(
            Http404, lambda: viewutil.serve_file(
                request, '/dirname', 'file.txt', '/nginx/', debug=True))

        # With debug=False, the response object should be interesting
        response = viewutil.serve_file(request,
                                       '/dirname',
                                       'file.txt',
                                       '/nginx/',
                                       debug=False)

        # Content type for 'file.txt' is guesses as 'text/plain'
        self.assertEquals('text/plain', response['Content-Type'])
        # Apache URL
        self.assertEquals('/dirname/file.txt', response['X-Sendfile'])
        # Nginx URL
        self.assertEquals('/nginx/file.txt', response['X-Accel-Redirect'])
        # 200 = OK
        self.assertEquals(200, response.status_code)
예제 #5
0
def get_excel(request, project, province):
    directory = excel_dir(project)

    if not os.path.exists(directory):
        os.makedirs(directory)

    filename = "{0}.xls".format(province.name)

    scenarios = scenario_list(project, province)

    excel_import_export.create_excel_file(
        project, scenarios, os.path.join(directory, filename),
        include_approval=True)

    return viewutil.serve_file(
        request=request,
        dirname=directory,
        filename=filename,
        nginx_dirname='/download_excel_shared')
예제 #6
0
def exportrun_resultfile(request, export_run_id):
    if not (request.user.is_authenticated() and
            (request.user.has_perm('exporttool.can_download') or
             request.user.has_perm('exporttool.can_create'))):
        return HttpResponse(_("No permission to download export"))

    export_run = get_object_or_404(ExportRun, pk=export_run_id)
    main_result = export_run.get_main_result()

    if main_result is None:
        return HttpResponse(_("Export run has no result."))

    result_folder = Setting.objects.get(
        key='MAXIMAL_WATERDEPTH_RESULTS_FOLDER').value

    file_path = os.path.join(result_folder, main_result.file_basename)
    if not os.path.isfile(file_path):
        return HttpResponse('Het opgevraagde bestand bestaat niet.')

    return viewutil.serve_file(
        request, result_folder, main_result.file_basename,
        '/download_export_run_results/')
예제 #7
0
def exportrun_resultfile(request, export_run_id):
    if not (request.user.is_authenticated() and
            (request.user.has_perm('exporttool.can_download')
             or request.user.has_perm('exporttool.can_create'))):
        return HttpResponse(_("No permission to download export"))

    export_run = get_object_or_404(ExportRun, pk=export_run_id)
    main_result = export_run.get_main_result()

    if main_result is None:
        return HttpResponse(_("Export run has no result."))

    result_folder = Setting.objects.get(
        key='MAXIMAL_WATERDEPTH_RESULTS_FOLDER').value

    file_path = os.path.join(result_folder, main_result.file_basename)
    if not os.path.isfile(file_path):
        return HttpResponse('Het opgevraagde bestand bestaat niet.')

    return viewutil.serve_file(request, result_folder,
                               main_result.file_basename,
                               '/download_export_run_results/')
예제 #8
0
def get_excel(request, project, province):
    directory = excel_dir(project)

    if not os.path.exists(directory):
        os.makedirs(directory)

    filename = "{0}.xls".format(province.name)
    fullpath = os.path.join(directory, filename)

    # Excel files are created every hour by a cronjob calling the
    # 'create_province_excel' management command
    if not os.path.exists(fullpath):
        scenarios = scenario_list(project, province)
        excel_import_export.create_excel_file(project,
                                              scenarios,
                                              fullpath,
                                              include_approval=True)

    return viewutil.serve_file(request=request,
                               dirname=directory,
                               filename=filename,
                               nginx_dirname='/download_excel_shared')
예제 #9
0
def get_excel(request, project, province):
    directory = excel_dir(project)

    if not os.path.exists(directory):
        os.makedirs(directory)

    filename = "{0}.xls".format(province.name)
    fullpath = os.path.join(directory, filename)

    # Excel files are created every hour by a cronjob calling the
    # 'create_province_excel' management command
    if not os.path.exists(fullpath):
        scenarios = scenario_list(project, province)
        excel_import_export.create_excel_file(
            project, scenarios, fullpath,
            include_approval=True)

    return viewutil.serve_file(
        request=request,
        dirname=directory,
        filename=filename,
        nginx_dirname='/download_excel_shared')