From 181f4840072657423fa4891dbf017321d607c1b9 Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Tue, 12 Jan 2021 10:51:52 +0100
Subject: [PATCH] [FIX] base_report_to_printer: Fixed tests
---
base_report_to_printer/README.rst | 10 ++++----
.../i18n/base_report_to_printer.pot | 23 ++++++++++++-------
.../models/ir_actions_report.py | 6 ++---
.../models/printing_server.py | 5 ++--
.../static/description/index.html | 6 ++---
.../tests/test_ir_actions_report.py | 10 ++++----
.../tests/test_printing_job.py | 2 +-
.../tests/test_printing_printer.py | 3 +--
.../tests/test_printing_printer_tray.py | 3 +--
.../tests/test_printing_printer_wizard.py | 4 ++--
.../tests/test_printing_server.py | 20 +++++++++++++---
base_report_to_printer/tests/test_report.py | 22 +++++++++---------
.../tests/test_res_users.py | 2 --
13 files changed, 67 insertions(+), 49 deletions(-)
diff --git a/base_report_to_printer/README.rst b/base_report_to_printer/README.rst
index ad1b2190f37..0fcacffb1f3 100644
--- a/base_report_to_printer/README.rst
+++ b/base_report_to_printer/README.rst
@@ -14,13 +14,13 @@ Report to printer
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freport--print--send-lightgray.png?logo=github
- :target: https://github.com/OCA/report-print-send/tree/13.0/base_report_to_printer
+ :target: https://github.com/OCA/report-print-send/tree/14.0/base_report_to_printer
:alt: OCA/report-print-send
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/report-print-send-13-0/report-print-send-13-0-base_report_to_printer
+ :target: https://translation.odoo-community.org/projects/report-print-send-14-0/report-print-send-14-0-base_report_to_printer
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/144/13.0
+ :target: https://runbot.odoo-community.org/runbot/144/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -113,7 +113,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -159,6 +159,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/report-print-send `_ project on GitHub.
+This module is part of the `OCA/report-print-send `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/base_report_to_printer/i18n/base_report_to_printer.pot b/base_report_to_printer/i18n/base_report_to_printer.pot
index a82d82d48fe..39773dbc872 100644
--- a/base_report_to_printer/i18n/base_report_to_printer.pot
+++ b/base_report_to_printer/i18n/base_report_to_printer.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -35,6 +35,7 @@ msgstr ""
#. module: base_report_to_printer
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_job__active
+#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_printer__active
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_server__active
msgid "Active"
msgstr ""
@@ -44,6 +45,11 @@ msgstr ""
msgid "Address"
msgstr ""
+#. module: base_report_to_printer
+#: model_terms:ir.ui.view,arch_db:base_report_to_printer.printing_printer_view_search
+msgid "Archived"
+msgstr ""
+
#. module: base_report_to_printer
#: model_terms:ir.ui.view,arch_db:base_report_to_printer.printing_printer_view_form
msgid "Are you sure to want to cancel all jobs of this printer?"
@@ -224,6 +230,7 @@ msgid "Disable"
msgstr ""
#. module: base_report_to_printer
+#: model:ir.model.fields,field_description:base_report_to_printer.field_ir_actions_report__display_name
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_action__display_name
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_job__display_name
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_printer__display_name
@@ -231,6 +238,7 @@ msgstr ""
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_report_xml_action__display_name
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_server__display_name
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_tray__display_name
+#: model:ir.model.fields,field_description:base_report_to_printer.field_res_users__display_name
msgid "Display Name"
msgstr ""
@@ -292,6 +300,7 @@ msgid "Held because the printer is offline"
msgstr ""
#. module: base_report_to_printer
+#: model:ir.model.fields,field_description:base_report_to_printer.field_ir_actions_report__id
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_action__id
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_job__id
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_printer__id
@@ -299,6 +308,7 @@ msgstr ""
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_report_xml_action__id
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_server__id
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_tray__id
+#: model:ir.model.fields,field_description:base_report_to_printer.field_res_users__id
msgid "ID"
msgstr ""
@@ -339,6 +349,7 @@ msgid "Jobs printed on this printer."
msgstr ""
#. module: base_report_to_printer
+#: model:ir.model.fields,field_description:base_report_to_printer.field_ir_actions_report____last_update
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_action____last_update
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_job____last_update
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_printer____last_update
@@ -346,6 +357,7 @@ msgstr ""
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_report_xml_action____last_update
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_server____last_update
#: model:ir.model.fields,field_description:base_report_to_printer.field_printing_tray____last_update
+#: model:ir.model.fields,field_description:base_report_to_printer.field_res_users____last_update
msgid "Last Modified on"
msgstr ""
@@ -522,7 +534,6 @@ msgstr ""
#: model:ir.model.fields.selection,name:base_report_to_printer.selection__printing_printer__status__printing
#: model:ir.ui.menu,name:base_report_to_printer.printing_menu
#: model_terms:ir.ui.view,arch_db:base_report_to_printer.view_users_form
-#: model_terms:ir.ui.view,arch_db:base_report_to_printer.view_users_form_simple_modif
msgid "Printing"
msgstr ""
@@ -703,7 +714,8 @@ msgstr ""
#. module: base_report_to_printer
#: model_terms:ir.ui.view,arch_db:base_report_to_printer.printer_update_wizard
msgid ""
-"This process will create all missing printers from the current CUPS server."
+"This process will create all missing printers from the current CUPS "
+"server.\""
msgstr ""
#. module: base_report_to_printer
@@ -795,8 +807,3 @@ msgstr ""
#: model:ir.model,name:base_report_to_printer.model_res_users
msgid "Users"
msgstr ""
-
-#. module: base_report_to_printer
-#: model_terms:ir.ui.view,arch_db:base_report_to_printer.printer_update_wizard
-msgid "or"
-msgstr ""
diff --git a/base_report_to_printer/models/ir_actions_report.py b/base_report_to_printer/models/ir_actions_report.py
index 0d0bf63872f..ef4de0a7de6 100644
--- a/base_report_to_printer/models/ir_actions_report.py
+++ b/base_report_to_printer/models/ir_actions_report.py
@@ -100,7 +100,7 @@ def print_document(self, record_ids, data=None):
""" Print a document, do not return the document file """
document, doc_format = self.with_context(
must_skip_send_to_printer=True
- ).render_qweb_pdf(record_ids, data=data)
+ )._render_qweb_pdf(record_ids, data=data)
behaviour = self.behaviour()
printer = behaviour.pop("printer", None)
@@ -129,13 +129,13 @@ def report_action(self, docids, data=None, config=True):
res["id"] = self.id
return res
- def render_qweb_pdf(self, res_ids=None, data=None):
+ def _render_qweb_pdf(self, res_ids=None, data=None):
"""Generate a PDF and returns it.
If the action configured on the report is server, it prints the
generated document as well.
"""
- document, doc_format = super().render_qweb_pdf(res_ids=res_ids, data=data)
+ document, doc_format = super()._render_qweb_pdf(res_ids=res_ids, data=data)
behaviour = self.behaviour()
printer = behaviour.pop("printer", None)
diff --git a/base_report_to_printer/models/printing_server.py b/base_report_to_printer/models/printing_server.py
index e38117ef150..ad840295cab 100644
--- a/base_report_to_printer/models/printing_server.py
+++ b/base_report_to_printer/models/printing_server.py
@@ -61,7 +61,7 @@ def update_printers(self, domain=None, raise_on_error=False):
servers = self.search(domain)
res = True
- for server in servers:
+ for server in servers.with_context(active_test=False):
connection = server._open_connection(raise_on_error=raise_on_error)
if not connection:
server.printer_ids.write({"status": "server-error"})
@@ -71,8 +71,7 @@ def update_printers(self, domain=None, raise_on_error=False):
# Update Printers
printers = connection.getPrinters()
existing_printers = {
- printer.system_name: printer
- for printer in server.with_context(active_test=False).printer_ids
+ printer.system_name: printer for printer in server.printer_ids
}
updated_printers = []
for name, printer_info in printers.items():
diff --git a/base_report_to_printer/static/description/index.html b/base_report_to_printer/static/description/index.html
index aedf239bc52..8f77133544c 100644
--- a/base_report_to_printer/static/description/index.html
+++ b/base_report_to_printer/static/description/index.html
@@ -367,7 +367,7 @@ Report to printer
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows users to send reports to a printer attached to the server.
It adds an optional behaviour on reports to send it directly to a printer.
@@ -467,7 +467,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -507,7 +507,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/report-print-send project on GitHub.
+
This module is part of the OCA/report-print-send project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/base_report_to_printer/tests/test_ir_actions_report.py b/base_report_to_printer/tests/test_ir_actions_report.py
index eee37ed2003..927fc0d2c41 100644
--- a/base_report_to_printer/tests/test_ir_actions_report.py
+++ b/base_report_to_printer/tests/test_ir_actions_report.py
@@ -2,10 +2,12 @@
# Copyright 2016 SYLEAM
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-import mock
+from unittest import mock
from odoo.tests.common import TransactionCase
+model = "odoo.addons.base.models.ir_actions_report.IrActionsReport"
+
class TestIrActionsReportXml(TransactionCase):
def setUp(self):
@@ -53,14 +55,14 @@ def new_tray(self, vals=None, defaults=None):
def test_print_action_for_report_name_gets_report(self):
""" It should get report by name """
- with mock.patch.object(self.Model, "_get_report_from_name") as mk:
+ with mock.patch("%s._get_report_from_name" % model) as mk:
expect = "test"
self.Model.print_action_for_report_name(expect)
mk.assert_called_once_with(expect)
def test_print_action_for_report_name_returns_if_no_report(self):
""" It should return empty dict when no matching report """
- with mock.patch.object(self.Model, "_get_report_from_name") as mk:
+ with mock.patch("%s._get_report_from_name" % model) as mk:
expect = "test"
mk.return_value = False
res = self.Model.print_action_for_report_name(expect)
@@ -68,7 +70,7 @@ def test_print_action_for_report_name_returns_if_no_report(self):
def test_print_action_for_report_name_returns_if_report(self):
""" It should return correct serializable result for behaviour """
- with mock.patch.object(self.Model, "_get_report_from_name") as mk:
+ with mock.patch("%s._get_report_from_name" % model) as mk:
res = self.Model.print_action_for_report_name("test")
behaviour = mk().behaviour()
expect = {
diff --git a/base_report_to_printer/tests/test_printing_job.py b/base_report_to_printer/tests/test_printing_job.py
index 0238864faac..df81201f915 100644
--- a/base_report_to_printer/tests/test_printing_job.py
+++ b/base_report_to_printer/tests/test_printing_job.py
@@ -1,7 +1,7 @@
# Copyright 2016 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-import mock
+from unittest import mock
from odoo import fields
from odoo.tests.common import TransactionCase
diff --git a/base_report_to_printer/tests/test_printing_printer.py b/base_report_to_printer/tests/test_printing_printer.py
index 0e01d0564b7..2352766d6a2 100644
--- a/base_report_to_printer/tests/test_printing_printer.py
+++ b/base_report_to_printer/tests/test_printing_printer.py
@@ -2,8 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import tempfile
-
-import mock
+from unittest import mock
from odoo.exceptions import UserError
from odoo.tests.common import TransactionCase
diff --git a/base_report_to_printer/tests/test_printing_printer_tray.py b/base_report_to_printer/tests/test_printing_printer_tray.py
index 6886aa14195..22bbcc4bfb8 100644
--- a/base_report_to_printer/tests/test_printing_printer_tray.py
+++ b/base_report_to_printer/tests/test_printing_printer_tray.py
@@ -3,8 +3,7 @@
import errno
import tempfile
-
-import mock
+from unittest import mock
from odoo.tests.common import TransactionCase
diff --git a/base_report_to_printer/tests/test_printing_printer_wizard.py b/base_report_to_printer/tests/test_printing_printer_wizard.py
index 2233e20a9c5..0914a8b1394 100644
--- a/base_report_to_printer/tests/test_printing_printer_wizard.py
+++ b/base_report_to_printer/tests/test_printing_printer_wizard.py
@@ -1,7 +1,7 @@
# Copyright 2016 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-import mock
+from unittest import mock
from odoo.exceptions import UserError
from odoo.tests.common import TransactionCase
@@ -15,7 +15,7 @@ class StopTest(Exception):
class TestPrintingPrinterWizard(TransactionCase):
def setUp(self):
- super(TestPrintingPrinterWizard, self).setUp()
+ super().setUp()
self.Model = self.env["printing.printer.update.wizard"]
self.server = self.env["printing.server"].create({})
self.printer_vals = {
diff --git a/base_report_to_printer/tests/test_printing_server.py b/base_report_to_printer/tests/test_printing_server.py
index f7c444e8eb0..324cf033bc6 100644
--- a/base_report_to_printer/tests/test_printing_server.py
+++ b/base_report_to_printer/tests/test_printing_server.py
@@ -1,12 +1,13 @@
# Copyright 2016 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-import mock
+from unittest import mock
from odoo import fields
from odoo.tests.common import TransactionCase
model = "odoo.addons.base_report_to_printer.models.printing_server"
+model_base = "odoo.models.BaseModel"
class TestPrintingServer(TransactionCase):
@@ -69,14 +70,14 @@ def test_update_printers_gets_all_printers(self, cups):
@mock.patch("%s.cups" % model)
def test_update_printers_search(self, cups):
""" It should search all when no domain """
- with mock.patch.object(self.Model, "search") as search:
+ with mock.patch("%s.search" % model_base) as search:
self.Model.update_printers()
search.assert_called_once_with([])
@mock.patch("%s.cups" % model)
def test_update_printers_search_domain(self, cups):
""" It should use specific domain for search """
- with mock.patch.object(self.Model, "search") as search:
+ with mock.patch("%s.search" % model_base) as search:
expect = [("id", ">", 0)]
self.Model.update_printers(expect)
search.assert_called_once_with(expect)
@@ -89,6 +90,19 @@ def test_update_printers_update_unavailable(self, cups):
self.Model.action_update_printers()
self.assertEqual("unavailable", rec_id.status)
+ @mock.patch("%s.cups" % model)
+ def test_update_archived_printers(self, cups):
+ """ It should update status even if printer is archived """
+ rec_id = self.new_printer()
+ rec_id.toggle_active()
+ self.server.refresh()
+ cups.Connection().getPrinters().get.return_value = False
+ self.Model.action_update_printers()
+ self.assertEqual(
+ "unavailable",
+ rec_id.status,
+ )
+
@mock.patch("%s.cups" % model)
def test_update_jobs_cron(self, cups):
""" It should get all jobs from CUPS server """
diff --git a/base_report_to_printer/tests/test_report.py b/base_report_to_printer/tests/test_report.py
index 72630da75d8..23a73bc4582 100644
--- a/base_report_to_printer/tests/test_report.py
+++ b/base_report_to_printer/tests/test_report.py
@@ -2,14 +2,12 @@
# Copyright 2017 Tecnativa - Jairo Llopis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-import mock
+from unittest import mock
from odoo import exceptions
from odoo.tests import common
-@common.at_install(False)
-@common.post_install(True)
class TestReport(common.HttpCase):
def setUp(self):
super(TestReport, self).setUp()
@@ -20,21 +18,23 @@ def setUp(self):
"model": "ir.actions.report",
"report_name": "Test Report",
}
- self.report_imd = self.env["ir.model.data"].create(
- {"name": "test", "module": "base_report_to_printer", "model": "ir.ui.view"}
- )
self.report_view = self.env["ir.ui.view"].create(
{
"name": "Test",
"type": "qweb",
- "xml_id": "base_report_to_printer.test",
- "model_data_id": self.report_imd.id,
"arch": """
Test
""",
}
)
- self.report_imd.res_id = self.report_view.id
+ self.report_imd = self.env["ir.model.data"].create(
+ {
+ "name": "test",
+ "module": "base_report_to_printer",
+ "model": "ir.ui.view",
+ "res_id": self.report_view.id,
+ }
+ )
self.report = self.Model.create(
{
"name": "Test",
@@ -88,7 +88,7 @@ def test_render_qweb_pdf_not_printable(self):
"printing_printer.PrintingPrinter."
"print_document"
) as print_document:
- self.report.render_qweb_pdf(self.partners.ids)
+ self.report._render_qweb_pdf(self.partners.ids)
print_document.assert_not_called()
def test_render_qweb_pdf_printable(self):
@@ -100,7 +100,7 @@ def test_render_qweb_pdf_printable(self):
) as print_document:
self.report.property_printing_action_id.action_type = "server"
self.report.printing_printer_id = self.new_printer()
- document = self.report.render_qweb_pdf(self.partners.ids)
+ document = self.report._render_qweb_pdf(self.partners.ids)
print_document.assert_called_once_with(
self.report,
document[0],
diff --git a/base_report_to_printer/tests/test_res_users.py b/base_report_to_printer/tests/test_res_users.py
index 3e59dde3fc2..c64bed5aa82 100644
--- a/base_report_to_printer/tests/test_res_users.py
+++ b/base_report_to_printer/tests/test_res_users.py
@@ -4,8 +4,6 @@
from odoo.tests import common
-@common.at_install(False)
-@common.post_install(True)
class TestResUsers(common.TransactionCase):
def setUp(self):
super(TestResUsers, self).setUp()