97 lines
3.6 KiB
Python
97 lines
3.6 KiB
Python
from test_utils import CharmTestCase
|
|
from mock import patch
|
|
import neutron_plumgrid_context as context
|
|
import charmhelpers
|
|
|
|
TO_PATCH = [
|
|
'config',
|
|
]
|
|
|
|
|
|
def fake_context(settings):
|
|
def outer():
|
|
def inner():
|
|
return settings
|
|
return inner
|
|
return outer
|
|
|
|
|
|
class NeutronPGContextTest(CharmTestCase):
|
|
|
|
def setUp(self):
|
|
super(NeutronPGContextTest, self).setUp(context, TO_PATCH)
|
|
self.config.side_effect = self.test_config.get
|
|
self.test_config.set('enable-metadata', False)
|
|
|
|
def tearDown(self):
|
|
super(NeutronPGContextTest, self).tearDown()
|
|
|
|
@patch.object(context, '_container_settings')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'config',
|
|
lambda *args: None)
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'relation_get')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'relation_ids')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'related_units')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'config')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'unit_get')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'is_clustered')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'https')
|
|
@patch.object(context.NeutronPGPluginContext, '_save_flag_file')
|
|
@patch.object(context.NeutronPGPluginContext, '_ensure_packages')
|
|
@patch.object(charmhelpers.contrib.openstack.context,
|
|
'neutron_plugin_attribute')
|
|
@patch.object(charmhelpers.contrib.openstack.context, 'unit_private_ip')
|
|
def test_neutroncc_context_api_rel(self, _unit_priv_ip, _npa, _ens_pkgs,
|
|
_save_ff, _https, _is_clus, _unit_get,
|
|
_config, _runits, _rids, _rget,
|
|
_con_settings):
|
|
def mock_npa(plugin, section, manager):
|
|
if section == "driver":
|
|
return "neutron.randomdriver"
|
|
if section == "config":
|
|
return "neutron.randomconfig"
|
|
|
|
config = {'enable-metadata': False}
|
|
|
|
def mock_config(key=None):
|
|
if key:
|
|
return config.get(key)
|
|
|
|
return config
|
|
|
|
self.maxDiff = None
|
|
self.config.side_effect = mock_config
|
|
_npa.side_effect = mock_npa
|
|
_con_settings.return_value = {
|
|
'auth_host': '10.0.0.1',
|
|
'auth_port': '35357',
|
|
'auth_protocol': 'http',
|
|
'service_tenant': 'admin',
|
|
'service_username': 'admin',
|
|
'service_password': 'admin',
|
|
}
|
|
_unit_get.return_value = '192.168.100.201'
|
|
_unit_priv_ip.return_value = '192.168.100.201'
|
|
napi_ctxt = context.NeutronPGPluginContext()
|
|
expect = {
|
|
'enable_metadata': False,
|
|
'config': 'neutron.randomconfig',
|
|
'core_plugin': 'neutron.randomdriver',
|
|
'local_ip': '192.168.100.201',
|
|
'network_manager': 'neutron',
|
|
'neutron_plugin': 'plumgrid',
|
|
'neutron_security_groups': None,
|
|
'neutron_url': 'https://None:9696',
|
|
'admin_user': 'admin',
|
|
'admin_password': 'admin',
|
|
'admin_tenant_name': 'admin',
|
|
'service_protocol': 'http',
|
|
'auth_port': '35357',
|
|
'auth_host': '10.0.0.1',
|
|
'metadata_mode': 'tunnel',
|
|
'nova_metadata_proxy_secret': 'plumgrid',
|
|
'pg_metadata_ip': '169.254.169.254',
|
|
'pg_metadata_port': '8775',
|
|
}
|
|
self.assertEquals(expect, napi_ctxt())
|