blob: eb1c69eaecf428dbf945ee3ad2f16f0065e1a236 [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
Fei Long Wangd39431f2015-05-14 11:30:48 +120017from tempest.common.utils import data_utils
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080018from tempest.lib import decorators
Matthew Treinish5c660ab2014-05-18 21:14:36 -040019from tempest import test
harika-vakadi40e10112013-02-08 14:38:09 +053020
21
Matthew Treinishdb2c5972014-01-31 22:18:59 +000022class PoliciesTestJSON(base.BaseIdentityV3AdminTest):
harika-vakadi40e10112013-02-08 14:38:09 +053023
24 def _delete_policy(self, policy_id):
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030025 self.policies_client.delete_policy(policy_id)
harika-vakadi40e10112013-02-08 14:38:09 +053026
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080027 @decorators.idempotent_id('1a0ad286-2d06-4123-ab0d-728893a76201')
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):
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000033 blob = data_utils.rand_name('BlobName')
34 policy_type = data_utils.rand_name('PolicyType')
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030035 policy = self.policies_client.create_policy(
Yaroslav Lobankov5918c452015-11-11 16:03:12 +030036 blob=blob, type=policy_type)['policy']
harika-vakadi40e10112013-02-08 14:38:09 +053037 # 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
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030041 body = self.policies_client.list_policies()['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')
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080048 @decorators.idempotent_id('e544703a-2f03-4cf2-9b0f-350782fdb0d3')
harika-vakadi40e10112013-02-08 14:38:09 +053049 def test_create_update_delete_policy(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020050 # Test to update policy
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000051 blob = data_utils.rand_name('BlobName')
52 policy_type = data_utils.rand_name('PolicyType')
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030053 policy = self.policies_client.create_policy(blob=blob,
54 type=policy_type)['policy']
harika-vakadi40e10112013-02-08 14:38:09 +053055 self.addCleanup(self._delete_policy, policy['id'])
56 self.assertIn('id', policy)
57 self.assertIn('type', policy)
58 self.assertIn('blob', policy)
59 self.assertIsNotNone(policy['id'])
60 self.assertEqual(blob, policy['blob'])
61 self.assertEqual(policy_type, policy['type'])
Attila Fazekasf7f34f92013-08-01 17:01:44 +020062 # Update policy
Ken'ichi Ohmichi96508472015-03-23 01:43:42 +000063 update_type = data_utils.rand_name('UpdatedPolicyType')
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030064 data = self.policies_client.update_policy(
John Warren7d314722015-08-13 13:15:11 +000065 policy['id'], type=update_type)['policy']
Attila Fazekase191cb12013-07-29 06:41:52 +020066 self.assertIn('type', data)
Attila Fazekasf7f34f92013-08-01 17:01:44 +020067 # Assertion for updated value with fetched value
Yaroslav Lobankoved4d15c2015-12-18 11:30:10 +030068 fetched_policy = self.policies_client.show_policy(
69 policy['id'])['policy']
harika-vakadi40e10112013-02-08 14:38:09 +053070 self.assertIn('id', fetched_policy)
71 self.assertIn('blob', fetched_policy)
72 self.assertIn('type', fetched_policy)
73 self.assertEqual(fetched_policy['id'], policy['id'])
74 self.assertEqual(fetched_policy['blob'], policy['blob'])
75 self.assertEqual(update_type, fetched_policy['type'])