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