Increase test coverage for utils and plugin
Increasing test coverage to acceptable levels for utils.py and plugin.py. Change-Id: I4e71f126848e85c8330b49a1883c9c3ee9746fcf
This commit is contained in:
parent
2d7017ab71
commit
61cab9e97f
|
@ -0,0 +1,42 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from tripleoclient import plugin
|
||||
from tripleoclient.tests import base
|
||||
from tripleoclient.tests import fakes
|
||||
|
||||
import mock
|
||||
|
||||
|
||||
class TestPlugin(base.TestCase):
|
||||
|
||||
@mock.patch('ironicclient.client.get_client')
|
||||
def test_make_client(self, ironic_get_client):
|
||||
clientmgr = mock.MagicMock()
|
||||
clientmgr._api_version.__getitem__.return_value = '1'
|
||||
clientmgr.get_endpoint_for_service_type.return_value = fakes.AUTH_URL
|
||||
|
||||
client = plugin.make_client(clientmgr)
|
||||
|
||||
# The client should have a baremetal property. Accessing it should
|
||||
# fetch it from the clientmanager:
|
||||
baremetal = client.baremetal
|
||||
orchestration = client.orchestration
|
||||
# The second access should return the same clients:
|
||||
self.assertIs(client.baremetal, baremetal)
|
||||
self.assertIs(client.orchestration, orchestration)
|
||||
|
||||
# And the functions should only be called per property:
|
||||
self.assertEqual(clientmgr.get_endpoint_for_service_type.call_count, 2)
|
||||
self.assertEqual(clientmgr.auth.get_token.call_count, 2)
|
|
@ -18,6 +18,8 @@ import os.path
|
|||
import tempfile
|
||||
|
||||
from tripleoclient import exceptions
|
||||
from tripleoclient.tests.v1.utils import (
|
||||
generate_overcloud_passwords_mock)
|
||||
from tripleoclient import utils
|
||||
from unittest import TestCase
|
||||
|
||||
|
@ -177,7 +179,8 @@ class TestWaitForStackUtil(TestCase):
|
|||
'CREATE_FAILED', '2015-10-14T02:25:43Z'),
|
||||
]]
|
||||
|
||||
complete = utils.wait_for_stack_ready(self.mock_orchestration, 'stack')
|
||||
complete = utils.wait_for_stack_ready(self.mock_orchestration, 'stack',
|
||||
verbose=True)
|
||||
|
||||
self.assertFalse(complete)
|
||||
|
||||
|
@ -452,3 +455,63 @@ class TestEnsureRunAsNormalUser(TestCase):
|
|||
os_geteuid_mock.return_value = 0
|
||||
self.assertRaises(exceptions.RootUserExecution,
|
||||
utils.ensure_run_as_normal_user)
|
||||
|
||||
|
||||
class TestCreateOvercloudRC(TestCase):
|
||||
|
||||
@mock.patch('tripleoclient.utils.generate_overcloud_passwords',
|
||||
new=generate_overcloud_passwords_mock)
|
||||
def test_create_overcloudrc(self):
|
||||
stack = mock.MagicMock()
|
||||
stack.stack_name = 'teststack'
|
||||
stack.to_dict.return_value = {
|
||||
'outputs': [{'output_key': 'KeystoneURL',
|
||||
'output_value': 'http://foo:8000/'}]
|
||||
}
|
||||
|
||||
tempdir = tempfile.mkdtemp()
|
||||
rcfile = os.path.join(tempdir, 'teststackrc')
|
||||
try:
|
||||
utils.create_overcloudrc(stack=stack,
|
||||
no_proxy='127.0.0.1',
|
||||
config_directory=tempdir)
|
||||
rc = open(rcfile, 'rt').read()
|
||||
self.assertIn('export OS_AUTH_URL=http://foo:8000/', rc)
|
||||
self.assertIn('export no_proxy=127.0.0.1', rc)
|
||||
self.assertIn('export OS_CLOUDNAME=teststack', rc)
|
||||
finally:
|
||||
if os.path.exists(rcfile):
|
||||
os.unlink(rcfile)
|
||||
os.rmdir(tempdir)
|
||||
|
||||
|
||||
class TestCreateTempestDeployerInput(TestCase):
|
||||
|
||||
def test_create_tempest_deployer_input(self):
|
||||
with tempfile.NamedTemporaryFile() as cfgfile:
|
||||
filepath = cfgfile.name
|
||||
utils.create_tempest_deployer_input(filepath)
|
||||
cfg = open(filepath, 'rt').read()
|
||||
# Just make a simple test, to make sure it created a proper file:
|
||||
self.assertIn(
|
||||
'[orchestration]\nstack_owner_role = heat_stack_user', cfg)
|
||||
|
||||
|
||||
class TestGetServiceIps(TestCase):
|
||||
|
||||
def test_get_service_ips(self):
|
||||
stack = mock.MagicMock()
|
||||
stack.to_dict.return_value = {
|
||||
'outputs': [{'output_key': 'KeystoneURL',
|
||||
'output_value': 'http://foo:8000/'}]
|
||||
}
|
||||
|
||||
ips = utils.get_service_ips(stack)
|
||||
self.assertEqual(ips, {'KeystoneURL': 'http://foo:8000/'})
|
||||
|
||||
|
||||
class TestCreateCephxKey(TestCase):
|
||||
|
||||
def test_create_cephx_key(self):
|
||||
key = utils.create_cephx_key()
|
||||
self.assertEqual(len(key), 40)
|
||||
|
|
Loading…
Reference in New Issue