blob: 64dba7d25b9ed4280d8e5da235237c1591c1231b [file] [log] [blame]
Zhi Kun Liue8136f02014-01-07 18:56:28 +08001# Copyright 2013 IBM Corp.
2# 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
16from tempest.api.identity import base
17from tempest.common.utils import data_utils
18from tempest import test
19
20
Matthew Treinishdb2c5972014-01-31 22:18:59 +000021class GroupsV3TestJSON(base.BaseIdentityV3AdminTest):
Zhi Kun Liue8136f02014-01-07 18:56:28 +080022 _interface = 'json'
23
24 @classmethod
Andrea Frittoli7688e742014-09-15 12:38:22 +010025 def resource_setup(cls):
26 super(GroupsV3TestJSON, cls).resource_setup()
Zhi Kun Liue8136f02014-01-07 18:56:28 +080027
28 @test.attr(type='smoke')
29 def test_group_create_update_get(self):
30 name = data_utils.rand_name('Group')
31 description = data_utils.rand_name('Description')
David Kranzd8ccb792014-12-29 11:32:05 -050032 group = self.client.create_group(name,
33 description=description)
Matthew Treinishdb2c5972014-01-31 22:18:59 +000034 self.addCleanup(self.client.delete_group, group['id'])
Zhi Kun Liue8136f02014-01-07 18:56:28 +080035 self.assertEqual(group['name'], name)
36 self.assertEqual(group['description'], description)
37
38 new_name = data_utils.rand_name('UpdateGroup')
39 new_desc = data_utils.rand_name('UpdateDescription')
David Kranzd8ccb792014-12-29 11:32:05 -050040 updated_group = self.client.update_group(group['id'],
41 name=new_name,
42 description=new_desc)
Zhi Kun Liue8136f02014-01-07 18:56:28 +080043 self.assertEqual(updated_group['name'], new_name)
44 self.assertEqual(updated_group['description'], new_desc)
45
David Kranzd8ccb792014-12-29 11:32:05 -050046 new_group = self.client.get_group(group['id'])
Zhi Kun Liue8136f02014-01-07 18:56:28 +080047 self.assertEqual(group['id'], new_group['id'])
48 self.assertEqual(new_name, new_group['name'])
49 self.assertEqual(new_desc, new_group['description'])
50
51 @test.attr(type='smoke')
52 def test_group_users_add_list_delete(self):
53 name = data_utils.rand_name('Group')
David Kranzd8ccb792014-12-29 11:32:05 -050054 group = self.client.create_group(name)
Matthew Treinishdb2c5972014-01-31 22:18:59 +000055 self.addCleanup(self.client.delete_group, group['id'])
Zhi Kun Liue8136f02014-01-07 18:56:28 +080056 # add user into group
57 users = []
58 for i in range(3):
59 name = data_utils.rand_name('User')
David Kranzd8ccb792014-12-29 11:32:05 -050060 user = self.client.create_user(name)
Zhi Kun Liue8136f02014-01-07 18:56:28 +080061 users.append(user)
Matthew Treinishdb2c5972014-01-31 22:18:59 +000062 self.addCleanup(self.client.delete_user, user['id'])
63 self.client.add_group_user(group['id'], user['id'])
Zhi Kun Liue8136f02014-01-07 18:56:28 +080064
65 # list users in group
David Kranzd8ccb792014-12-29 11:32:05 -050066 group_users = self.client.list_group_users(group['id'])
wanglianmin29b0f4c2014-03-06 19:09:16 +080067 self.assertEqual(sorted(users), sorted(group_users))
Zhi Kun Liue8136f02014-01-07 18:56:28 +080068 # delete user in group
69 for user in users:
David Kranze9d2f422014-07-02 13:57:41 -040070 self.client.delete_group_user(group['id'],
71 user['id'])
David Kranzd8ccb792014-12-29 11:32:05 -050072 group_users = self.client.list_group_users(group['id'])
Zhi Kun Liue8136f02014-01-07 18:56:28 +080073 self.assertEqual(len(group_users), 0)
74
wanglianmin29b0f4c2014-03-06 19:09:16 +080075 @test.attr(type='smoke')
76 def test_list_user_groups(self):
77 # create a user
David Kranzd8ccb792014-12-29 11:32:05 -050078 user = self.client.create_user(
wanglianmin29b0f4c2014-03-06 19:09:16 +080079 data_utils.rand_name('User-'),
80 password=data_utils.rand_name('Pass-'))
81 self.addCleanup(self.client.delete_user, user['id'])
82 # create two groups, and add user into them
83 groups = []
84 for i in range(2):
85 name = data_utils.rand_name('Group-')
David Kranzd8ccb792014-12-29 11:32:05 -050086 group = self.client.create_group(name)
wanglianmin29b0f4c2014-03-06 19:09:16 +080087 groups.append(group)
88 self.addCleanup(self.client.delete_group, group['id'])
89 self.client.add_group_user(group['id'], user['id'])
90 # list groups which user belongs to
David Kranzd8ccb792014-12-29 11:32:05 -050091 user_groups = self.client.list_user_groups(user['id'])
wanglianmin29b0f4c2014-03-06 19:09:16 +080092 self.assertEqual(sorted(groups), sorted(user_groups))
93 self.assertEqual(2, len(user_groups))