def test_response_for_download_gives_proper_value(self):
        filename = self.report.filename
        cd_value = "attachment"
        cdv = '%s; ' % cd_value
        fn = 'filename="%s"; ' % transliterate(filename)
        fns = "filename*=utf-8''%s; " % urlquote(filename)
        md = 'modification-date="%s"; ' % self.report.uploaded_on
        expected_content_disposition = cdv + fn + fns + md

        resp = response_for_download(self.report)
        self.assertEqual(resp.get('Content-Disposition'), expected_content_disposition)
        self.assertEqual(resp.get('Content-Length'), '12')
        self.assertEqual(resp.get('Content-Type'), 'text/plain')
        self.assertEqual(resp.content, b'file_content')

        cd_value = "inline"
        cdv = '%s; ' % cd_value
        expected_content_disposition = cdv + fn + fns + md
        resp = response_for_download(self.report, cd_value=cd_value)
        self.assertEqual(resp.get('Content-Disposition'), expected_content_disposition)
    def test_response_for_download_gives_proper_value(self):
        filename = self.report.filename
        cd_value = "attachment"
        cdv = '%s; ' % cd_value
        fn = 'filename="%s"; ' % transliterate(filename)
        fns = "filename*=utf-8''%s; " % urlquote(filename)
        md = 'modification-date="%s"; ' % self.report.uploaded_on
        expected_content_disposition = cdv + fn + fns + md

        resp = response_for_download(self.report)
        self.assertEqual(resp.get('Content-Disposition'),
                         expected_content_disposition)
        self.assertEqual(resp.get('Content-Length'), '12')
        self.assertEqual(resp.get('Content-Type'), 'text/plain')
        self.assertEqual(resp.content, b'file_content')

        cd_value = "inline"
        cdv = '%s; ' % cd_value
        expected_content_disposition = cdv + fn + fns + md
        resp = response_for_download(self.report, cd_value=cd_value)
        self.assertEqual(resp.get('Content-Disposition'),
                         expected_content_disposition)
 def processing(self, request, report, rqst, msg):
     # Умови при яких зміни не відбудуться:
     if False: # Тут вставити перевірку на право завантаження файла
         msg.title   = rqst.name
         msg.type    = msgType.Forbidden
         msg.message = "У Вас немає доступу для завантаження обраного файла."
         response = HttpResponse()
     else:
         # Downloading file:
         response = response_for_download(report)
         msg.title   = rqst.name
         msg.type    = msgType.Normal
         msg.message = "Файл успішно завантажено!"
         dict_print(response, 'XHRReportDownload: response' )
     return report, msg, response
示例#4
0
 def processing(self, request, report, rqst, msg):
     # Умови при яких зміни не відбудуться:
     if False: # Тут вставити перевірку на право завантаження файла
         msg.title   = rqst.name
         msg.type    = msgType.Forbidden
         msg.message = "У Вас немає доступу для завантаження обраного файла."
         response = HttpResponse()
     else:
         # Downloading file:
         response = response_for_download(report)
         msg.title   = rqst.name
         msg.type    = msgType.Normal
         msg.message = "Файл успішно завантажено!"
         dict_print(response, 'XHRReportDownload: response' )
     return report, msg, response
 def processing(self, request, report, rqst, msg):
     """
     Цю функцію треба переозначити у дочірньому класі.
     Тут наводиться як ПРИКЛАД.
     """
     # Умови при яких зміни не відбудуться:
     if False: # Тут вставити перевірку на право завантаження файла
         msg.title   = rqst.name
         msg.type    = msgType.Forbidden
         msg.message = "У Вас немає доступу для завантаження обраного файйла."
         response = HttpResponse()
     else:
         # Downloading file:
         response = response_for_download(report)
         msg.title   = rqst.name
         msg.type    = msgType.Normal
         msg.message = "Файл успішно завантажено!"
     return report, msg, response
示例#6
0
 def processing(self, request, report, rqst, msg):
     """
     Цю функцію треба переозначити у дочірньому класі.
     Тут наводиться як ПРИКЛАД.
     """
     # Умови при яких зміни не відбудуться:
     if False: # Тут вставити перевірку на право завантаження файла
         msg.title   = rqst.name
         msg.type    = msgType.Forbidden
         msg.message = "У Вас немає доступу для завантаження обраного файйла."
         response = HttpResponse()
     else:
         # Downloading file:
         response = response_for_download(report)
         msg.title   = rqst.name
         msg.type    = msgType.Normal
         msg.message = "Файл успішно завантажено!"
     return report, msg, response
 def test_response_for_download_gives_error_if_no_file(self):
     rep0 = DummyFolder().create_dummy_report(parent=self.root)
     with self.assertRaises(ValueError):
         response_for_download(rep0)
 def test_response_for_download_gives_error_if_no_file(self):
     rep0 = DummyFolder().create_dummy_report(parent=self.root)
     with self.assertRaises(ValueError):
         response_for_download(rep0)
示例#9
0
def reportDecorView(request, pk):
    report_id = pk
    report = Report.objects.get(id=report_id)
    print("report=", report.id, report)
    response = response_for_download(report, cd_value="inline")
    return response
示例#10
0
def reportPreview(request, pk):
    report_id = pk
    report = Report.objects.get(id=report_id)
    # print('report=', report.id, report.filename, report.file)
    response = response_for_download(report, cd_value="inline")
    return response
示例#11
0
def reportDownload(request, *args, **kwargs):
    report_id = kwargs.get("pk")
    report = Report.objects.get(id=report_id)
    response = response_for_download(report, cd_value="attachment")
    return response