diff --git a/keystoneclient/tests/v2_0/test_users.py b/keystoneclient/tests/v2_0/test_users.py index 1c9395c13..d11e0381e 100644 --- a/keystoneclient/tests/v2_0/test_users.py +++ b/keystoneclient/tests/v2_0/test_users.py @@ -76,6 +76,40 @@ class UserTests(utils.TestCase): self.assertEqual(user.email, "test@example.com") 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 def test_delete(self): self.stub_url(httpretty.DELETE, ['users', '1'], status=204) diff --git a/keystoneclient/v2_0/users.py b/keystoneclient/v2_0/users.py index 4e2f03df9..d42cf6082 100644 --- a/keystoneclient/v2_0/users.py +++ b/keystoneclient/v2_0/users.py @@ -86,9 +86,8 @@ class UserManager(base.ManagerWithFind): return self._update("/users/%s/OS-KSADM/tenant" % base.getid(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.""" - # FIXME(ja): email should be optional, keystone currently requires it params = {"user": {"name": name, "password": password, "tenantId": tenant_id,