summaryrefslogtreecommitdiffstats
path: root/tests/test_backend_ldap.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-21 02:41:33 +0000
committerGerrit Code Review <review@openstack.org>2013-02-21 02:41:33 +0000
commitc6b978cbb80adbe33f70fa021d60a73802601f20 (patch)
tree188e10406cb10f7f550ceac4ab36b4b3d57f2f42 /tests/test_backend_ldap.py
parentd036db145d51f8b134ffa36165065a8986e4f8a1 (diff)
parent408a1d57d729461056507283c58d6c48403554b8 (diff)
downloadkeystone-c6b978cbb80adbe33f70fa021d60a73802601f20.tar.gz
keystone-c6b978cbb80adbe33f70fa021d60a73802601f20.tar.xz
keystone-c6b978cbb80adbe33f70fa021d60a73802601f20.zip
Merge "enabled attribute emulation support"
Diffstat (limited to 'tests/test_backend_ldap.py')
-rw-r--r--tests/test_backend_ldap.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/test_backend_ldap.py b/tests/test_backend_ldap.py
index 63499bd1..d4e96884 100644
--- a/tests/test_backend_ldap.py
+++ b/tests/test_backend_ldap.py
@@ -480,3 +480,69 @@ class LDAPIdentity(test.TestCase, test_backend.IdentityTests):
def test_move_project_between_domains_with_clashing_names_fails(self):
raise nose.exc.SkipTest('Blocked by bug 1101276')
+
+
+class LDAPIdentityEnabledEmulation(LDAPIdentity):
+ def setUp(self):
+ super(LDAPIdentityEnabledEmulation, self).setUp()
+ self.config([test.etcdir('keystone.conf.sample'),
+ test.testsdir('test_overrides.conf'),
+ test.testsdir('backend_ldap.conf')])
+ CONF.ldap.user_enabled_emulation = True
+ CONF.ldap.tenant_enabled_emulation = True
+ clear_database()
+ self.identity_api = identity_ldap.Identity()
+ self.load_fixtures(default_fixtures)
+ for obj in [self.tenant_bar, self.tenant_baz, self.user_foo,
+ self.user_two, self.user_badguy]:
+ obj.setdefault('enabled', True)
+
+ def test_authenticate_no_metadata(self):
+ user = {
+ 'id': 'no_meta',
+ 'name': 'NO_META',
+ 'domain_id': test_backend.DEFAULT_DOMAIN_ID,
+ 'password': 'no_meta2',
+ 'enabled': True,
+ }
+ self.identity_api.create_user(user['id'], user)
+ self.identity_api.add_user_to_project(self.tenant_baz['id'],
+ user['id'])
+ user_ref, tenant_ref, metadata_ref = self.identity_api.authenticate(
+ user_id=user['id'],
+ tenant_id=self.tenant_baz['id'],
+ password=user['password'])
+ # NOTE(termie): the password field is left in user_foo to make
+ # it easier to authenticate in tests, but should
+ # not be returned by the api
+ user.pop('password')
+ self.assertEquals(metadata_ref, {"roles":
+ [CONF.member_role_id]})
+ self.assertDictEqual(user_ref, user)
+ self.assertDictEqual(tenant_ref, self.tenant_baz)
+
+ def test_user_crud(self):
+ user = {'domain_id': uuid.uuid4().hex, 'id': uuid.uuid4().hex,
+ 'name': uuid.uuid4().hex, 'password': 'passw0rd'}
+ self.identity_api.create_user(user['id'], user)
+ user['enabled'] = True
+ user_ref = self.identity_api.get_user(user['id'])
+ del user['password']
+ user_ref_dict = dict((x, user_ref[x]) for x in user_ref)
+ self.assertDictEqual(user_ref_dict, user)
+
+ user['password'] = uuid.uuid4().hex
+ self.identity_api.update_user(user['id'], user)
+ user_ref = self.identity_api.get_user(user['id'])
+ del user['password']
+ user_ref_dict = dict((x, user_ref[x]) for x in user_ref)
+ self.assertDictEqual(user_ref_dict, user)
+
+ self.identity_api.delete_user(user['id'])
+ self.assertRaises(exception.UserNotFound,
+ self.identity_api.get_user,
+ user['id'])
+
+ def test_user_enable_attribute_mask(self):
+ raise nose.exc.SkipTest(
+ "Enabled emulation conflicts with enabled mask")