114 lines
4.8 KiB
Python
114 lines
4.8 KiB
Python
# Copyright 2016 Hewlett Packard Enterprise Development LP
|
|
# 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 unittest import mock
|
|
|
|
from tempest.lib.common import cred_client
|
|
from tempest.tests import base
|
|
|
|
|
|
class TestCredClientV2(base.TestCase):
|
|
def setUp(self):
|
|
super(TestCredClientV2, self).setUp()
|
|
self.identity_client = mock.MagicMock()
|
|
self.projects_client = mock.MagicMock()
|
|
self.users_client = mock.MagicMock()
|
|
self.roles_client = mock.MagicMock()
|
|
self.creds_client = cred_client.V2CredsClient(self.identity_client,
|
|
self.projects_client,
|
|
self.users_client,
|
|
self.roles_client)
|
|
|
|
def test_create_project(self):
|
|
self.projects_client.create_tenant.return_value = {
|
|
'tenant': 'a_tenant'
|
|
}
|
|
res = self.creds_client.create_project('fake_name', 'desc')
|
|
self.assertEqual('a_tenant', res)
|
|
self.projects_client.create_tenant.assert_called_once_with(
|
|
name='fake_name', description='desc')
|
|
|
|
def test_delete_project(self):
|
|
self.creds_client.delete_project('fake_id')
|
|
self.projects_client.delete_tenant.assert_called_once_with(
|
|
'fake_id')
|
|
|
|
def test_get_credentials(self):
|
|
ret = self.creds_client.get_credentials(
|
|
{'name': 'some_user', 'id': 'fake_id'},
|
|
{'name': 'some_project', 'id': 'fake_id'},
|
|
'password123')
|
|
self.assertEqual(ret.username, 'some_user')
|
|
self.assertEqual(ret.project_name, 'some_project')
|
|
|
|
|
|
class TestCredClientV3(base.TestCase):
|
|
def setUp(self):
|
|
super(TestCredClientV3, self).setUp()
|
|
self.identity_client = mock.MagicMock()
|
|
self.projects_client = mock.MagicMock()
|
|
self.users_client = mock.MagicMock()
|
|
self.roles_client = mock.MagicMock()
|
|
self.domains_client = mock.MagicMock()
|
|
self.domains_client.list_domains.return_value = {
|
|
'domains': [{'id': 'fake_domain_id', 'name': 'some_domain'}]
|
|
}
|
|
self.creds_client = cred_client.V3CredsClient(self.identity_client,
|
|
self.projects_client,
|
|
self.users_client,
|
|
self.roles_client,
|
|
self.domains_client,
|
|
'fake_domain')
|
|
|
|
def test_create_project(self):
|
|
self.projects_client.create_project.return_value = {
|
|
'project': 'a_tenant'
|
|
}
|
|
res = self.creds_client.create_project('fake_name', 'desc')
|
|
self.assertEqual('a_tenant', res)
|
|
self.projects_client.create_project.assert_called_once_with(
|
|
name='fake_name', description='desc', domain_id='fake_domain_id')
|
|
|
|
def test_delete_project(self):
|
|
self.creds_client.delete_project('fake_id')
|
|
self.projects_client.delete_project.assert_called_once_with(
|
|
'fake_id')
|
|
|
|
def test_get_credentials(self):
|
|
ret = self.creds_client.get_credentials(
|
|
{'name': 'some_user', 'id': 'fake_id'},
|
|
{'name': 'some_project', 'id': 'fake_id'},
|
|
'password123')
|
|
self.assertEqual(ret.username, 'some_user')
|
|
self.assertEqual(ret.project_name, 'some_project')
|
|
self.assertIsNone(ret.system)
|
|
self.assertEqual(ret.domain_name, 'some_domain')
|
|
ret = self.creds_client.get_credentials(
|
|
{'name': 'some_user', 'id': 'fake_id'},
|
|
None,
|
|
'password123',
|
|
domain={'name': 'another_domain', 'id': 'another_id'})
|
|
self.assertEqual(ret.username, 'some_user')
|
|
self.assertIsNone(ret.project_name)
|
|
self.assertIsNone(ret.system)
|
|
self.assertEqual(ret.domain_name, 'another_domain')
|
|
ret = self.creds_client.get_credentials(
|
|
{'name': 'some_user', 'id': 'fake_id'},
|
|
None,
|
|
'password123',
|
|
system={'system': 'all'})
|
|
self.assertEqual(ret.username, 'some_user')
|
|
self.assertIsNone(ret.project_name)
|
|
self.assertEqual(ret.system, {'system': 'all'})
|
|
self.assertEqual(ret.domain_name, 'some_domain')
|