blob: 0914674f446ed01a71a2a75e7f5637dc2077e3d7 [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
24 def _delete_domain(self, domain_id):
Chang Bo Guof099f802013-09-13 19:01:46 -070025 # It is necessary to disable the domain before deleting,
nayna-patel4df72dc2013-05-29 10:27:24 +000026 # or else it would result in unauthorized error
David Kranze9d2f422014-07-02 13:57:41 -040027 self.client.update_domain(domain_id, enabled=False)
28 self.client.delete_domain(domain_id)
nayna-patel4df72dc2013-05-29 10:27:24 +000029
Matthew Treinish5c660ab2014-05-18 21:14:36 -040030 @test.attr(type='smoke')
nayna-patel4df72dc2013-05-29 10:27:24 +000031 def test_list_domains(self):
Attila Fazekasf7f34f92013-08-01 17:01:44 +020032 # Test to list domains
nayna-patel4df72dc2013-05-29 10:27:24 +000033 domain_ids = list()
34 fetched_ids = list()
35 for _ in range(3):
David Kranzd8ccb792014-12-29 11:32:05 -050036 domain = self.client.create_domain(
Masayuki Igawa259c1132013-10-31 17:48:44 +090037 data_utils.rand_name('domain-'),
38 description=data_utils.rand_name('domain-desc-'))
Chang Bo Guof099f802013-09-13 19:01:46 -070039 # Delete the domain at the end of this method
nayna-patel4df72dc2013-05-29 10:27:24 +000040 self.addCleanup(self._delete_domain, domain['id'])
41 domain_ids.append(domain['id'])
42 # List and Verify Domains
David Kranzd8ccb792014-12-29 11:32:05 -050043 body = self.client.list_domains()
nayna-patel4df72dc2013-05-29 10:27:24 +000044 for d in body:
45 fetched_ids.append(d['id'])
46 missing_doms = [d for d in domain_ids if d not in fetched_ids]
47 self.assertEqual(0, len(missing_doms))
48
Matthew Treinish5c660ab2014-05-18 21:14:36 -040049 @test.attr(type='smoke')
nayna-patel049e1572013-06-19 09:22:35 +000050 def test_create_update_delete_domain(self):
Masayuki Igawa259c1132013-10-31 17:48:44 +090051 d_name = data_utils.rand_name('domain-')
52 d_desc = data_utils.rand_name('domain-desc-')
David Kranzd8ccb792014-12-29 11:32:05 -050053 domain = self.client.create_domain(
nayna-patel049e1572013-06-19 09:22:35 +000054 d_name, description=d_desc)
nayna-patel049e1572013-06-19 09:22:35 +000055 self.addCleanup(self._delete_domain, domain['id'])
56 self.assertIn('id', domain)
57 self.assertIn('description', domain)
58 self.assertIn('name', domain)
59 self.assertIn('enabled', domain)
60 self.assertIn('links', domain)
61 self.assertIsNotNone(domain['id'])
62 self.assertEqual(d_name, domain['name'])
63 self.assertEqual(d_desc, domain['description'])
Andrea Frittolic0978352015-02-06 15:57:40 +000064 self.assertEqual(True, domain['enabled'])
Masayuki Igawa259c1132013-10-31 17:48:44 +090065 new_desc = data_utils.rand_name('new-desc-')
66 new_name = data_utils.rand_name('new-name-')
nayna-patel049e1572013-06-19 09:22:35 +000067
David Kranzd8ccb792014-12-29 11:32:05 -050068 updated_domain = self.client.update_domain(
nayna-patel049e1572013-06-19 09:22:35 +000069 domain['id'], name=new_name, description=new_desc)
nayna-patel049e1572013-06-19 09:22:35 +000070 self.assertIn('id', updated_domain)
71 self.assertIn('description', updated_domain)
72 self.assertIn('name', updated_domain)
73 self.assertIn('enabled', updated_domain)
74 self.assertIn('links', updated_domain)
75 self.assertIsNotNone(updated_domain['id'])
76 self.assertEqual(new_name, updated_domain['name'])
77 self.assertEqual(new_desc, updated_domain['description'])
78 self.assertEqual('true', str(updated_domain['enabled']).lower())
79
David Kranzd8ccb792014-12-29 11:32:05 -050080 fetched_domain = self.client.get_domain(domain['id'])
nayna-patel049e1572013-06-19 09:22:35 +000081 self.assertEqual(new_name, fetched_domain['name'])
82 self.assertEqual(new_desc, fetched_domain['description'])
83 self.assertEqual('true', str(fetched_domain['enabled']).lower())