[IMP] report_csv: add encoding option

This commit is contained in:
Aungkokolin1997
2023-01-18 08:49:07 +06:30
committed by Aungkokolin1997
parent f5c04ca190
commit c6a50e47ff
10 changed files with 125 additions and 15 deletions

View File

@@ -6,6 +6,7 @@ from io import StringIO
from unittest import mock
from odoo import http
from odoo.exceptions import UserError
from odoo.tests import common
from odoo.tools import mute_logger
@@ -70,6 +71,18 @@ class TestReport(common.TransactionCase):
objs = self.csv_report._get_objs_for_report(self.docs.ids, {})
self.assertEqual(objs, self.docs)
def test_report_with_encoding(self):
report = self.report
report.write({"encoding": "cp932"})
rep = report._render_csv(self.report_name, self.docs.ids, {})
str_io = StringIO(rep[0].decode())
dict_report = list(csv.DictReader(str_io, delimiter=";", quoting=csv.QUOTE_ALL))
self.assertEqual(self.docs.name, dict(dict_report[0])["name"])
report.write({"encoding": "xyz"})
with self.assertRaises(UserError):
rep = report._render_csv(self.report_name, self.docs.ids, {})
class TestCsvReport(common.HttpCase):
"""