diff options
| -rw-r--r-- | service/app/bitmask_libraries/smtp.py | 8 | ||||
| -rw-r--r-- | service/test/bitmask_libraries/smtp_test.py | 4 | 
2 files changed, 9 insertions, 3 deletions
| diff --git a/service/app/bitmask_libraries/smtp.py b/service/app/bitmask_libraries/smtp.py index 5fa7ad70..f07a4838 100644 --- a/service/app/bitmask_libraries/smtp.py +++ b/service/app/bitmask_libraries/smtp.py @@ -2,6 +2,8 @@ import os  import requests  from .certs import which_bundle  from leap.mail.smtp import setup_smtp_gateway +import random +  class LeapSmtp(object): @@ -14,6 +16,7 @@ class LeapSmtp(object):          self._hostname, self._port = self._discover_smtp_server()          self._smtp_port = None          self._smtp_service = None +        self._twisted_port = 10000 + int(random.random() * 5000)      def smtp_info(self):          return ('localhost', LeapSmtp.SMTP_PORT) @@ -60,14 +63,15 @@ class LeapSmtp(object):          email = '%s@%s' % (self._srp_session.user_name, self._provider.domain)          self._smtp_service, self._smtp_port = setup_smtp_gateway( -            port=LeapSmtp.SMTP_PORT, +            port=(self._twisted_port),              userid=email,              keymanager=self._keymanager,              smtp_host=self._hostname.encode('UTF-8'),              smtp_port=self._port,              smtp_cert=cert_path,              smtp_key=cert_path, -            encrypted_only=False) +            encrypted_only=False +        )      def stop(self):          if self._smtp_service is not None: diff --git a/service/test/bitmask_libraries/smtp_test.py b/service/test/bitmask_libraries/smtp_test.py index ed5fc520..4aa2d01d 100644 --- a/service/test/bitmask_libraries/smtp_test.py +++ b/service/test/bitmask_libraries/smtp_test.py @@ -50,12 +50,14 @@ class LeapSmtpTest(AbstractLeapTest):      @patch('app.bitmask_libraries.smtp.setup_smtp_gateway')      def test_that_start_calls_setup_smtp_gateway(self, gateway_mock):          smtp = LeapSmtp(self.provider, self.keymanager, self.srp_session) +        port = 500 +        smtp._twisted_port = port          gateway_mock.return_value = (None, None)          with HTTMock(ca_cert_mock, not_found_mock):              smtp.start()          cert_path = self._client_cert_path() -        gateway_mock.assert_called_with(keymanager=self.keymanager, smtp_cert=cert_path, smtp_key=cert_path, userid='test_user@some-server.test', smtp_port='1234', encrypted_only=False, smtp_host='smtp.some-sever.test', port=2014) +        gateway_mock.assert_called_with(keymanager=self.keymanager, smtp_cert=cert_path, smtp_key=cert_path, userid='test_user@some-server.test', smtp_port='1234', encrypted_only=False, smtp_host='smtp.some-sever.test', port=port)      def test_that_client_stop_does_nothing_if_not_started(self):          smtp = LeapSmtp(self.provider, self.keymanager, self.srp_session) | 
