Adding tests for generating parameters

Adding tests for generating passwords and certificates.

Change-Id: I0fb09e4004b1c5f0cb2aa0366965abaa1e470f62
This commit is contained in:
Ladislav Smola 2014-10-03 13:37:44 +02:00
parent 075cb20375
commit 7008d86283
2 changed files with 182 additions and 64 deletions

View File

@ -12,8 +12,9 @@
# under the License.
from __future__ import absolute_import
import contextlib
from mock import patch # noqa
from mock import patch, call # noqa
from tuskar_ui import api
from tuskar_ui.test import helpers as test
@ -128,3 +129,153 @@ class TuskarAPITests(test.APITestCase):
ret_val = param.role
self.assertIsInstance(ret_val, api.tuskar.Role)
self.assertEqual(ret_val.name, 'Controller')
def test_list_generated_parameters(self):
plan = api.tuskar.Plan(self.tuskarclient_plans.first())
with contextlib.nested(
patch('tuskar_ui.api.tuskar.Plan.parameter_list',
return_value=plan.parameters),
) as (mock_parameter_list, ):
ret_val = plan.list_generated_parameters()
self.assertEqual(
ret_val,
{'Controller-1::KeystoneCACertificate': {
'description': 'Keystone CA CertificateAdmin',
'hidden': True,
'name': 'Controller-1::KeystoneCACertificate',
'value': 'unset',
'label': 'Keystone CA CertificateAdmin'},
'Controller-1::SnmpdReadonlyUserPassword': {
'description': 'Snmpd password',
'hidden': True,
'name': 'Controller-1::SnmpdReadonlyUserPassword',
'value': '',
'label': 'Snmpd password'},
'Controller-1::AdminPassword': {
'description': 'Admin password',
'hidden': True,
'name': 'Controller-1::AdminPassword',
'value': 'unset',
'label': 'Admin Password'},
'Controller-1::AdminToken': {
'description': 'Admin Token',
'hidden': True,
'name': 'Controller-1::AdminToken',
'value': '',
'label': 'Admin Token'},
'Compute-1::SnmpdReadonlyUserPassword': {
'description': 'Snmpd password',
'hidden': True,
'name': 'Compute-1::SnmpdReadonlyUserPassword',
'value': 'unset',
'label': 'Snmpd password'}})
mock_parameter_list.assert_called_once_with()
def test_list_generated_parameters_without_prefix(self):
plan = api.tuskar.Plan(self.tuskarclient_plans.first())
with contextlib.nested(
patch('tuskar_ui.api.tuskar.Plan.parameter_list',
return_value=plan.parameters),
) as (mock_parameter_list, ):
ret_val = plan.list_generated_parameters(with_prefix=False)
self.assertEqual(
ret_val,
{'SnmpdReadonlyUserPassword': {
'description': 'Snmpd password',
'hidden': True,
'name': 'Compute-1::SnmpdReadonlyUserPassword',
'value': 'unset',
'label': 'Snmpd password'},
'KeystoneCACertificate': {
'description': 'Keystone CA CertificateAdmin',
'hidden': True,
'name': 'Controller-1::KeystoneCACertificate',
'value': 'unset',
'label': 'Keystone CA CertificateAdmin'},
'AdminToken': {
'description': 'Admin Token',
'hidden': True,
'name': 'Controller-1::AdminToken',
'value': '',
'label': 'Admin Token'},
'AdminPassword': {
'description': 'Admin password',
'hidden': True,
'name': 'Controller-1::AdminPassword',
'value': 'unset',
'label': 'Admin Password'}})
mock_parameter_list.assert_called_once_with()
def test_make_keystone_certificates(self):
plan = api.tuskar.Plan(self.tuskarclient_plans.first())
with contextlib.nested(
patch('os_cloud_config.keystone_pki.create_ca_pair',
return_value=('ca_key_pem', 'ca_cert_pem')),
patch('os_cloud_config.keystone_pki.create_signing_pair',
return_value=('signing_key_pem', 'signing_cert_pem'))
) as (mock_create_ca_pair, mock_create_signing_pair):
ret_val = plan._make_keystone_certificates(
{'KeystoneSigningCertificate': {}})
self.assertEqual(
ret_val,
{'KeystoneCACertificate': 'ca_cert_pem',
'KeystoneSigningCertificate': 'signing_cert_pem',
'KeystoneSigningKey': 'signing_key_pem'})
mock_create_ca_pair.assert_called_once_with()
mock_create_signing_pair.assert_called_once_with(
'ca_key_pem', 'ca_cert_pem')
def test_make_generated_parameters(self):
plan = api.tuskar.Plan(self.tuskarclient_plans.first())
with contextlib.nested(
patch('tuskar_ui.api.tuskar.Plan.parameter_list',
return_value=plan.parameters),
patch('tuskar_ui.api.tuskar.Plan._make_keystone_certificates',
return_value={'KeystoneCACertificate': 'ca_cert_pem'}),
patch('tuskar_ui.api.tuskar.password_generator',
return_value='generated_password')
) as (mock_parameter_list, mock_make_keystone_certificates,
mock_password_generator):
ret_val = plan.make_generated_parameters()
self.assertEqual(
ret_val,
{'Controller-1::KeystoneCACertificate': 'ca_cert_pem',
'Controller-1::SnmpdReadonlyUserPassword': 'generated_password',
'Controller-1::AdminPassword': 'generated_password',
'Controller-1::AdminToken': 'generated_password',
'Compute-1::SnmpdReadonlyUserPassword': 'generated_password'})
mock_parameter_list.assert_has_calls([
call(), call()])
mock_make_keystone_certificates.assert_called_once_with({
'SnmpdReadonlyUserPassword': {
'description': 'Snmpd password',
'hidden': True,
'name': 'Compute-1::SnmpdReadonlyUserPassword',
'value': 'unset',
'label': 'Snmpd password'},
'KeystoneCACertificate': {
'description': 'Keystone CA CertificateAdmin',
'hidden': True, 'name':
'Controller-1::KeystoneCACertificate',
'value': 'unset',
'label': 'Keystone CA CertificateAdmin'},
'AdminToken': {
'description': 'Admin Token',
'hidden': True,
'name': 'Controller-1::AdminToken',
'value': '', 'label': 'Admin Token'},
'AdminPassword': {
'description': 'Admin password',
'hidden': True,
'name': 'Controller-1::AdminPassword',
'value': 'unset',
'label': 'Admin Password'}})

