blob: 086d235372f956929decdf4c3a3f4a63128bc2a9 [file] [log] [blame]
nayna-patel4df72dc2013-05-29 10:27:24 +00001# 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
nayna-patel049e1572013-06-19 09:22:35 +000016
nayna-patel4df72dc2013-05-29 10:27:24 +000017from tempest.api.identity import base
Masayuki Igawa259c1132013-10-31 17:48:44 +090018from tempest.common.utils import data_utils
nayna-patel4df72dc2013-05-29 10:27:24 +000019from tempest.test import attr
20
21
Matthew Treinishdb2c5972014-01-31 22:18:59 +000022class DomainsTestJSON(base.BaseIdentityV3AdminTest):
nayna-patel4df72dc2013-05-29 10:27:24 +000023 _interface = 'json'
24
25 def _delete_domain(self, domain_id):
Chang Bo Guof099f802013-09-13 19:01:46 -070026 # It is necessary to disable the domain before deleting,
nayna-patel4df72dc2013-05-29 10:27:24 +000027 # or else it would result in unauthorized error
Matthew Treinishdb2c5972014-01-31 22:18:59 +000028 _, body = self.client.update_domain(domain_id, enabled=False)
29 resp, _ = self.client.delete_domain(domain_id)
nayna-patel4df72dc2013-05-29 10:27:24 +000030 self.assertEqual(204, resp.status)
31
32 @attr(type='smoke')
33 def test_list_domains(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020034 # Test to list domains
nayna-patel4df72dc2013-05-29 10:27:24 +000035 domain_ids = list()
36 fetched_ids = list()
37 for _ in range(3):
Matthew Treinishdb2c5972014-01-31 22:18:59 +000038 _, domain = self.client.create_domain(
Masayuki Igawa259c1132013-10-31 17:48:44 +090039 data_utils.rand_name('domain-'),
40 description=data_utils.rand_name('domain-desc-'))
Chang Bo Guof099f802013-09-13 19:01:46 -070041 # Delete the domain at the end of this method
nayna-patel4df72dc2013-05-29 10:27:24 +000042 self.addCleanup(self._delete_domain, domain['id'])
43 domain_ids.append(domain['id'])
44 # List and Verify Domains
Matthew Treinishdb2c5972014-01-31 22:18:59 +000045 resp, body = self.client.list_domains()
nayna-patel4df72dc2013-05-29 10:27:24 +000046 self.assertEqual(resp['status'], '200')
47 for d in body:
48 fetched_ids.append(d['id'])
49 missing_doms = [d for d in domain_ids if d not in fetched_ids]
50 self.assertEqual(0, len(missing_doms))
51
nayna-patel049e1572013-06-19 09:22:35 +000052 @attr(type='smoke')
53 def test_create_update_delete_domain(self):
Masayuki Igawa259c1132013-10-31 17:48:44 +090054 d_name = data_utils.rand_name('domain-')
55 d_desc = data_utils.rand_name('domain-desc-')
Matthew Treinishdb2c5972014-01-31 22:18:59 +000056 resp_1, domain = self.client.create_domain(
nayna-patel049e1572013-06-19 09:22:35 +000057 d_name, description=d_desc)
58 self.assertEqual(resp_1['status'], '201')
59 self.addCleanup(self._delete_domain, domain['id'])
60 self.assertIn('id', domain)
61 self.assertIn('description', domain)
62 self.assertIn('name', domain)
63 self.assertIn('enabled', domain)
64 self.assertIn('links', domain)
65 self.assertIsNotNone(domain['id'])
66 self.assertEqual(d_name, domain['name'])
67 self.assertEqual(d_desc, domain['description'])
68 if self._interface == "json":
69 self.assertEqual(True, domain['enabled'])
70 else:
71 self.assertEqual('true', str(domain['enabled']).lower())
Masayuki Igawa259c1132013-10-31 17:48:44 +090072 new_desc = data_utils.rand_name('new-desc-')
73 new_name = data_utils.rand_name('new-name-')
nayna-patel049e1572013-06-19 09:22:35 +000074
Matthew Treinishdb2c5972014-01-31 22:18:59 +000075 resp_2, updated_domain = self.client.update_domain(
nayna-patel049e1572013-06-19 09:22:35 +000076 domain['id'], name=new_name, description=new_desc)
77 self.assertEqual(resp_2['status'], '200')
78 self.assertIn('id', updated_domain)
79 self.assertIn('description', updated_domain)
80 self.assertIn('name', updated_domain)
81 self.assertIn('enabled', updated_domain)
82 self.assertIn('links', updated_domain)
83 self.assertIsNotNone(updated_domain['id'])
84 self.assertEqual(new_name, updated_domain['name'])
85 self.assertEqual(new_desc, updated_domain['description'])
86 self.assertEqual('true', str(updated_domain['enabled']).lower())
87
Matthew Treinishdb2c5972014-01-31 22:18:59 +000088 resp_3, fetched_domain = self.client.get_domain(domain['id'])
nayna-patel049e1572013-06-19 09:22:35 +000089 self.assertEqual(resp_3['status'], '200')
90 self.assertEqual(new_name, fetched_domain['name'])
91 self.assertEqual(new_desc, fetched_domain['description'])
92 self.assertEqual('true', str(fetched_domain['enabled']).lower())
93
nayna-patel4df72dc2013-05-29 10:27:24 +000094
95class DomainsTestXML(DomainsTestJSON):
96 _interface = 'xml'