
Do not reuse the environment domain, create a new one to be fully controlled by the test cases. Change-Id: Idb894da724e252b01405fc937c021fd8981ee090
107 lines
4.2 KiB
Python
107 lines
4.2 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import uuid
|
|
|
|
from keystoneauth1.exceptions import http
|
|
from keystoneclient.tests.functional import base
|
|
from keystoneclient.tests.functional.v3 import client_fixtures as fixtures
|
|
|
|
|
|
class DomainConfigsTestCase(base.V3ClientTestCase):
|
|
|
|
def setUp(self):
|
|
super(DomainConfigsTestCase, self).setUp()
|
|
self.test_domain = fixtures.Domain(self.client)
|
|
self.useFixture(self.test_domain)
|
|
|
|
def check_domain_config(self, config, config_ref):
|
|
for attr in config_ref:
|
|
self.assertEqual(
|
|
getattr(config, attr),
|
|
config_ref[attr],
|
|
'Expected different %s' % attr)
|
|
|
|
def _new_ref(self):
|
|
return {'identity': {'driver': uuid.uuid4().hex},
|
|
'ldap': {'url': uuid.uuid4().hex}}
|
|
|
|
def test_create_domain_config(self):
|
|
config_ref = self._new_ref()
|
|
config = self.client.domain_configs.create(
|
|
self.test_domain.id, config_ref)
|
|
self.addCleanup(
|
|
self.client.domain_configs.delete, self.test_domain.id)
|
|
self.check_domain_config(config, config_ref)
|
|
|
|
def test_create_invalid_domain_config(self):
|
|
invalid_groups_ref = {
|
|
uuid.uuid4().hex: {uuid.uuid4().hex: uuid.uuid4().hex},
|
|
uuid.uuid4().hex: {uuid.uuid4().hex: uuid.uuid4().hex}}
|
|
self.assertRaises(http.Forbidden,
|
|
self.client.domain_configs.create,
|
|
self.test_domain.id,
|
|
invalid_groups_ref)
|
|
|
|
invalid_options_ref = {
|
|
'identity': {uuid.uuid4().hex: uuid.uuid4().hex},
|
|
'ldap': {uuid.uuid4().hex: uuid.uuid4().hex}}
|
|
self.assertRaises(http.Forbidden,
|
|
self.client.domain_configs.create,
|
|
self.test_domain.id,
|
|
invalid_options_ref)
|
|
|
|
def test_get_domain_config(self):
|
|
config = fixtures.DomainConfig(self.client, self.test_domain.id)
|
|
self.useFixture(config)
|
|
|
|
config_ret = self.client.domain_configs.get(self.test_domain.id)
|
|
self.check_domain_config(config_ret, config.ref)
|
|
|
|
def test_update_domain_config(self):
|
|
config = fixtures.DomainConfig(self.client, self.test_domain.id)
|
|
self.useFixture(config)
|
|
|
|
update_config_ref = self._new_ref()
|
|
config_ret = self.client.domain_configs.update(
|
|
self.test_domain.id, update_config_ref)
|
|
self.check_domain_config(config_ret, update_config_ref)
|
|
|
|
def test_update_invalid_domain_config(self):
|
|
config = fixtures.DomainConfig(self.client, self.test_domain.id)
|
|
self.useFixture(config)
|
|
|
|
invalid_groups_ref = {
|
|
uuid.uuid4().hex: {uuid.uuid4().hex: uuid.uuid4().hex},
|
|
uuid.uuid4().hex: {uuid.uuid4().hex: uuid.uuid4().hex}}
|
|
self.assertRaises(http.Forbidden,
|
|
self.client.domain_configs.update,
|
|
self.test_domain.id,
|
|
invalid_groups_ref)
|
|
|
|
invalid_options_ref = {
|
|
'identity': {uuid.uuid4().hex: uuid.uuid4().hex},
|
|
'ldap': {uuid.uuid4().hex: uuid.uuid4().hex}}
|
|
self.assertRaises(http.Forbidden,
|
|
self.client.domain_configs.update,
|
|
self.test_domain.id,
|
|
invalid_options_ref)
|
|
|
|
def test_domain_config_delete(self):
|
|
config_ref = self._new_ref()
|
|
self.client.domain_configs.create(self.test_domain.id, config_ref)
|
|
|
|
self.client.domain_configs.delete(self.test_domain.id)
|
|
self.assertRaises(http.NotFound,
|
|
self.client.domain_configs.get,
|
|
self.project_domain_id)
|