blob: 65c52300642b5093fbfa10134bf9833cbf35afe2 [file] [log] [blame]
harika-vakadi40e10112013-02-08 14:38:09 +05301# Copyright 2013 OpenStack Foundation
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
Masayuki Igawa259c1132013-10-31 17:48:44 +090017from tempest.common.utils import data_utils
Matthew Treinish5c660ab2014-05-18 21:14:36 -040018from tempest import test
harika-vakadi40e10112013-02-08 14:38:09 +053019
20
Matthew Treinishdb2c5972014-01-31 22:18:59 +000021class PoliciesTestJSON(base.BaseIdentityV3AdminTest):
harika-vakadi40e10112013-02-08 14:38:09 +053022 _interface = 'json'
23
24 def _delete_policy(self, policy_id):
David Kranz2aaf5312014-08-29 09:22:10 -040025 self.policy_client.delete_policy(policy_id)
harika-vakadi40e10112013-02-08 14:38:09 +053026
Matthew Treinish5c660ab2014-05-18 21:14:36 -040027 @test.attr(type='smoke')
harika-vakadi40e10112013-02-08 14:38:09 +053028 def test_list_policies(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020029 # Test to list policies
harika-vakadi40e10112013-02-08 14:38:09 +053030 policy_ids = list()
31 fetched_ids = list()
32 for _ in range(3):
Masayuki Igawa259c1132013-10-31 17:48:44 +090033 blob = data_utils.rand_name('BlobName-')
34 policy_type = data_utils.rand_name('PolicyType-')
harika-vakadi40e10112013-02-08 14:38:09 +053035 resp, policy = self.policy_client.create_policy(blob,
36 policy_type)
37 # Delete the Policy at the end of this method
38 self.addCleanup(self._delete_policy, policy['id'])
39 policy_ids.append(policy['id'])
40 # List and Verify Policies
David Kranz2aaf5312014-08-29 09:22:10 -040041 _, body = self.policy_client.list_policies()
harika-vakadi40e10112013-02-08 14:38:09 +053042 for p in body:
43 fetched_ids.append(p['id'])
44 missing_pols = [p for p in policy_ids if p not in fetched_ids]
45 self.assertEqual(0, len(missing_pols))
46
Matthew Treinish5c660ab2014-05-18 21:14:36 -040047 @test.attr(type='smoke')
harika-vakadi40e10112013-02-08 14:38:09 +053048 def test_create_update_delete_policy(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020049 # Test to update policy
Masayuki Igawa259c1132013-10-31 17:48:44 +090050 blob = data_utils.rand_name('BlobName-')
51 policy_type = data_utils.rand_name('PolicyType-')
David Kranz2aaf5312014-08-29 09:22:10 -040052 _, policy = self.policy_client.create_policy(blob, policy_type)
harika-vakadi40e10112013-02-08 14:38:09 +053053 self.addCleanup(self._delete_policy, policy['id'])
54 self.assertIn('id', policy)
55 self.assertIn('type', policy)
56 self.assertIn('blob', policy)
57 self.assertIsNotNone(policy['id'])
58 self.assertEqual(blob, policy['blob'])
59 self.assertEqual(policy_type, policy['type'])
Attila Fazekasf7f34f92013-08-01 17:01:44 +020060 # Update policy
Masayuki Igawa259c1132013-10-31 17:48:44 +090061 update_type = data_utils.rand_name('UpdatedPolicyType-')
David Kranz2aaf5312014-08-29 09:22:10 -040062 _, data = self.policy_client.update_policy(
harika-vakadi40e10112013-02-08 14:38:09 +053063 policy['id'], type=update_type)
Attila Fazekase191cb12013-07-29 06:41:52 +020064 self.assertIn('type', data)
Attila Fazekasf7f34f92013-08-01 17:01:44 +020065 # Assertion for updated value with fetched value
David Kranz2aaf5312014-08-29 09:22:10 -040066 _, fetched_policy = self.policy_client.get_policy(policy['id'])
harika-vakadi40e10112013-02-08 14:38:09 +053067 self.assertIn('id', fetched_policy)
68 self.assertIn('blob', fetched_policy)
69 self.assertIn('type', fetched_policy)
70 self.assertEqual(fetched_policy['id'], policy['id'])
71 self.assertEqual(fetched_policy['blob'], policy['blob'])
72 self.assertEqual(update_type, fetched_policy['type'])
73
74
75class PoliciesTestXML(PoliciesTestJSON):
76 _interface = 'xml'