View File

@ -53,119 +53,86 @@ def data(TEST):
'name': 'Controller-1::count',
'label': 'Controller Node Count',
'description': 'Controller node count',
'hidden': 'false',
'hidden': False,
'value': 1,
}, {
'name': 'Compute-1::count',
'label': 'Compute Node Count',
'description': 'Compute node count',
'hidden': 'false',
'hidden': False,
'value': 42,
}, {
'name': 'Block Storage-1::count',
'label': 'Block Sorage Node Count',
'description': 'Block storage node count',
'hidden': 'false',
'hidden': False,
'value': 5,
}, {
'name': 'Controller-1::Flavor',
'label': 'Controller Flavor',
'description': 'Controller flavor',
'hidden': 'false',
'hidden': False,
'value': 'flavor-1',
}, {
'name': 'Compute-1::Flavor',
'label': 'Compute Flavor',
'description': 'Compute flavor',
'hidden': 'false',
'hidden': False,
'value': 'flavor-1',
}, {
'name': 'Block Storage-1::Flavor',
'label': 'Block Storage Flavor',
'description': 'Block storage flavor',
'hidden': 'false',
'hidden': False,
'value': 'flavor-2',
}, {
'name': 'Controller-1::Image',
'label': 'Controller Image ID',
'description': 'Controller image ID',
'hidden': 'false',
'hidden': False,
'value': '2',
}, {
'name': 'Compute-1::Image',
'label': 'Compute Image ID',
'description': 'Compute image ID',
'hidden': 'false',
'hidden': False,
'value': '1',
}, {
'name': 'Block Storage-1::Image',
'label': 'Block Storage Image ID',
'description': 'Block storage image ID',
'hidden': 'false',
'hidden': False,
'value': '4',
}, {
'name': 'controller_NovaInterfaces',
'parameter_group': 'Nova',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': 'eth0',
'name': 'Controller-1::KeystoneCACertificate',
'label': 'Keystone CA CertificateAdmin',
'description': 'Keystone CA CertificateAdmin',
'hidden': True,
'value': 'unset',
}, {
'name': 'controller_NeutronInterfaces',
'parameter_group': 'Neutron',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': 'eth0',
}, {
'name': 'compute_KeystoneHost',
'parameter_group': 'Keystone',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': '',
'label': 'Keystone Host',
'value': ''
}, {
'name': 'object_storage_SwiftHashSuffix',
'parameter_group': 'Swift',
'label': 'Swift Object Storage Hash Suffix',
'type': 'String',
'description': '',
'no_echo': 'true',
'default': '',
'value': ''
}, {
'name': 'block_storage_NeutronNetworkType',
'parameter_group': 'Neutron',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': 'gre',
}, {
'name': 'AdminPassword',
'name': 'Controller-1::AdminPassword',
'label': 'Admin Password',
'description': 'Admin password',
'hidden': 'false',
'value': '5ba3a69c95c668daf84c2f103ebec82d273a4897',
'hidden': True,
'value': 'unset',
}, {
'name': 'AdminToken',
'name': 'Controller-1::AdminToken',
'label': 'Admin Token',
'description': 'Admin Token',
'hidden': 'false',
'value': 'aa61677c0a270880e99293c148cefee4000b2259',
'hidden': True,
'value': '',
}, {
'name': 'GlancePassword',
'label': 'Glance Password',
'description': 'Glance Password',
'hidden': 'false',
'value': '16b4aaa3e056d07f796a93afb6010487b7b617e7',
'name': 'Controller-1::SnmpdReadonlyUserPassword',
'label': 'Snmpd password',
'description': 'Snmpd password',
'hidden': True,
'value': '',
}, {
'name': 'NovaPassword',
'label': 'Nova Password',
'description': 'Nova Password',
'hidden': 'false',
'value': '67d8090ff40c0c400b08ff558233091402afc9c5',
'name': 'Compute-1::SnmpdReadonlyUserPassword',
'label': 'Snmpd password',
'description': 'Snmpd password',
'hidden': True,
'value': 'unset',
}],
})
TEST.tuskarclient_plans.add(plan_1)