diff --git a/base_report_to_printer/models/printing_printer.py b/base_report_to_printer/models/printing_printer.py index d954acf..dec7605 100644 --- a/base_report_to_printer/models/printing_printer.py +++ b/base_report_to_printer/models/printing_printer.py @@ -4,6 +4,7 @@ # Copyright (C) 2011 Domsense srl () # Copyright (C) 2013-2014 Camptocamp () # Copyright (C) 2016 SYLEAM () +# Copyright (C) 2023 Jacques-Etienne Baudoux (BCIM) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import errno @@ -137,6 +138,8 @@ class PrintingPrinter(models.Model): """ self.ensure_one() fd, file_name = mkstemp() + if isinstance(content, str): + content = content.encode() try: os.write(fd, content) finally: diff --git a/base_report_to_printer/readme/CONTRIBUTORS.rst b/base_report_to_printer/readme/CONTRIBUTORS.rst index db926ad..4626c55 100644 --- a/base_report_to_printer/readme/CONTRIBUTORS.rst +++ b/base_report_to_printer/readme/CONTRIBUTORS.rst @@ -14,3 +14,4 @@ * Matias Peralta * Hughes Damry * Akim Juillerat +* Jacques-Etienne Baudoux (BCIM) diff --git a/base_report_to_printer/tests/test_report.py b/base_report_to_printer/tests/test_report.py index e363582..7821510 100644 --- a/base_report_to_printer/tests/test_report.py +++ b/base_report_to_printer/tests/test_report.py @@ -191,3 +191,13 @@ class TestReport(common.HttpCase): """It should raise an error""" with self.assertRaises(exceptions.UserError): self.report.print_document(self.partners.ids) + + def test_print_document_string(self): + """Test string encoding""" + with mock.patch( + "odoo.addons.base_report_to_printer.models." + "printing_printer.PrintingPrinter." + "print_file" + ) as print_file: + self.new_printer().print_document("", "test") + print_file.assert_called_once()