summaryrefslogtreecommitdiff
path: root/keystone/tests/unit/identity/shadow_users/test_core.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/tests/unit/identity/shadow_users/test_core.py')
-rw-r--r--keystone/tests/unit/identity/shadow_users/test_core.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/keystone/tests/unit/identity/shadow_users/test_core.py b/keystone/tests/unit/identity/shadow_users/test_core.py
index ca037733d..dd6fdfb6f 100644
--- a/keystone/tests/unit/identity/shadow_users/test_core.py
+++ b/keystone/tests/unit/identity/shadow_users/test_core.py
@@ -12,6 +12,7 @@
import uuid
+from keystone.common import driver_hints
from keystone.common import provider_api
PROVIDERS = provider_api.ProviderAPIs
@@ -62,3 +63,33 @@ class ShadowUsersCoreTests(object):
# The shadowed users still share the same unique ID.
self.assertEqual(shadow_user1['id'], shadow_user2['id'])
+
+ def test_shadow_federated_user_not_creating_a_local_user(self):
+ PROVIDERS.identity_api.shadow_federated_user(
+ self.federated_user['idp_id'],
+ self.federated_user['protocol_id'],
+ self.federated_user['unique_id'],
+ self.federated_user['display_name'],
+ "some_id@mail.provider")
+
+ hints = driver_hints.Hints()
+ hints.add_filter('name', self.federated_user['display_name'])
+ users = PROVIDERS.identity_api.list_users(hints=hints)
+
+ self.assertEqual(1, len(users))
+
+ # Avoid caching
+ self.federated_user['display_name'] = uuid.uuid4().hex
+
+ PROVIDERS.identity_api.shadow_federated_user(
+ self.federated_user['idp_id'],
+ self.federated_user['protocol_id'],
+ self.federated_user['unique_id'],
+ self.federated_user['display_name'],
+ "some_id@mail.provider")
+
+ hints.add_filter('name', self.federated_user['display_name'])
+ users = PROVIDERS.identity_api.list_users(hints=hints)
+
+ # The number os users must remain 1
+ self.assertEqual(1, len(users))