75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
![]() |
from mock import patch, call, MagicMock
|
||
|
from test_utils import CharmTestCase
|
||
|
from copy import deepcopy
|
||
|
|
||
|
from collections import OrderedDict
|
||
|
import os
|
||
|
|
||
|
os.environ['JUJU_UNIT_NAME'] = 'keystone'
|
||
|
with patch('charmhelpers.core.hookenv.config') as config:
|
||
|
import keystone_utils as utils
|
||
|
|
||
|
import keystone_context
|
||
|
from charmhelpers.contrib.openstack import context
|
||
|
|
||
|
TO_PATCH = [
|
||
|
'config',
|
||
|
'os_release',
|
||
|
'log',
|
||
|
]
|
||
|
|
||
|
class TestKeystoneUtils(CharmTestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
super(TestKeystoneUtils, self).setUp(utils, TO_PATCH)
|
||
|
self.config.side_effect = self.test_config.get
|
||
|
|
||
|
self.ctxt = MagicMock()
|
||
|
self.rsc_map = {
|
||
|
'/etc/keystone/keystone.conf': {
|
||
|
'services': ['keystone'],
|
||
|
'contexts': [self.ctxt],
|
||
|
},
|
||
|
'/etc/apache2/sites-available/openstack_https_frontend': {
|
||
|
'services': ['apache2'],
|
||
|
'contexts': [self.ctxt],
|
||
|
},
|
||
|
'/etc/apache2/sites-available/openstack_https_frontend.conf': {
|
||
|
'services': ['apache2'],
|
||
|
'contexts': [self.ctxt],
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@patch('charmhelpers.contrib.openstack.templating.OSConfigRenderer')
|
||
|
@patch('os.path.exists')
|
||
|
@patch.object(utils, 'resource_map')
|
||
|
def test_register_configs_apache(self, resource_map, exists, renderer):
|
||
|
exists.return_value = False
|
||
|
self.os_release.return_value = 'havana'
|
||
|
fake_renderer = MagicMock()
|
||
|
fake_renderer.register = MagicMock()
|
||
|
renderer.return_value = fake_renderer
|
||
|
|
||
|
resource_map.return_value = self.rsc_map
|
||
|
utils.register_configs()
|
||
|
renderer.assert_called_with(
|
||
|
openstack_release='havana', templates_dir='templates/')
|
||
|
|
||
|
ex_reg = [
|
||
|
call('/etc/keystone/keystone.conf', [self.ctxt]),
|
||
|
call('/etc/apache2/sites-available/openstack_https_frontend', [self.ctxt]),
|
||
|
call('/etc/apache2/sites-available/openstack_https_frontend.conf', [self.ctxt]),
|
||
|
]
|
||
|
self.assertEquals(fake_renderer.register.call_args_list, ex_reg)
|
||
|
|
||
|
def test_determine_ports(self):
|
||
|
self.test_config.set('admin-port','80')
|
||
|
self.test_config.set('service-port','81')
|
||
|
result = utils.determine_ports()
|
||
|
self.assertEquals(result, ['80', '81'])
|
||
|
|
||
|
def test_determine_packages(self):
|
||
|
result = utils.determine_packages()
|
||
|
ex = utils.BASE_PACKAGES + ['keystone', 'haproxy', 'apache2']
|
||
|
self.assertEquals(set(ex), set(result))
|