Add federation related tests
This patch adds the test_federation file with some tests for Identity Providers, the tests are not supposed to be exhaustive, they are rather simple and intend to cover the basic actions in the Identity Provider handling. More complete tests should be added later. Change-Id: Ibe618dcd646912060b1785d8d72fd526dd4a083b
This commit is contained in:
106
keystoneclient/tests/functional/v3/test_federation.py
Normal file
106
keystoneclient/tests/functional/v3/test_federation.py
Normal file
@@ -0,0 +1,106 @@
|
||||
# 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
|
||||
|
||||
|
||||
class TestIdentityProviders(base.V3ClientTestCase):
|
||||
|
||||
def test_idp_create(self):
|
||||
idp_id = uuid.uuid4().hex
|
||||
# Create an identity provider just passing an ID
|
||||
idp = self.client.federation.identity_providers.create(id=idp_id)
|
||||
self.addCleanup(
|
||||
self.client.federation.identity_providers.delete, idp_id)
|
||||
|
||||
self.assertEqual(idp_id, idp.id)
|
||||
self.assertEqual([], idp.remote_ids)
|
||||
self.assertFalse(idp.enabled)
|
||||
|
||||
def test_idp_create_enabled_true(self):
|
||||
# Create an enabled identity provider
|
||||
idp_id = uuid.uuid4().hex
|
||||
idp = self.client.federation.identity_providers.create(
|
||||
id=idp_id, enabled=True)
|
||||
self.addCleanup(
|
||||
self.client.federation.identity_providers.delete, idp_id)
|
||||
|
||||
self.assertEqual(idp_id, idp.id)
|
||||
self.assertEqual([], idp.remote_ids)
|
||||
self.assertTrue(idp.enabled)
|
||||
|
||||
def test_idp_create_with_remote_ids(self):
|
||||
# Create an enabled identity provider with remote IDs
|
||||
idp_id = uuid.uuid4().hex
|
||||
remote_ids = [uuid.uuid4().hex, uuid.uuid4().hex]
|
||||
idp = self.client.federation.identity_providers.create(
|
||||
id=idp_id, enabled=True, remote_ids=remote_ids)
|
||||
self.addCleanup(
|
||||
self.client.federation.identity_providers.delete, idp_id)
|
||||
|
||||
self.assertEqual(idp_id, idp.id)
|
||||
self.assertIn(remote_ids[0], idp.remote_ids)
|
||||
self.assertIn(remote_ids[1], idp.remote_ids)
|
||||
self.assertTrue(idp.enabled)
|
||||
|
||||
def test_idp_list(self):
|
||||
idp_ids = []
|
||||
for _ in range(3):
|
||||
idp_id = uuid.uuid4().hex
|
||||
self.client.federation.identity_providers.create(id=idp_id)
|
||||
self.addCleanup(
|
||||
self.client.federation.identity_providers.delete, idp_id)
|
||||
idp_ids.append(idp_id)
|
||||
|
||||
idp_list = self.client.federation.identity_providers.list()
|
||||
fetched_ids = [fetched_idp.id for fetched_idp in idp_list]
|
||||
for idp_id in idp_ids:
|
||||
self.assertIn(idp_id, fetched_ids)
|
||||
|
||||
def test_idp_get(self):
|
||||
idp_id = uuid.uuid4().hex
|
||||
remote_ids = [uuid.uuid4().hex, uuid.uuid4().hex]
|
||||
idp_create = self.client.federation.identity_providers.create(
|
||||
id=idp_id, enabled=True, remote_ids=remote_ids)
|
||||
self.addCleanup(
|
||||
self.client.federation.identity_providers.delete, idp_id)
|
||||
|
||||
idp_get = self.client.federation.identity_providers.get(idp_id)
|
||||
self.assertEqual(idp_create.id, idp_get.id)
|
||||
self.assertEqual(idp_create.enabled, idp_get.enabled)
|
||||
self.assertIn(idp_create.remote_ids[0], idp_get.remote_ids)
|
||||
self.assertIn(idp_create.remote_ids[1], idp_get.remote_ids)
|
||||
|
||||
def test_idp_delete(self):
|
||||
idp_id = uuid.uuid4().hex
|
||||
self.client.federation.identity_providers.create(id=idp_id)
|
||||
|
||||
# Get should not raise an error
|
||||
self.client.federation.identity_providers.get(idp_id)
|
||||
|
||||
# Delete it
|
||||
self.client.federation.identity_providers.delete(idp_id)
|
||||
|
||||
# Now get should raise an error
|
||||
self.assertRaises(
|
||||
http.NotFound,
|
||||
self.client.federation.identity_providers.get,
|
||||
idp_id)
|
||||
|
||||
# Should not be present in the identity provider list
|
||||
idp_list = self.client.federation.identity_providers.list()
|
||||
fetched_ids = [fetched_idp.id for fetched_idp in idp_list]
|
||||
self.assertNotIn(idp_id, fetched_ids)
|
Reference in New Issue
Block a user