blob: 7ea660b695650acee2647b57f09be15a9e84f202 [file] [log] [blame]
Matthew Treinish3787e4c2016-10-07 21:25:33 -04001# Copyright 2016 Hewlett Packard Enterprise Development LP
2# Licensed under the Apache License, Version 2.0 (the "License"); you may
3# not use this file except in compliance with the License. You may obtain
4# a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11# License for the specific language governing permissions and limitations
12# under the License.
13
Sean McGinniseed80742020-04-18 12:01:03 -050014from unittest import mock
Matthew Treinish3787e4c2016-10-07 21:25:33 -040015
16from tempest.lib.common import cred_client
17from tempest.tests import base
18
19
20class TestCredClientV2(base.TestCase):
21 def setUp(self):
22 super(TestCredClientV2, self).setUp()
23 self.identity_client = mock.MagicMock()
24 self.projects_client = mock.MagicMock()
25 self.users_client = mock.MagicMock()
26 self.roles_client = mock.MagicMock()
27 self.creds_client = cred_client.V2CredsClient(self.identity_client,
28 self.projects_client,
29 self.users_client,
30 self.roles_client)
31
32 def test_create_project(self):
33 self.projects_client.create_tenant.return_value = {
34 'tenant': 'a_tenant'
35 }
36 res = self.creds_client.create_project('fake_name', 'desc')
37 self.assertEqual('a_tenant', res)
38 self.projects_client.create_tenant.assert_called_once_with(
39 name='fake_name', description='desc')
40
41 def test_delete_project(self):
42 self.creds_client.delete_project('fake_id')
43 self.projects_client.delete_tenant.assert_called_once_with(
44 'fake_id')
45
Colleen Murphycd0bbbd2019-10-01 16:18:36 -070046 def test_get_credentials(self):
47 ret = self.creds_client.get_credentials(
48 {'name': 'some_user', 'id': 'fake_id'},
49 {'name': 'some_project', 'id': 'fake_id'},
50 'password123')
51 self.assertEqual(ret.username, 'some_user')
52 self.assertEqual(ret.project_name, 'some_project')
53
Matthew Treinish3787e4c2016-10-07 21:25:33 -040054
55class TestCredClientV3(base.TestCase):
56 def setUp(self):
57 super(TestCredClientV3, self).setUp()
58 self.identity_client = mock.MagicMock()
59 self.projects_client = mock.MagicMock()
60 self.users_client = mock.MagicMock()
61 self.roles_client = mock.MagicMock()
62 self.domains_client = mock.MagicMock()
63 self.domains_client.list_domains.return_value = {
Colleen Murphycd0bbbd2019-10-01 16:18:36 -070064 'domains': [{'id': 'fake_domain_id', 'name': 'some_domain'}]
Matthew Treinish3787e4c2016-10-07 21:25:33 -040065 }
66 self.creds_client = cred_client.V3CredsClient(self.identity_client,
67 self.projects_client,
68 self.users_client,
69 self.roles_client,
70 self.domains_client,
71 'fake_domain')
72
73 def test_create_project(self):
74 self.projects_client.create_project.return_value = {
75 'project': 'a_tenant'
76 }
77 res = self.creds_client.create_project('fake_name', 'desc')
78 self.assertEqual('a_tenant', res)
79 self.projects_client.create_project.assert_called_once_with(
80 name='fake_name', description='desc', domain_id='fake_domain_id')
81
82 def test_delete_project(self):
83 self.creds_client.delete_project('fake_id')
Matthew Treinish3787e4c2016-10-07 21:25:33 -040084 self.projects_client.delete_project.assert_called_once_with(
85 'fake_id')
Colleen Murphycd0bbbd2019-10-01 16:18:36 -070086
87 def test_get_credentials(self):
88 ret = self.creds_client.get_credentials(
89 {'name': 'some_user', 'id': 'fake_id'},
90 {'name': 'some_project', 'id': 'fake_id'},
91 'password123')
92 self.assertEqual(ret.username, 'some_user')
93 self.assertEqual(ret.project_name, 'some_project')
94 self.assertIsNone(ret.system)
95 self.assertEqual(ret.domain_name, 'some_domain')
96 ret = self.creds_client.get_credentials(
97 {'name': 'some_user', 'id': 'fake_id'},
98 None,
99 'password123',
100 domain={'name': 'another_domain', 'id': 'another_id'})
101 self.assertEqual(ret.username, 'some_user')
102 self.assertIsNone(ret.project_name)
103 self.assertIsNone(ret.system)
104 self.assertEqual(ret.domain_name, 'another_domain')
105 ret = self.creds_client.get_credentials(
106 {'name': 'some_user', 'id': 'fake_id'},
107 None,
108 'password123',
109 system={'system': 'all'})
110 self.assertEqual(ret.username, 'some_user')
111 self.assertIsNone(ret.project_name)
112 self.assertEqual(ret.system, {'system': 'all'})
113 self.assertEqual(ret.domain_name, 'some_domain')
Dmitrii Shcherbakov1ce92bf2019-03-09 05:44:01 +0300114
115 def test_create_user(self):
116 self.users_client.create_user.return_value = {
117 'user': 'a_user'
118 }
119 fake_project = {
120 'id': 'fake_project_id',
121 }
122 res = self.creds_client.create_user('fake_username',
123 'fake_password',
124 fake_project,
125 'fake_email')
126 self.assertEqual('a_user', res)
127 self.users_client.create_user.assert_called_once_with(
128 name='fake_username', password='fake_password',
129 project_id=fake_project['id'],
130 email='fake_email',
131 domain_id='fake_domain_id')