blob: ad9b983ed9f9db5f0f93686ea6263faddafe5937 [file] [log] [blame]
ZhiQiang Fan39f97222013-09-20 04:49:44 +08001# Copyright 2012 OpenStack Foundation
Jay Pipesf38eaac2012-06-21 13:37:35 -04002# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
Sean Dague1937d092013-05-17 16:36:38 -040016from tempest.api.identity import base
Ken'ichi Ohmichi7bd25752017-03-10 10:45:39 -080017from tempest.lib.common.utils import data_utils
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080018from tempest.lib import decorators
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070019
20
Matthew Treinishdb2c5972014-01-31 22:18:59 +000021class TenantsTestJSON(base.BaseIdentityV2AdminTest):
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070022
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080023 @decorators.idempotent_id('16c6e05c-6112-4b0e-b83f-5e43f221b6b0')
Attila Fazekas40ec1232013-01-08 11:45:32 +010024 def test_tenant_list_delete(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050025 # Create several tenants and delete them
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070026 tenants = []
Sirushti Murugesan12dc9732016-07-13 22:49:17 +053027 for _ in range(3):
zhufl963d2c32017-04-20 15:44:58 +080028 tenant = self.setup_test_tenant()
Attila Fazekas40ec1232013-01-08 11:45:32 +010029 tenants.append(tenant)
Sirushti Murugesan935f2cc2016-07-12 19:48:24 +053030 tenant_ids = [tn['id'] for tn in tenants]
Daniel Melladob04da902015-11-20 17:43:12 +010031 body = self.tenants_client.list_tenants()['tenants']
Matthew Treinishc795b9e2014-06-09 17:01:10 -040032 found = [t for t in body if t['id'] in tenant_ids]
Attila Fazekas40ec1232013-01-08 11:45:32 +010033 self.assertEqual(len(found), len(tenants), 'Tenants not created')
34
35 for tenant in tenants:
Daniel Melladob04da902015-11-20 17:43:12 +010036 self.tenants_client.delete_tenant(tenant['id'])
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070037
Daniel Melladob04da902015-11-20 17:43:12 +010038 body = self.tenants_client.list_tenants()['tenants']
Attila Fazekas40ec1232013-01-08 11:45:32 +010039 found = [tenant for tenant in body if tenant['id'] in tenant_ids]
40 self.assertFalse(any(found), 'Tenants failed to delete')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070041
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080042 @decorators.idempotent_id('d25e9f24-1310-4d29-b61b-d91299c21d6d')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070043 def test_tenant_create_with_description(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050044 # Create tenant with a description
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000045 tenant_desc = data_utils.rand_name(name='desc')
zhufl963d2c32017-04-20 15:44:58 +080046 tenant = self.setup_test_tenant(description=tenant_desc)
Daniel Melladob04da902015-11-20 17:43:12 +010047 tenant_id = tenant['id']
48 desc1 = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070049 self.assertEqual(desc1, tenant_desc, 'Description should have '
Zhongyue Luo79d8d362012-09-25 13:49:27 +080050 'been sent in response for create')
Daniel Melladob04da902015-11-20 17:43:12 +010051 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070052 desc2 = body['description']
53 self.assertEqual(desc2, tenant_desc, 'Description does not appear'
Zhongyue Luo79d8d362012-09-25 13:49:27 +080054 'to be set')
Daniel Melladob04da902015-11-20 17:43:12 +010055 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070056
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080057 @decorators.idempotent_id('670bdddc-1cd7-41c7-b8e2-751cfb67df50')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070058 def test_tenant_create_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050059 # Create a tenant that is enabled
zhufl963d2c32017-04-20 15:44:58 +080060 tenant = self.setup_test_tenant(enabled=True)
Daniel Melladob04da902015-11-20 17:43:12 +010061 tenant_id = tenant['id']
62 en1 = tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070063 self.assertTrue(en1, 'Enable should be True in response')
Daniel Melladob04da902015-11-20 17:43:12 +010064 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070065 en2 = body['enabled']
66 self.assertTrue(en2, 'Enable should be True in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +010067 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070068
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080069 @decorators.idempotent_id('3be22093-b30f-499d-b772-38340e5e16fb')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070070 def test_tenant_create_not_enabled(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050071 # Create a tenant that is not enabled
zhufl963d2c32017-04-20 15:44:58 +080072 tenant = self.setup_test_tenant(enabled=False)
Daniel Melladob04da902015-11-20 17:43:12 +010073 tenant_id = tenant['id']
74 en1 = tenant['enabled']
Vincent Hou6b8a7b72012-08-25 01:24:33 +080075 self.assertEqual('false', str(en1).lower(),
76 'Enable should be False in response')
Daniel Melladob04da902015-11-20 17:43:12 +010077 body = self.tenants_client.show_tenant(tenant_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070078 en2 = body['enabled']
Vincent Hou6b8a7b72012-08-25 01:24:33 +080079 self.assertEqual('false', str(en2).lower(),
80 'Enable should be False in lookup')
Daniel Melladob04da902015-11-20 17:43:12 +010081 self.tenants_client.delete_tenant(tenant_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070082
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080083 @decorators.idempotent_id('781f2266-d128-47f3-8bdb-f70970add238')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070084 def test_tenant_update_name(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -050085 # Update name attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000086 t_name1 = data_utils.rand_name(name='tenant')
zhufl963d2c32017-04-20 15:44:58 +080087 tenant = self.setup_test_tenant(name=t_name1)
88 t_id = tenant['id']
89 resp1_name = tenant['name']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070090
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000091 t_name2 = data_utils.rand_name(name='tenant2')
Daniel Melladob04da902015-11-20 17:43:12 +010092 body = self.tenants_client.update_tenant(t_id, name=t_name2)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070093 resp2_name = body['name']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070094 self.assertNotEqual(resp1_name, resp2_name)
95
Daniel Melladob04da902015-11-20 17:43:12 +010096 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -070097 resp3_name = body['name']
98
99 self.assertNotEqual(resp1_name, resp3_name)
100 self.assertEqual(t_name1, resp1_name)
101 self.assertEqual(resp2_name, resp3_name)
102
Daniel Melladob04da902015-11-20 17:43:12 +0100103 self.tenants_client.delete_tenant(t_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700104
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -0800105 @decorators.idempotent_id('859fcfe1-3a03-41ef-86f9-b19a47d1cd87')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700106 def test_tenant_update_desc(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500107 # Update description attribute of a tenant
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000108 t_desc = data_utils.rand_name(name='desc')
zhufl963d2c32017-04-20 15:44:58 +0800109 tenant = self.setup_test_tenant(description=t_desc)
Daniel Melladob04da902015-11-20 17:43:12 +0100110 t_id = tenant['id']
111 resp1_desc = tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700112
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +0000113 t_desc2 = data_utils.rand_name(name='desc2')
Daniel Melladob04da902015-11-20 17:43:12 +0100114 body = self.tenants_client.update_tenant(t_id, description=t_desc2)
115 updated_tenant = body['tenant']
116 resp2_desc = updated_tenant['description']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700117 self.assertNotEqual(resp1_desc, resp2_desc)
118
Daniel Melladob04da902015-11-20 17:43:12 +0100119 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700120 resp3_desc = body['description']
121
122 self.assertNotEqual(resp1_desc, resp3_desc)
123 self.assertEqual(t_desc, resp1_desc)
124 self.assertEqual(resp2_desc, resp3_desc)
125
Daniel Melladob04da902015-11-20 17:43:12 +0100126 self.tenants_client.delete_tenant(t_id)
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700127
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -0800128 @decorators.idempotent_id('8fc8981f-f12d-4c66-9972-2bdcf2bc2e1a')
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700129 def test_tenant_update_enable(self):
Sean Dague46c4a2b2013-01-03 17:54:17 -0500130 # Update the enabled attribute of a tenant
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700131 t_en = False
zhufl963d2c32017-04-20 15:44:58 +0800132 tenant = self.setup_test_tenant(enabled=t_en)
Daniel Melladob04da902015-11-20 17:43:12 +0100133 t_id = tenant['id']
134 resp1_en = tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700135
136 t_en2 = True
Daniel Melladob04da902015-11-20 17:43:12 +0100137 body = self.tenants_client.update_tenant(t_id, enabled=t_en2)
138 updated_tenant = body['tenant']
139 resp2_en = updated_tenant['enabled']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700140 self.assertNotEqual(resp1_en, resp2_en)
141
Daniel Melladob04da902015-11-20 17:43:12 +0100142 body = self.tenants_client.show_tenant(t_id)['tenant']
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700143 resp3_en = body['enabled']
144
145 self.assertNotEqual(resp1_en, resp3_en)
Vincent Hou6b8a7b72012-08-25 01:24:33 +0800146 self.assertEqual('false', str(resp1_en).lower())
chris fattarsi9ba7b0e2012-05-07 13:55:51 -0700147 self.assertEqual(resp2_en, resp3_en)
148
Daniel Melladob04da902015-11-20 17:43:12 +0100149 self.tenants_client.delete_tenant(t_id)