summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLadislav Smola <lsmola@redhat.com>2014-10-03 13:37:44 +0200
committerLadislav Smola <lsmola@redhat.com>2014-10-03 14:58:52 +0200
commit7008d862835a08fe087ed4b8f952f89183465832 (patch)
treed3673f96e97c954c6bae1651870d9723ce765022
parent075cb203755c5c2069c6afa64fb1ff748334807f (diff)
downloadtuskar-ui-7008d862835a08fe087ed4b8f952f89183465832.tar.gz
Adding tests for generating parameters
Adding tests for generating passwords and certificates. Change-Id: I0fb09e4004b1c5f0cb2aa0366965abaa1e470f62
-rw-r--r--tuskar_ui/test/api_tests/tuskar_tests.py153
-rw-r--r--tuskar_ui/test/test_data/tuskar_data.py97
2 files changed, 184 insertions, 66 deletions
diff --git a/tuskar_ui/test/api_tests/tuskar_tests.py b/tuskar_ui/test/api_tests/tuskar_tests.py
index 42998011..903d962e 100644
--- a/tuskar_ui/test/api_tests/tuskar_tests.py
+++ b/tuskar_ui/test/api_tests/tuskar_tests.py
@@ -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'}})
diff --git a/tuskar_ui/test/test_data/tuskar_data.py b/tuskar_ui/test/test_data/tuskar_data.py
index eb33138f..f76ac354 100644
--- a/tuskar_ui/test/test_data/tuskar_data.py
+++ b/tuskar_ui/test/test_data/tuskar_data.py
@@ -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',
- }, {
- 'name': 'GlancePassword',
- 'label': 'Glance Password',
- 'description': 'Glance Password',
- 'hidden': 'false',
- 'value': '16b4aaa3e056d07f796a93afb6010487b7b617e7',
- }, {
- 'name': 'NovaPassword',
- 'label': 'Nova Password',
- 'description': 'Nova Password',
- 'hidden': 'false',
- 'value': '67d8090ff40c0c400b08ff558233091402afc9c5',
+ 'hidden': True,
+ 'value': '',
+ }, {
+ 'name': 'Controller-1::SnmpdReadonlyUserPassword',
+ 'label': 'Snmpd password',
+ 'description': 'Snmpd password',
+ 'hidden': True,
+ 'value': '',
+ }, {
+ 'name': 'Compute-1::SnmpdReadonlyUserPassword',
+ 'label': 'Snmpd password',
+ 'description': 'Snmpd password',
+ 'hidden': True,
+ 'value': 'unset',
}],
})
TEST.tuskarclient_plans.add(plan_1)