From 1c6535b3c9cdc5d7e284c4dfc676d68ddecbae51 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Tue, 6 Oct 2020 17:32:01 +0200 Subject: [PATCH] [IMP] base_report_to_printer: archive printers --- base_report_to_printer/models/printing_printer.py | 1 + base_report_to_printer/models/printing_server.py | 3 +-- base_report_to_printer/tests/test_printing_server.py | 12 ++++++++++++ base_report_to_printer/views/printing_printer.xml | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/base_report_to_printer/models/printing_printer.py b/base_report_to_printer/models/printing_printer.py index fb9c504..e9ad5ee 100644 --- a/base_report_to_printer/models/printing_printer.py +++ b/base_report_to_printer/models/printing_printer.py @@ -32,6 +32,7 @@ class PrintingPrinter(models.Model): _order = 'name' name = fields.Char(required=True, index=True) + active = fields.Boolean(default=True) server_id = fields.Many2one( comodel_name='printing.server', string='Server', required=True, help='Server used to access this printer.') diff --git a/base_report_to_printer/models/printing_server.py b/base_report_to_printer/models/printing_server.py index 4f80536..8395753 100644 --- a/base_report_to_printer/models/printing_server.py +++ b/base_report_to_printer/models/printing_server.py @@ -61,9 +61,8 @@ class PrintingServer(models.Model): servers = self if not self: 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'}) diff --git a/base_report_to_printer/tests/test_printing_server.py b/base_report_to_printer/tests/test_printing_server.py index ee812f5..1285f6f 100644 --- a/base_report_to_printer/tests/test_printing_server.py +++ b/base_report_to_printer/tests/test_printing_server.py @@ -95,6 +95,18 @@ class TestPrintingServer(TransactionCase): '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/views/printing_printer.xml b/base_report_to_printer/views/printing_printer.xml index c036cf8..d4749cc 100644 --- a/base_report_to_printer/views/printing_printer.xml +++ b/base_report_to_printer/views/printing_printer.xml @@ -18,6 +18,11 @@ +