diff options
Diffstat (limited to 'src/leap/config/tests')
-rw-r--r-- | src/leap/config/tests/test_providerconfig.py | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/src/leap/config/tests/test_providerconfig.py b/src/leap/config/tests/test_providerconfig.py deleted file mode 100644 index ff2828e6..00000000 --- a/src/leap/config/tests/test_providerconfig.py +++ /dev/null @@ -1,279 +0,0 @@ -# -*- coding: utf-8 -*- -# test_providerconfig.py -# Copyright (C) 2013 LEAP -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -""" -Tests for providerconfig -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest - -import os -import json -import copy - -from leap.common.testing.basetest import BaseLeapTest -from leap.config.providerconfig import ProviderConfig, MissingCACert -from leap.services import get_supported - -from mock import Mock - - -sample_config = { - "api_uri": "https://api.test.bitmask.net:4430", - "api_version": "1", - "ca_cert_fingerprint": - "SHA256: 0f17c033115f6b76ff67871872303ff65034efe7dd1b910062ca323eb4da5c7e", - "ca_cert_uri": "https://test.bitmask.net/ca.crt", - "default_language": "en", - "description": { - "en": "Test description for provider", - "es": "Descripcion de prueba para el proveedor" - }, - "domain": "test.bitmask.net", - "enrollment_policy": "open", - "languages": [ - "en", - "es" - ], - "name": { - "en": "Bitmask testing environment", - "es": "Entorno de pruebas de Bitmask" - }, - "service": { - "allow_anonymous": True, - "allow_free": True, - "allow_limited_bandwidth": True, - "allow_paid": False, - "allow_registration": True, - "allow_unlimited_bandwidth": False, - "bandwidth_limit": 400000, - "default_service_level": 1, - "levels": [ - { - "bandwidth": "limited", - "id": 1, - "name": "anonymous" - }, - { - "bandwidth": "limited", - "id": 2, - "name": "free", - "storage": 50 - } - ] - }, - "services": [ - "openvpn" - ] -} - - -class ProviderConfigTest(BaseLeapTest): - """Tests for ProviderConfig""" - - def setUp(self): - self._provider_config = ProviderConfig() - json_string = json.dumps(sample_config) - self._provider_config.load(data=json_string) - - # At certain points we are going to be replacing these method - # to avoid creating a file. - # We need to save the old implementation and restore it in - # tearDown so we are sure everything is as expected for each - # test. If we do it inside each specific test, a failure in - # the test will leave the implementation with the mock. - self._old_ospath_exists = os.path.exists - - def tearDown(self): - os.path.exists = self._old_ospath_exists - - def test_configs_ok(self): - """ - Test if the configs loads ok - """ - # TODO: this test should go to the BaseConfig tests - pc = self._provider_config - self.assertEqual(pc.get_api_uri(), sample_config['api_uri']) - self.assertEqual(pc.get_api_version(), sample_config['api_version']) - self.assertEqual(pc.get_ca_cert_fingerprint(), - sample_config['ca_cert_fingerprint']) - self.assertEqual(pc.get_ca_cert_uri(), sample_config['ca_cert_uri']) - self.assertEqual(pc.get_default_language(), - sample_config['default_language']) - - self.assertEqual(pc.get_domain(), sample_config['domain']) - self.assertEqual(pc.get_enrollment_policy(), - sample_config['enrollment_policy']) - self.assertEqual(pc.get_languages(), sample_config['languages']) - - def test_localizations(self): - pc = self._provider_config - - self.assertEqual(pc.get_description(lang='en'), - sample_config['description']['en']) - self.assertEqual(pc.get_description(lang='es'), - sample_config['description']['es']) - - self.assertEqual(pc.get_name(lang='en'), sample_config['name']['en']) - self.assertEqual(pc.get_name(lang='es'), sample_config['name']['es']) - - def _localize(self, lang): - """ - Helper to change default language of the provider config. - """ - pc = self._provider_config - config = copy.deepcopy(sample_config) - config['default_language'] = lang - json_string = json.dumps(config) - pc.load(data=json_string) - - return config - - def test_default_localization1(self): - pc = self._provider_config - config = self._localize(sample_config['languages'][0]) - - default_language = config['default_language'] - default_description = config['description'][default_language] - default_name = config['name'][default_language] - - self.assertEqual(pc.get_description(lang='xx'), default_description) - self.assertEqual(pc.get_description(), default_description) - - self.assertEqual(pc.get_name(lang='xx'), default_name) - self.assertEqual(pc.get_name(), default_name) - - def test_default_localization2(self): - pc = self._provider_config - config = self._localize(sample_config['languages'][1]) - - default_language = config['default_language'] - default_description = config['description'][default_language] - default_name = config['name'][default_language] - - self.assertEqual(pc.get_description(lang='xx'), default_description) - self.assertEqual(pc.get_description(), default_description) - - self.assertEqual(pc.get_name(lang='xx'), default_name) - self.assertEqual(pc.get_name(), default_name) - - def test_get_ca_cert_path_as_expected(self): - pc = self._provider_config - pc.get_path_prefix = Mock(return_value='test') - - provider_domain = sample_config['domain'] - expected_path = os.path.join('test', 'leap', 'providers', - provider_domain, 'keys', 'ca', - 'cacert.pem') - - # mock 'os.path.exists' so we don't get an error for unexisting file - os.path.exists = Mock(return_value=True) - cert_path = pc.get_ca_cert_path() - - self.assertEqual(cert_path, expected_path) - - def test_get_ca_cert_path_about_to_download(self): - pc = self._provider_config - pc.get_path_prefix = Mock(return_value='test') - - provider_domain = sample_config['domain'] - expected_path = os.path.join('test', 'leap', 'providers', - provider_domain, 'keys', 'ca', - 'cacert.pem') - - cert_path = pc.get_ca_cert_path(about_to_download=True) - - self.assertEqual(cert_path, expected_path) - - def test_get_ca_cert_path_fails(self): - pc = self._provider_config - pc.get_path_prefix = Mock(return_value='test') - - # mock 'get_domain' so we don't need to load a config - provider_domain = 'test.provider.com' - pc.get_domain = Mock(return_value=provider_domain) - - with self.assertRaises(MissingCACert): - pc.get_ca_cert_path() - - def test_provides_eip(self): - pc = self._provider_config - config = copy.deepcopy(sample_config) - - # It provides - config['services'] = ['openvpn', 'test_service'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertTrue(pc.provides_eip()) - - # It does not provides - config['services'] = ['test_service', 'other_service'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertFalse(pc.provides_eip()) - - def test_provides_mx(self): - pc = self._provider_config - config = copy.deepcopy(sample_config) - - # It provides - config['services'] = ['mx', 'other_service'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertTrue(pc.provides_mx()) - - # It does not provides - config['services'] = ['test_service', 'other_service'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertFalse(pc.provides_mx()) - - def test_supports_unknown_service(self): - pc = self._provider_config - config = copy.deepcopy(sample_config) - - config['services'] = ['unknown'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertFalse('unknown' in get_supported(pc.get_services())) - - def test_provides_unknown_service(self): - pc = self._provider_config - config = copy.deepcopy(sample_config) - - config['services'] = ['unknown'] - json_string = json.dumps(config) - pc.load(data=json_string) - self.assertTrue('unknown' in pc.get_services()) - - def test_get_services_string(self): - pc = self._provider_config - config = copy.deepcopy(sample_config) - config['services'] = [ - 'openvpn', 'asdf', 'openvpn', 'not_supported_service'] - json_string = json.dumps(config) - pc.load(data=json_string) - - self.assertEqual(pc.get_services_string(), - "Encrypted Internet, asdf, Encrypted Internet," - " not_supported_service") - - -if __name__ == "__main__": - unittest.main() |