summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystone/identity/backends/sql.py6
-rw-r--r--tests/test_backend_sql.py46
2 files changed, 49 insertions, 3 deletions
diff --git a/keystone/identity/backends/sql.py b/keystone/identity/backends/sql.py
index e4281a8d..dd35d70b 100644
--- a/keystone/identity/backends/sql.py
+++ b/keystone/identity/backends/sql.py
@@ -53,7 +53,7 @@ def handle_conflicts(type='object'):
class User(sql.ModelBase, sql.DictBase):
__tablename__ = 'user'
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True)
+ name = sql.Column(sql.String(64), unique=True, nullable=False)
#password = sql.Column(sql.String(64))
extra = sql.Column(sql.JsonBlob())
@@ -79,7 +79,7 @@ class User(sql.ModelBase, sql.DictBase):
class Tenant(sql.ModelBase, sql.DictBase):
__tablename__ = 'tenant'
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True)
+ name = sql.Column(sql.String(64), unique=True, nullable=False)
extra = sql.Column(sql.JsonBlob())
@classmethod
@@ -104,7 +104,7 @@ class Tenant(sql.ModelBase, sql.DictBase):
class Role(sql.ModelBase, sql.DictBase):
__tablename__ = 'role'
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True)
+ name = sql.Column(sql.String(64), unique=True, nullable=False)
class Metadata(sql.ModelBase, sql.DictBase):
diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py
index 506113d7..9ccc7826 100644
--- a/tests/test_backend_sql.py
+++ b/tests/test_backend_sql.py
@@ -14,7 +14,10 @@
# License for the specific language governing permissions and limitations
# under the License.
+import uuid
+
from keystone import config
+from keystone import exception
from keystone import test
from keystone.common.sql import util as sql_util
from keystone.identity.backends import sql as identity_sql
@@ -48,6 +51,49 @@ class SqlIdentity(test.TestCase, test_backend.IdentityTests):
tenants = self.identity_api.get_tenants_for_user(user['id'])
self.assertEquals(tenants, [])
+ def test_create_null_user_name(self):
+ user = {'id': uuid.uuid4().hex,
+ 'name': None,
+ 'password': uuid.uuid4().hex}
+ self.assertRaises(exception.Conflict,
+ self.identity_api.create_user,
+ user['id'],
+ user)
+ # TODO(dolph): can be uncommented pending bug 968519
+ #self.assertRaises(exception.UserNotFound,
+ # self.identity_api.get_user,
+ # user['id'])
+ #self.assertRaises(exception.UserNotFound,
+ # self.identity_api.get_user_by_name,
+ # user['name'])
+
+ def test_create_null_tenant_name(self):
+ tenant = {'id': uuid.uuid4().hex,
+ 'name': None}
+ self.assertRaises(exception.Conflict,
+ self.identity_api.create_tenant,
+ tenant['id'],
+ tenant)
+ # TODO(dolph): can be uncommented pending bug 968519
+ #self.assertRaises(exception.TenantNotFound,
+ # self.identity_api.get_tenant,
+ # tenant['id'])
+ #self.assertRaises(exception.TenantNotFound,
+ # self.identity_api.get_tenant_by_name,
+ # tenant['name'])
+
+ def test_create_null_role_name(self):
+ role = {'id': uuid.uuid4().hex,
+ 'name': None}
+ self.assertRaises(exception.Conflict,
+ self.identity_api.create_role,
+ role['id'],
+ role)
+ # TODO(dolph): can be uncommented pending bug 968519
+ #self.assertRaises(exception.RoleNotFound,
+ # self.identity_api.get_role,
+ # role['id'])
+
class SqlToken(test.TestCase, test_backend.TokenTests):
def setUp(self):