keystoneclient requires an email address when creating a user

python-keystoneclient v2.0 currently requires an email address,
but Keystone doesn't require an email address any longer.

Closes-Bug: #1252621
Change-Id: I4fe54aca9efcb0e5ab6ad901ee94796a04035224
This commit is contained in:
Christian Schwede
2013-11-19 08:29:30 +01:00
parent 8a0732e262
commit 5ff1c16128
2 changed files with 35 additions and 2 deletions

View File

@@ -76,6 +76,40 @@ class UserTests(utils.TestCase):
self.assertEqual(user.email, "test@example.com") self.assertEqual(user.email, "test@example.com")
self.assertRequestBodyIs(json=req_body) self.assertRequestBodyIs(json=req_body)
@httpretty.activate
def test_create_user_without_email(self):
req_body = {
"user": {
"name": "gabriel",
"password": "test",
"tenantId": 2,
"enabled": True,
"email": None,
}
}
resp_body = {
"user": {
"name": "gabriel",
"enabled": True,
"tenantId": 2,
"id": 3,
"password": "test",
}
}
self.stub_url(httpretty.POST, ['users'], json=resp_body)
user = self.client.users.create(
req_body['user']['name'],
req_body['user']['password'],
tenant_id=req_body['user']['tenantId'],
enabled=req_body['user']['enabled'])
self.assertTrue(isinstance(user, users.User))
self.assertEqual(user.id, 3)
self.assertEqual(user.name, "gabriel")
self.assertRequestBodyIs(json=req_body)
@httpretty.activate @httpretty.activate
def test_delete(self): def test_delete(self):
self.stub_url(httpretty.DELETE, ['users', '1'], status=204) self.stub_url(httpretty.DELETE, ['users', '1'], status=204)

View File

@@ -86,9 +86,8 @@ class UserManager(base.ManagerWithFind):
return self._update("/users/%s/OS-KSADM/tenant" % base.getid(user), return self._update("/users/%s/OS-KSADM/tenant" % base.getid(user),
params, "user") params, "user")
def create(self, name, password, email, tenant_id=None, enabled=True): def create(self, name, password, email=None, tenant_id=None, enabled=True):
"""Create a user.""" """Create a user."""
# FIXME(ja): email should be optional, keystone currently requires it
params = {"user": {"name": name, params = {"user": {"name": name,
"password": password, "password": password,
"tenantId": tenant_id, "tenantId": tenant_id,