summaryrefslogtreecommitdiff
path: root/service/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'service/test/unit')
-rw-r--r--service/test/unit/adapter/search/test_search.py6
-rw-r--r--service/test/unit/bitmask_libraries/test_certs.py51
-rw-r--r--service/test/unit/bitmask_libraries/test_nicknym.py25
-rw-r--r--service/test/unit/bitmask_libraries/test_provider.py29
-rw-r--r--service/test/unit/bitmask_libraries/test_session.py4
-rw-r--r--service/test/unit/bitmask_libraries/test_smtp.py8
-rw-r--r--service/test/unit/config/test_app_factory.py41
-rw-r--r--service/test/unit/maintenance/test_commands.py2
-rw-r--r--service/test/unit/resources/test_keys_resources.py1
-rw-r--r--service/test/unit/test_application.py53
10 files changed, 118 insertions, 102 deletions
diff --git a/service/test/unit/adapter/search/test_search.py b/service/test/unit/adapter/search/test_search.py
index 491cb2fc..1d9076a2 100644
--- a/service/test/unit/adapter/search/test_search.py
+++ b/service/test/unit/adapter/search/test_search.py
@@ -16,7 +16,6 @@
import unittest
-from mockito import mock, when
from pixelated.adapter.search import SearchEngine
from tempdir import TempDir
from test.support import test_helper
@@ -47,10 +46,7 @@ class SearchEngineTest(unittest.TestCase):
def test_encoding(self):
# given
- soledad_querier = mock()
- when(soledad_querier).get_index_masterkey().thenReturn(INDEX_KEY)
-
- se = SearchEngine(soledad_querier, self.agent_home)
+ se = SearchEngine(INDEX_KEY, self.agent_home)
headers = {
'From': 'foo@bar.tld',
diff --git a/service/test/unit/bitmask_libraries/test_certs.py b/service/test/unit/bitmask_libraries/test_certs.py
index 4a06649d..5d447537 100644
--- a/service/test/unit/bitmask_libraries/test_certs.py
+++ b/service/test/unit/bitmask_libraries/test_certs.py
@@ -1,35 +1,40 @@
import unittest
-from pixelated.bitmask_libraries.certs import which_bootstrap_CA_bundle, which_api_CA_bundle
-from pixelated.bitmask_libraries.config import AUTO_DETECT_CA_BUNDLE
-from mock import MagicMock, patch
+from pixelated.bitmask_libraries.certs import LeapCertificate
+from mock import MagicMock
class CertsTest(unittest.TestCase):
- @patch('pixelated.bitmask_libraries.certs.os.path.isfile')
- @patch('pixelated.bitmask_libraries.certs.os.path.isdir')
- def test_that_which_bootstrap_cert_bundle_returns_byte_string(self, mock_isdir, mock_isfile):
- mock_isfile.return_value = True
- mock_isdir.return_value = True
- config = MagicMock(bootstrap_ca_cert_bundle=AUTO_DETECT_CA_BUNDLE, leap_home='/leap/home')
- provider = MagicMock(server_name=u'test.leap.net', config=config)
+ def setUp(self):
+ config = MagicMock(leap_home='/some/leap/home')
+ self.provider = MagicMock(server_name=u'test.leap.net', config=config)
- bundle = which_bootstrap_CA_bundle(provider)
+ def test_set_cert_and_fingerprint_sets_cert(self):
+ LeapCertificate.set_cert_and_fingerprint('some cert', None)
- self.assertEqual('/leap/home/providers/test.leap.net/test.leap.net.ca.crt', bundle)
- self.assertEqual(str, type(bundle))
+ certs = LeapCertificate(self.provider)
- @patch('pixelated.bitmask_libraries.certs.os.path.isfile')
- @patch('pixelated.bitmask_libraries.certs.os.path.isdir')
- def test_that_which_bundle_returns_byte_string(self, mock_isdir, mock_isfile):
- mock_isfile.return_value = True
- mock_isdir.return_value = True
+ self.assertIsNone(certs.LEAP_FINGERPRINT)
+ self.assertEqual('some cert', certs.provider_web_cert)
- config = MagicMock(bootstrap_ca_cert_bundle=AUTO_DETECT_CA_BUNDLE, ca_cert_bundle=None, leap_home='/some/leap/home')
- provider = MagicMock(server_name=u'test.leap.net', config=config)
+ def test_set_cert_and_fingerprint_sets_fingerprint(self):
+ LeapCertificate.set_cert_and_fingerprint(None, 'fingerprint')
- bundle = which_api_CA_bundle(provider)
+ certs = LeapCertificate(self.provider)
- self.assertEqual('/some/leap/home/providers/test.leap.net/keys/client/api.pem', bundle)
- self.assertEqual(str, type(bundle))
+ self.assertEqual('fingerprint', LeapCertificate.LEAP_FINGERPRINT)
+ self.assertFalse(certs.provider_web_cert)
+
+ def test_set_cert_and_fingerprint_when_none_are_passed(self):
+ LeapCertificate.set_cert_and_fingerprint(None, None)
+
+ certs = LeapCertificate(self.provider)
+
+ self.assertIsNone(certs.LEAP_FINGERPRINT)
+ self.assertEqual(True, certs.provider_web_cert)
+
+ def test_provider_api_cert(self):
+ certs = LeapCertificate(self.provider).provider_api_cert
+
+ self.assertEqual('/some/leap/home/providers/test.leap.net/keys/client/api.pem', certs)
diff --git a/service/test/unit/bitmask_libraries/test_nicknym.py b/service/test/unit/bitmask_libraries/test_nicknym.py
index b892c22c..ca3b348d 100644
--- a/service/test/unit/bitmask_libraries/test_nicknym.py
+++ b/service/test/unit/bitmask_libraries/test_nicknym.py
@@ -15,29 +15,36 @@
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
from mock import patch
+from test_abstract_leap import AbstractLeapTest
from leap.keymanager import openpgp, KeyNotFound
from pixelated.bitmask_libraries.nicknym import NickNym
-from test_abstract_leap import AbstractLeapTest
+from pixelated.bitmask_libraries.certs import LeapCertificate
class NickNymTest(AbstractLeapTest):
@patch('pixelated.bitmask_libraries.nicknym.KeyManager.__init__', return_value=None)
- def test_that_keymanager_is_created(self, init_mock):
+ def test_that_keymanager_is_created(self, keymanager_init_mock):
# given
-
+ LeapCertificate.provider_api_cert = '/some/path/to/provider_ca_cert'
# when
NickNym(self.provider,
self.config,
self.soledad_session,
- self.auth.username,
+ 'test_user@some-server.test',
self.auth.token,
self.auth.uuid)
# then
- init_mock.assert_called_with('test_user@some-server.test', 'https://nicknym.some-server.test:6425/',
- self.soledad, self.auth.token, '/some/path/to/provider_ca_cert',
- 'https://api.some-server.test:4430', '1', self.auth.uuid,
- '/path/to/gpg')
+ keymanager_init_mock.assert_called_with(
+ 'test_user@some-server.test',
+ 'https://nicknym.some-server.test:6425/',
+ self.soledad,
+ self.auth.token,
+ '/some/path/to/provider_ca_cert',
+ 'https://api.some-server.test:4430',
+ '1',
+ self.auth.uuid,
+ '/path/to/gpg')
@patch('pixelated.bitmask_libraries.nicknym.KeyManager')
def test_gen_key(self, keymanager_mock):
@@ -47,7 +54,7 @@ class NickNymTest(AbstractLeapTest):
nicknym = NickNym(self.provider,
self.config,
self.soledad_session,
- self.auth.username,
+ 'test_user@some-server.test',
self.auth.token,
self.auth.uuid)
diff --git a/service/test/unit/bitmask_libraries/test_provider.py b/service/test/unit/bitmask_libraries/test_provider.py
index 0771c7cc..1fe5a66d 100644
--- a/service/test/unit/bitmask_libraries/test_provider.py
+++ b/service/test/unit/bitmask_libraries/test_provider.py
@@ -20,8 +20,8 @@ from httmock import all_requests, HTTMock, urlmatch
from requests import HTTPError
from pixelated.bitmask_libraries.config import LeapConfig
from pixelated.bitmask_libraries.provider import LeapProvider
+from pixelated.bitmask_libraries.certs import LeapCertificate
from test_abstract_leap import AbstractLeapTest
-from requests import Session
import requests
@@ -133,13 +133,14 @@ VeJ6
"""
-CA_CERT = '/tmp/ca.crt'
-BOOTSTRAP_CA_CERT = '/tmp/bootstrap-ca.crt'
+PROVIDER_API_CERT = '/tmp/ca.crt'
+PROVIDER_WEB_CERT = '/tmp/bootstrap-ca.crt'
class LeapProviderTest(AbstractLeapTest):
def setUp(self):
- self.config = LeapConfig(verify_ssl=False, leap_home='/tmp/foobar', bootstrap_ca_cert_bundle=BOOTSTRAP_CA_CERT, ca_cert_bundle=CA_CERT)
+ self.config = LeapConfig(leap_home='/tmp/foobar')
+ LeapCertificate.set_cert_and_fingerprint(PROVIDER_WEB_CERT, None)
def test_provider_fetches_provider_json(self):
with HTTMock(provider_json_mock):
@@ -195,6 +196,7 @@ class LeapProviderTest(AbstractLeapTest):
session = MagicMock(wraps=requests.session())
session_func = MagicMock(return_value=session)
get_func = MagicMock(wraps=requests.get)
+ LeapCertificate.LEAP_CERT = PROVIDER_WEB_CERT
with patch('pixelated.bitmask_libraries.provider.requests.session', new=session_func):
with patch('pixelated.bitmask_libraries.provider.requests.get', new=get_func):
@@ -202,29 +204,28 @@ class LeapProviderTest(AbstractLeapTest):
provider = LeapProvider('some-provider.test', self.config)
provider.fetch_valid_certificate()
- session.get.assert_any_call('https://some-provider.test/ca.crt', verify=BOOTSTRAP_CA_CERT, timeout=15)
- session.get.assert_any_call('https://some-provider.test/provider.json', verify=BOOTSTRAP_CA_CERT, timeout=15)
+ session.get.assert_any_call('https://some-provider.test/ca.crt', verify=PROVIDER_WEB_CERT, timeout=15)
+ session.get.assert_any_call('https://some-provider.test/provider.json', verify=PROVIDER_WEB_CERT, timeout=15)
def test_that_provider_cert_is_used_to_fetch_soledad_json(self):
get_func = MagicMock(wraps=requests.get)
+ LeapCertificate.provider_api_cert = PROVIDER_API_CERT
with patch('pixelated.bitmask_libraries.provider.requests.get', new=get_func):
with HTTMock(provider_json_mock, soledad_json_mock, not_found_mock):
provider = LeapProvider('some-provider.test', self.config)
provider.fetch_soledad_json()
-
- get_func.assert_called_with('https://api.some-provider.test:4430/1/config/soledad-service.json', verify=CA_CERT, timeout=15)
+ get_func.assert_called_with('https://api.some-provider.test:4430/1/config/soledad-service.json', verify=PROVIDER_API_CERT, timeout=15)
def test_that_leap_fingerprint_is_validated(self):
session = MagicMock(wraps=requests.session())
session_func = MagicMock(return_value=session)
+ LeapCertificate.set_cert_and_fingerprint(None, 'some fingerprint')
- with patch('pixelated.bitmask_libraries.provider.which_bootstrap_cert_fingerprint', return_value='some fingerprint'):
- with patch('pixelated.bitmask_libraries.provider.which_bootstrap_CA_bundle', return_value=False):
- with patch('pixelated.bitmask_libraries.provider.requests.session', new=session_func):
- with HTTMock(provider_json_mock, ca_cert_mock, not_found_mock):
- provider = LeapProvider('some-provider.test', self.config)
- provider.fetch_valid_certificate()
+ with patch('pixelated.bitmask_libraries.provider.requests.session', new=session_func):
+ with HTTMock(provider_json_mock, ca_cert_mock, not_found_mock):
+ provider = LeapProvider('some-provider.test', self.config)
+ provider.fetch_valid_certificate()
session.get.assert_any_call('https://some-provider.test/ca.crt', verify=False, timeout=15)
session.mount.assert_called_with('https://', ANY)
diff --git a/service/test/unit/bitmask_libraries/test_session.py b/service/test/unit/bitmask_libraries/test_session.py
index 62330481..0c662ecb 100644
--- a/service/test/unit/bitmask_libraries/test_session.py
+++ b/service/test/unit/bitmask_libraries/test_session.py
@@ -60,10 +60,6 @@ class SessionTest(AbstractLeapTest):
self.soledad_session.sync.assert_called_once_with()
- def test_account_email(self):
- session = self._create_session()
- self.assertEqual('test_user@some-server.test', session.account_email())
-
def _create_session(self):
return LeapSession(self.provider, self.auth, self.soledad_session, self.nicknym, self.soledad_account,
self.mail_fetcher_mock, self.smtp_mock)
diff --git a/service/test/unit/bitmask_libraries/test_smtp.py b/service/test/unit/bitmask_libraries/test_smtp.py
index 5987415c..ec51c56b 100644
--- a/service/test/unit/bitmask_libraries/test_smtp.py
+++ b/service/test/unit/bitmask_libraries/test_smtp.py
@@ -53,7 +53,7 @@ class LeapSmtpTest(AbstractLeapTest):
self.config.timeout_in_s = 15
def test_that_client_cert_gets_downloaded(self):
- smtp = LeapSmtp(self.provider, self.auth.username, self.auth.session_id, self.keymanager)
+ smtp = LeapSmtp(self.provider, self.auth, self.keymanager)
with HTTMock(ca_cert_mock, not_found_mock):
smtp._download_client_certificates()
@@ -66,7 +66,7 @@ class LeapSmtpTest(AbstractLeapTest):
@patch('pixelated.bitmask_libraries.smtp.setup_smtp_gateway')
def test_that_start_calls_setup_smtp_gateway(self, gateway_mock):
- smtp = LeapSmtp(self.provider, self.auth.username, self.auth.session_id, self.keymanager)
+ smtp = LeapSmtp(self.provider, self.auth, self.keymanager)
port = 500
smtp.local_smtp_port_number = port
@@ -78,14 +78,14 @@ class LeapSmtpTest(AbstractLeapTest):
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.auth.username, self.auth.session_id, self.keymanager)
+ smtp = LeapSmtp(self.provider, self.auth, self.keymanager)
with HTTMock(not_found_mock):
smtp.stop()
@patch('pixelated.bitmask_libraries.smtp.setup_smtp_gateway')
def test_that_running_smtp_sevice_is_stopped(self, gateway_mock):
- smtp = LeapSmtp(self.provider, self.auth.username, self.auth.session_id, self.keymanager)
+ smtp = LeapSmtp(self.provider, self.auth, self.keymanager)
smtp_service = MagicMock()
smtp_port = MagicMock()
diff --git a/service/test/unit/config/test_app_factory.py b/service/test/unit/config/test_app_factory.py
deleted file mode 100644
index a43273c3..00000000
--- a/service/test/unit/config/test_app_factory.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import unittest
-
-from mock import patch, MagicMock, ANY
-import pixelated
-
-
-class AppFactoryTest(unittest.TestCase):
-
- class MockConfig:
- def __init__(self, port, host, sslkey=None, sslcert=None):
- self.port = port
- self.host = host
- self.sslkey = sslkey
- self.sslcert = sslcert
- self.home = 'leap_home'
-
- @patch('pixelated.config.app_factory.init_app')
- @patch('pixelated.config.app_factory.reactor')
- @unittest.skip("refactoring startup, need to define a better place to put this")
- def test_that_create_app_binds_to_tcp_port_if_no_ssl_options(self, reactor_mock, init_app_mock):
- app_mock = MagicMock()
- leap_session = MagicMock()
- config = AppFactoryTest.MockConfig(12345, '127.0.0.1', leap_session)
-
- create_app(config.home, leap_session, config.host, config.port, config.sslkey, config.sslcert)
-
- reactor_mock.listenTCP.assert_called_once_with(12345, ANY, interface='127.0.0.1')
-
- @patch('pixelated.config.app_factory.init_app')
- @patch('pixelated.config.app_factory.reactor')
- @unittest.skip("refactoring startup, need to define a better place to put this")
- def test_that_create_app_binds_to_ssl_if_ssl_options(self, reactor_mock, init_app_mock):
- app_mock = MagicMock()
- leap_session = MagicMock()
- pixelated.config.app_factory._ssl_options = lambda x, y: 'options'
-
- config = AppFactoryTest.MockConfig(12345, '127.0.0.1', sslkey="sslkey", sslcert="sslcert")
-
- create_app(config.home, leap_session, config.host, config.port, config.sslkey, config.sslcert)
-
- reactor_mock.listenSSL.assert_called_once_with(12345, ANY, 'options', interface='127.0.0.1')
diff --git a/service/test/unit/maintenance/test_commands.py b/service/test/unit/maintenance/test_commands.py
index 6f993106..f1bf6e45 100644
--- a/service/test/unit/maintenance/test_commands.py
+++ b/service/test/unit/maintenance/test_commands.py
@@ -22,7 +22,7 @@ from leap.mail.imap.account import SoledadBackedAccount
from leap.mail.imap.fields import WithMsgFields
from leap.soledad.client import Soledad
from leap.soledad.common.document import SoledadDocument
-from mock import MagicMock, ANY
+from mock import MagicMock
from os.path import join, dirname
from twisted.internet import defer, reactor
diff --git a/service/test/unit/resources/test_keys_resources.py b/service/test/unit/resources/test_keys_resources.py
index fb085cad..be79424b 100644
--- a/service/test/unit/resources/test_keys_resources.py
+++ b/service/test/unit/resources/test_keys_resources.py
@@ -1,4 +1,3 @@
-import json
from mockito import mock, when
from leap.keymanager import OpenPGPKey, KeyNotFound
from pixelated.resources.keys_resource import KeysResource
diff --git a/service/test/unit/test_application.py b/service/test/unit/test_application.py
new file mode 100644
index 00000000..b2799d4c
--- /dev/null
+++ b/service/test/unit/test_application.py
@@ -0,0 +1,53 @@
+import unittest
+
+from mock import patch, MagicMock, ANY
+import pixelated
+
+
+class ApplicationTest(unittest.TestCase):
+
+ class MockConfig:
+ def __init__(self, port, host, sslkey=None, sslcert=None):
+ self.port = port
+ self.host = host
+ self.sslkey = sslkey
+ self.sslcert = sslcert
+ self.home = 'leap_home'
+
+ @patch('pixelated.application.reactor')
+ @patch('pixelated.application.Services')
+ def test_that_create_app_binds_to_tcp_port_if_no_ssl_options(self, services_mock, reactor_mock):
+ app_mock = MagicMock()
+ leap_session = MagicMock()
+ config = ApplicationTest.MockConfig(12345, '127.0.0.1', leap_session)
+
+ d = pixelated.application.start_user_agent(app_mock, config.host, config.port, config.sslkey, config.sslcert, config.home, leap_session)
+
+ def _assert(_):
+ services_mock.assert_called_once_with(config.home, leap_session)
+
+ reactor_mock.listenTCP.assert_called_once_with(12345, ANY, interface='127.0.0.1')
+ app_mock.stopListening.assert_called()
+
+ d.addCallback(_assert)
+ return d
+
+ @patch('pixelated.application.reactor')
+ @patch('pixelated.application.Services')
+ def test_that_create_app_binds_to_ssl_if_ssl_options(self, services_mock, reactor_mock):
+ app_mock = MagicMock()
+ leap_session = MagicMock()
+ pixelated.application._ssl_options = lambda x, y: 'options'
+
+ config = ApplicationTest.MockConfig(12345, '127.0.0.1', sslkey="sslkey", sslcert="sslcert")
+
+ d = pixelated.application.start_user_agent(app_mock, config.host, config.port, config.sslkey, config.sslcert, config.home, leap_session)
+
+ def _assert(_):
+ services_mock.assert_called_once_with(config.home, leap_session)
+
+ reactor_mock.listenSSL.assert_called_once_with(12345, ANY, 'options', interface='127.0.0.1')
+ app_mock.stopListening.assert_called()
+
+ d.addCallback(_assert)
+ return d