
Most OpenStack clients support a common set of SSL options, such as os-cacert, os-cert, and os-key. This change uses keystoneclient.session.register_cli_opts to add those to the argument parser and passes the resulting values to the Keystone client so they take effect. Change-Id: I24c2c2fa5be51590cc2d8a9278563dd4f7ba091d
91 lines
3.3 KiB
Python
91 lines
3.3 KiB
Python
# 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.
|
|
|
|
import mock
|
|
|
|
from tuskarclient import client
|
|
from tuskarclient.common import auth
|
|
from tuskarclient.openstack.common.apiclient import client as apiclient
|
|
from tuskarclient.tests import utils as tutils
|
|
|
|
|
|
class ClientGetClientTest(tutils.TestCase):
|
|
def setUp(self):
|
|
super(ClientGetClientTest, self).setUp()
|
|
self.kwargs = {
|
|
'os_username': 'os_username',
|
|
'os_password': 'os_password',
|
|
'os_tenant_name': 'os_tenant_name',
|
|
'os_auth_token': 'os_auth_token',
|
|
'os_auth_url': 'os_auth_url',
|
|
'tuskar_url': 'tuskar_url',
|
|
'os_cacert': 'os_cacert',
|
|
'os_cert': 'os_cert',
|
|
'os_key': 'os_key',
|
|
}
|
|
self.client_kwargs = {
|
|
'username': 'os_username',
|
|
'password': 'os_password',
|
|
'tenant_name': 'os_tenant_name',
|
|
'token': 'os_auth_token',
|
|
'auth_url': 'os_auth_url',
|
|
'endpoint': 'tuskar_url',
|
|
'cacert': 'os_cacert',
|
|
'cert': 'os_cert',
|
|
'key': 'os_key',
|
|
}
|
|
self.api_version = 2
|
|
|
|
@mock.patch.object(client, 'Client')
|
|
def test_it_works(self, mocked_Client):
|
|
mocked_Client.return_value = 'client'
|
|
self.assertEqual(client.get_client(self.api_version, **self.kwargs),
|
|
'client')
|
|
mocked_Client.assert_called_with(self.api_version,
|
|
**self.client_kwargs)
|
|
|
|
@mock.patch.object(client, 'Client')
|
|
def test_it_raises_error_without_proper_params(
|
|
self,
|
|
mocked_Client):
|
|
|
|
mocked_Client.return_value = None
|
|
kwargs = self.kwargs.copy()
|
|
del kwargs['os_password']
|
|
self.assertRaises(ValueError,
|
|
client.get_client, self.api_version, **self.kwargs
|
|
)
|
|
mocked_Client.assert_called_with(self.api_version,
|
|
**self.client_kwargs)
|
|
|
|
|
|
class ClientClientTest(tutils.TestCase):
|
|
def setUp(self):
|
|
super(ClientClientTest, self).setUp()
|
|
self.client_kwargs = {
|
|
'username': 'os_username',
|
|
'password': 'os_password',
|
|
'tenant_name': 'os_tenant_name',
|
|
'token': 'os_auth_token',
|
|
'auth_url': 'os_auth_url',
|
|
'endpoint': 'tuskar_url'
|
|
}
|
|
self.api_version = 2
|
|
|
|
@mock.patch.object(apiclient, 'HTTPClient')
|
|
@mock.patch.object(auth, 'KeystoneAuthPlugin')
|
|
def test_client_initialization(self, mocked_KeystoneAuthPlugin,
|
|
mocked_HTTPClient):
|
|
client.Client(self.api_version, **self.client_kwargs)
|
|
mocked_KeystoneAuthPlugin.assert_called_with(**self.client_kwargs)
|
|
mocked_HTTPClient.assert_called_with(mocked_KeystoneAuthPlugin())
|