blob: c1bc705c74698eceb0c360e2f3b34a805f72d2e5 [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
Matthew Treinish5c660ab2014-05-18 21:14:36 -040019from tempest import test
nayna-patel4df72dc2013-05-29 10:27:24 +000020
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
David Kranze9d2f422014-07-02 13:57:41 -040028 self.client.update_domain(domain_id, enabled=False)
29 self.client.delete_domain(domain_id)
nayna-patel4df72dc2013-05-29 10:27:24 +000030
Matthew Treinish5c660ab2014-05-18 21:14:36 -040031 @test.attr(type='smoke')
nayna-patel4df72dc2013-05-29 10:27:24 +000032 def test_list_domains(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020033 # Test to list domains
nayna-patel4df72dc2013-05-29 10:27:24 +000034 domain_ids = list()
35 fetched_ids = list()
36 for _ in range(3):
David Kranzd8ccb792014-12-29 11:32:05 -050037 domain = self.client.create_domain(
Masayuki Igawa259c1132013-10-31 17:48:44 +090038 data_utils.rand_name('domain-'),
39 description=data_utils.rand_name('domain-desc-'))
Chang Bo Guof099f802013-09-13 19:01:46 -070040 # Delete the domain at the end of this method
nayna-patel4df72dc2013-05-29 10:27:24 +000041 self.addCleanup(self._delete_domain, domain['id'])
42 domain_ids.append(domain['id'])
43 # List and Verify Domains
David Kranzd8ccb792014-12-29 11:32:05 -050044 body = self.client.list_domains()
nayna-patel4df72dc2013-05-29 10:27:24 +000045 for d in body:
46 fetched_ids.append(d['id'])
47 missing_doms = [d for d in domain_ids if d not in fetched_ids]
48 self.assertEqual(0, len(missing_doms))
49
Matthew Treinish5c660ab2014-05-18 21:14:36 -040050 @test.attr(type='smoke')
nayna-patel049e1572013-06-19 09:22:35 +000051 def test_create_update_delete_domain(self):
Masayuki Igawa259c1132013-10-31 17:48:44 +090052 d_name = data_utils.rand_name('domain-')
53 d_desc = data_utils.rand_name('domain-desc-')
David Kranzd8ccb792014-12-29 11:32:05 -050054 domain = self.client.create_domain(
nayna-patel049e1572013-06-19 09:22:35 +000055 d_name, description=d_desc)
nayna-patel049e1572013-06-19 09:22:35 +000056 self.addCleanup(self._delete_domain, domain['id'])
57 self.assertIn('id', domain)
58 self.assertIn('description', domain)
59 self.assertIn('name', domain)
60 self.assertIn('enabled', domain)
61 self.assertIn('links', domain)
62 self.assertIsNotNone(domain['id'])
63 self.assertEqual(d_name, domain['name'])
64 self.assertEqual(d_desc, domain['description'])
65 if self._interface == "json":
66 self.assertEqual(True, domain['enabled'])
67 else:
68 self.assertEqual('true', str(domain['enabled']).lower())
Masayuki Igawa259c1132013-10-31 17:48:44 +090069 new_desc = data_utils.rand_name('new-desc-')
70 new_name = data_utils.rand_name('new-name-')
nayna-patel049e1572013-06-19 09:22:35 +000071
David Kranzd8ccb792014-12-29 11:32:05 -050072 updated_domain = self.client.update_domain(
nayna-patel049e1572013-06-19 09:22:35 +000073 domain['id'], name=new_name, description=new_desc)
nayna-patel049e1572013-06-19 09:22:35 +000074 self.assertIn('id', updated_domain)
75 self.assertIn('description', updated_domain)
76 self.assertIn('name', updated_domain)
77 self.assertIn('enabled', updated_domain)
78 self.assertIn('links', updated_domain)
79 self.assertIsNotNone(updated_domain['id'])
80 self.assertEqual(new_name, updated_domain['name'])
81 self.assertEqual(new_desc, updated_domain['description'])
82 self.assertEqual('true', str(updated_domain['enabled']).lower())
83
David Kranzd8ccb792014-12-29 11:32:05 -050084 fetched_domain = self.client.get_domain(domain['id'])
nayna-patel049e1572013-06-19 09:22:35 +000085 self.assertEqual(new_name, fetched_domain['name'])
86 self.assertEqual(new_desc, fetched_domain['description'])
87 self.assertEqual('true', str(fetched_domain['enabled']).lower())