blob: 3e04b5f7e4c916d274d84a6452b21264577b1a39 [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
harika-vakadi40e10112013-02-08 14:38:09 +053018from tempest.test import attr
19
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):
25 resp, _ = self.policy_client.delete_policy(policy_id)
26 self.assertEqual(204, resp.status)
27
28 @attr(type='smoke')
29 def test_list_policies(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020030 # Test to list policies
harika-vakadi40e10112013-02-08 14:38:09 +053031 policy_ids = list()
32 fetched_ids = list()
33 for _ in range(3):
Masayuki Igawa259c1132013-10-31 17:48:44 +090034 blob = data_utils.rand_name('BlobName-')
35 policy_type = data_utils.rand_name('PolicyType-')
harika-vakadi40e10112013-02-08 14:38:09 +053036 resp, policy = self.policy_client.create_policy(blob,
37 policy_type)
38 # Delete the Policy at the end of this method
39 self.addCleanup(self._delete_policy, policy['id'])
40 policy_ids.append(policy['id'])
41 # List and Verify Policies
42 resp, body = self.policy_client.list_policies()
43 self.assertEqual(resp['status'], '200')
44 for p in body:
45 fetched_ids.append(p['id'])
46 missing_pols = [p for p in policy_ids if p not in fetched_ids]
47 self.assertEqual(0, len(missing_pols))
48
49 @attr(type='smoke')
50 def test_create_update_delete_policy(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020051 # Test to update policy
Masayuki Igawa259c1132013-10-31 17:48:44 +090052 blob = data_utils.rand_name('BlobName-')
53 policy_type = data_utils.rand_name('PolicyType-')
harika-vakadi40e10112013-02-08 14:38:09 +053054 resp, policy = self.policy_client.create_policy(blob, policy_type)
55 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'])
62 resp, fetched_policy = self.policy_client.get_policy(policy['id'])
63 self.assertEqual(resp['status'], '200')
Attila Fazekasf7f34f92013-08-01 17:01:44 +020064 # Update policy
Masayuki Igawa259c1132013-10-31 17:48:44 +090065 update_type = data_utils.rand_name('UpdatedPolicyType-')
harika-vakadi40e10112013-02-08 14:38:09 +053066 resp, data = self.policy_client.update_policy(
67 policy['id'], type=update_type)
Attila Fazekase191cb12013-07-29 06:41:52 +020068 self.assertIn('type', data)
Attila Fazekasf7f34f92013-08-01 17:01:44 +020069 # Assertion for updated value with fetched value
harika-vakadi40e10112013-02-08 14:38:09 +053070 resp, fetched_policy = self.policy_client.get_policy(policy['id'])
71 self.assertIn('id', fetched_policy)
72 self.assertIn('blob', fetched_policy)
73 self.assertIn('type', fetched_policy)
74 self.assertEqual(fetched_policy['id'], policy['id'])
75 self.assertEqual(fetched_policy['blob'], policy['blob'])
76 self.assertEqual(update_type, fetched_policy['type'])
77
78
79class PoliciesTestXML(PoliciesTestJSON):
80 _interface = 'xml'