From 48473cbee210a1e30b426a722a4c3d58ceebf615 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 8 Mar 2017 12:25:28 +0100 Subject: [PATCH] [FIX] ir.mail_server: pretend to connect while in test mode During installation of demo data and while running tests, the system should not actually connect to a real SMTP server. This allows installing new demo/test databases on a system with no working SMTP server. --- odoo/addons/base/ir/ir_mail_server.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/odoo/addons/base/ir/ir_mail_server.py b/odoo/addons/base/ir/ir_mail_server.py index 71f6c81a3fa..37a8126aaac 100644 --- a/odoo/addons/base/ir/ir_mail_server.py +++ b/odoo/addons/base/ir/ir_mail_server.py @@ -188,9 +188,8 @@ class IrMailServer(models.Model): def connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_debug=False, mail_server_id=None): - """Returns a new SMTP connection to the give SMTP server, authenticated - with ``user`` and ``password`` if provided, and encrypted as requested - by the ``encryption`` parameter. + """Returns a new SMTP connection to the given SMTP server. + When running in test mode, this method does nothing and returns `None`. :param host: host or IP of SMTP server to connect to, if mail_server_id not passed :param int port: SMTP port to connect to @@ -201,6 +200,10 @@ class IrMailServer(models.Model): will be output in logs) :param mail_server_id: ID of specific mail server to use (overrides other parameters) """ + # Do not actually connect while running in test mode + if getattr(threading.currentThread(), 'testing', False): + return None + mail_server = smtp_encryption = None if mail_server_id: mail_server = self.sudo().browse(mail_server_id)