diff --git a/odoo/addons/base/tests/common.py b/odoo/addons/base/tests/common.py index 67608368a7a..3f85b96944a 100644 --- a/odoo/addons/base/tests/common.py +++ b/odoo/addons/base/tests/common.py @@ -322,6 +322,9 @@ class MockSmtplibCase: def login(self, user, password): pass + def starttls(self, keyfile=None, certfile=None, context=None): + pass + self.testing_smtp_session = TestingSMTPSession() IrMailServer = self.env['ir.mail_server'] diff --git a/odoo/addons/base/tests/test_ir_mail_server.py b/odoo/addons/base/tests/test_ir_mail_server.py index c2a330067f9..46d832fa14a 100644 --- a/odoo/addons/base/tests/test_ir_mail_server.py +++ b/odoo/addons/base/tests/test_ir_mail_server.py @@ -254,6 +254,20 @@ class TestIrMailServer(TransactionCase, MockSmtplibCase): from_filter='custom_domain.com', ) + # Test when forcing the mail server and when smtp_encryption is "starttls" + self.server_domain.smtp_encryption = "starttls" + with self.mock_smtplib_connection(): + message = self._build_email(mail_from='specific_user@test.com') + IrMailServer.send_email(message, mail_server_id=self.server_domain.id) + + self.connect_mocked.assert_called_once() + self.assert_email_sent_smtp( + smtp_from='specific_user@test.com', + message_from='specific_user@test.com', + from_filter='test.com', + ) + + @mute_logger('odoo.models.unlink') def test_mail_server_send_email_smtp_session(self): """Test all the cases when we provide the SMTP session.