summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-16 02:20:49 +0000
committerGerrit Code Review <review@openstack.org>2013-07-16 02:20:49 +0000
commitfa47bc9602b2180b1954cd2afa98606bd9dcfb43 (patch)
tree5b158a5fa0083b4e93eb5e6f02b12bc2ed7b5c34
parente043094f243ed8932aa51aeb96505e7b8298c92e (diff)
parent0dc17d94708b3a6365689464e3a7698de6f8fd86 (diff)
downloadkeystone-fa47bc9602b2180b1954cd2afa98606bd9dcfb43.tar.gz
keystone-fa47bc9602b2180b1954cd2afa98606bd9dcfb43.tar.xz
keystone-fa47bc9602b2180b1954cd2afa98606bd9dcfb43.zip
Merge "Add unittest for keystone.identity.backends.sql Models"
-rw-r--r--tests/test_backend_sql.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py
index 646707c5..2f1f5e3e 100644
--- a/tests/test_backend_sql.py
+++ b/tests/test_backend_sql.py
@@ -16,6 +16,8 @@
import uuid
+import sqlalchemy
+
from keystone import test
from keystone.common import sql
@@ -57,6 +59,94 @@ class SqlTests(test.TestCase, sql.Base):
super(SqlTests, self).tearDown()
+class SqlModels(SqlTests):
+ def setUp(self):
+ super(SqlModels, self).setUp()
+
+ self.metadata = sql.ModelBase.metadata
+ self.metadata.bind = self.engine
+
+ def select_table(self, name):
+ table = sqlalchemy.Table(name,
+ self.metadata,
+ autoload=True)
+ s = sqlalchemy.select([table])
+ return s
+
+ def assertExpectedSchema(self, table, cols):
+ table = self.select_table(table)
+ for col, type_, length in cols:
+ self.assertIsInstance(table.c[col].type, type_)
+ if length:
+ self.assertEquals(table.c[col].type.length, length)
+
+ def test_user_model(self):
+ cols = (('id', sql.String, 64),
+ ('name', sql.String, 64),
+ ('password', sql.String, 128),
+ ('domain_id', sql.String, 64),
+ ('enabled', sql.Boolean, None),
+ ('extra', sql.JsonBlob, None))
+ self.assertExpectedSchema('user', cols)
+
+ def test_group_model(self):
+ cols = (('id', sql.String, 64),
+ ('name', sql.String, 64),
+ ('description', sql.Text, None),
+ ('domain_id', sql.String, 64),
+ ('extra', sql.JsonBlob, None))
+ self.assertExpectedSchema('group', cols)
+
+ def test_domain_model(self):
+ cols = (('id', sql.String, 64),
+ ('name', sql.String, 64),
+ ('enabled', sql.Boolean, None))
+ self.assertExpectedSchema('domain', cols)
+
+ def test_project_model(self):
+ cols = (('id', sql.String, 64),
+ ('name', sql.String, 64),
+ ('description', sql.Text, None),
+ ('domain_id', sql.String, 64),
+ ('enabled', sql.Boolean, None),
+ ('extra', sql.JsonBlob, None))
+ self.assertExpectedSchema('project', cols)
+
+ def test_role_model(self):
+ cols = (('id', sql.String, 64),
+ ('name', sql.String, 64))
+ self.assertExpectedSchema('role', cols)
+
+ def test_user_project_metadata_model(self):
+ cols = (('user_id', sql.String, 64),
+ ('project_id', sql.String, 64),
+ ('data', sql.JsonBlob, None))
+ self.assertExpectedSchema('user_project_metadata', cols)
+
+ def test_user_domain_metadata_model(self):
+ cols = (('user_id', sql.String, 64),
+ ('domain_id', sql.String, 64),
+ ('data', sql.JsonBlob, None))
+ self.assertExpectedSchema('user_domain_metadata', cols)
+
+ def test_group_project_metadata_model(self):
+ cols = (('group_id', sql.String, 64),
+ ('project_id', sql.String, 64),
+ ('data', sql.JsonBlob, None))
+ self.assertExpectedSchema('group_project_metadata', cols)
+
+ def test_group_domain_metadata_model(self):
+ cols = (('group_id', sql.String, 64),
+ ('domain_id', sql.String, 64),
+ ('data', sql.JsonBlob, None))
+ self.assertExpectedSchema('group_domain_metadata', cols)
+
+ def test_user_group_membership(self):
+ cols = (('group_id', sql.String, 64),
+ ('user_id', sql.String, 64))
+ self.assertExpectedSchema('user_group_membership', cols)
+
+
class SqlIdentity(SqlTests, test_backend.IdentityTests):
def test_password_hashed(self):
session = self.identity_api.get_session()