diff options
author | Ladislav Smola <lsmola@redhat.com> | 2014-10-03 13:37:44 +0200 |
---|---|---|
committer | Ladislav Smola <lsmola@redhat.com> | 2014-10-03 14:58:52 +0200 |
commit | 7008d862835a08fe087ed4b8f952f89183465832 (patch) | |
tree | d3673f96e97c954c6bae1651870d9723ce765022 | |
parent | 075cb203755c5c2069c6afa64fb1ff748334807f (diff) | |
download | tuskar-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.py | 153 | ||||
-rw-r--r-- | tuskar_ui/test/test_data/tuskar_data.py | 97 |
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) |