feat: add test for exporting reportview as CSV

This commit is contained in:
barredterra 2022-11-26 20:01:48 +01:00
parent d70e5e73e2
commit 839de22d95

View file

@ -0,0 +1,34 @@
# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE
import frappe
from frappe.desk.reportview import export_query
from frappe.tests.utils import FrappeTestCase
class TestReportview(FrappeTestCase):
def test_csv(self):
from csv import QUOTE_ALL, QUOTE_MINIMAL, QUOTE_NONE, QUOTE_NONNUMERIC, DictReader
from io import StringIO
frappe.local.form_dict = frappe._dict(
doctype="DocType",
title="Test Report",
file_format_type="CSV",
)
for delimiter in (",", ";", "\t", "|"):
for quoting in (QUOTE_ALL, QUOTE_MINIMAL, QUOTE_NONE, QUOTE_NONNUMERIC):
frappe.local.form_dict.update(
{
"csv_quoting": quoting,
"csv_delimiter": delimiter,
}
)
export_query()
self.assertTrue(frappe.response["filename"].endswith(".csv"))
self.assertEqual(frappe.response["type"], "binary")
with StringIO(frappe.response["filecontent"].decode("utf-8")) as result:
reader = DictReader(result, delimiter=delimiter, quoting=quoting)
reader.__next__()