diff options
| -rw-r--r-- | keystone/identity/backends/sql.py | 6 | ||||
| -rw-r--r-- | tests/test_backend_sql.py | 46 |
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): |
