summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2012-11-06 17:16:56 -0500
committerAdam Young <ayoung@redhat.com>2012-11-27 11:06:11 -0500
commit1012bd42df5906bca67a82663f23b5c8a4eafe68 (patch)
tree48171a462d1f0978528945aa8c06fc171e6bf482 /tests
parent07c1aafdf20db6d6d7c0d3e15074bc02e2f1d2aa (diff)
downloadkeystone-1012bd42df5906bca67a82663f23b5c8a4eafe68.tar.gz
keystone-1012bd42df5906bca67a82663f23b5c8a4eafe68.tar.xz
keystone-1012bd42df5906bca67a82663f23b5c8a4eafe68.zip
normalize identity
modify tables by adding columns, and modify entities by adding attributes for password, description and enabled update tests to deal with change from 'False' and 'True' to the python values False and True Added a Text type from SQL Alchemy Bug 1070351 Bug 1023544 Change-Id: I066c788b5d08a8f42a9b5412ea9e29e4fe9ba205
Diffstat (limited to 'tests')
-rw-r--r--tests/default_fixtures.py8
-rw-r--r--tests/test_backend.py18
-rw-r--r--tests/test_backend_sql.py2
-rw-r--r--tests/test_sql_upgrade.py53
4 files changed, 70 insertions, 11 deletions
diff --git a/tests/default_fixtures.py b/tests/default_fixtures.py
index b1ea5198..4a844a50 100644
--- a/tests/default_fixtures.py
+++ b/tests/default_fixtures.py
@@ -44,6 +44,14 @@ USERS = [
'enabled': True,
'tenant_id': 'baz',
'tenants': ['baz'],
+ }, {
+ 'id': 'badguy',
+ 'name': 'BadGuy',
+ 'password': 'bad',
+ 'email': 'bad@guy.com',
+ 'enabled': False,
+ 'tenant_id': 'baz',
+ 'tenants': ['baz'],
}
]
diff --git a/tests/test_backend.py b/tests/test_backend.py
index 5fd8d3cc..e20011b9 100644
--- a/tests/test_backend.py
+++ b/tests/test_backend.py
@@ -659,39 +659,39 @@ class IdentityTests(object):
def test_create_user_doesnt_modify_passed_in_dict(self):
new_user = {'id': 'user_id', 'name': 'new_user',
- 'password': 'secret'}
+ 'password': 'secret', 'enabled': True}
original_user = new_user.copy()
self.identity_api.create_user('user_id', new_user)
self.assertDictEqual(original_user, new_user)
def test_update_user_enable(self):
- user = {'id': 'fake1', 'name': 'fake1', 'enabled': 'True'}
+ user = {'id': 'fake1', 'name': 'fake1', 'enabled': True}
self.identity_api.create_user('fake1', user)
user_ref = self.identity_api.get_user('fake1')
- self.assertEqual(user_ref['enabled'], 'True')
+ self.assertEqual(user_ref['enabled'], True)
- user['enabled'] = 'False'
+ user['enabled'] = False
self.identity_api.update_user('fake1', user)
user_ref = self.identity_api.get_user('fake1')
self.assertEqual(user_ref['enabled'], user['enabled'])
- user['enabled'] = 'True'
+ user['enabled'] = True
self.identity_api.update_user('fake1', user)
user_ref = self.identity_api.get_user('fake1')
self.assertEqual(user_ref['enabled'], user['enabled'])
def test_update_tenant_enable(self):
- tenant = {'id': 'fake1', 'name': 'fake1', 'enabled': 'True'}
+ tenant = {'id': 'fake1', 'name': 'fake1', 'enabled': True}
self.identity_api.create_tenant('fake1', tenant)
tenant_ref = self.identity_api.get_tenant('fake1')
- self.assertEqual(tenant_ref['enabled'], 'True')
+ self.assertEqual(tenant_ref['enabled'], True)
- tenant['enabled'] = 'False'
+ tenant['enabled'] = False
self.identity_api.update_tenant('fake1', tenant)
tenant_ref = self.identity_api.get_tenant('fake1')
self.assertEqual(tenant_ref['enabled'], tenant['enabled'])
- tenant['enabled'] = 'True'
+ tenant['enabled'] = True
self.identity_api.update_tenant('fake1', tenant)
tenant_ref = self.identity_api.get_tenant('fake1')
self.assertEqual(tenant_ref['enabled'], tenant['enabled'])
diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py
index c089bac7..c163acba 100644
--- a/tests/test_backend_sql.py
+++ b/tests/test_backend_sql.py
@@ -53,6 +53,8 @@ class SqlTests(test.TestCase):
# populate the engine with tables & fixtures
self.load_fixtures(default_fixtures)
+ #defaulted by the data load
+ self.user_foo['enabled'] = True
def tearDown(self):
sql.set_global_engine(None)
diff --git a/tests/test_sql_upgrade.py b/tests/test_sql_upgrade.py
index 9b67fd5f..6ade77f7 100644
--- a/tests/test_sql_upgrade.py
+++ b/tests/test_sql_upgrade.py
@@ -19,6 +19,7 @@ import json
from migrate.versioning import api as versioning_api
import sqlalchemy
+from sqlalchemy.orm import sessionmaker
from keystone.common import sql
from keystone import config
@@ -84,6 +85,45 @@ class SqlUpgradeTests(test.TestCase):
self.assertTableExists('policy')
self.assertTableColumns('policy', ['id', 'type', 'blob', 'extra'])
+ def test_upgrade_7_to_9(self):
+
+ self.assertEqual(self.schema.version, 0)
+ self._migrate(self.repo_path, 7)
+ self.populate_user_table()
+ self.populate_tenant_table()
+ self._migrate(self.repo_path, 9)
+ self.assertEqual(self.schema.version, 9)
+ self.assertTableColumns("user",
+ ["id", "name", "extra", "password",
+ "enabled"])
+ self.assertTableColumns("tenant",
+ ["id", "name", "extra", "description",
+ "enabled"])
+ self.assertTableColumns("role", ["id", "name", "extra"])
+ self.assertTableColumns("user_tenant_membership",
+ ["user_id", "tenant_id"])
+ self.assertTableColumns("metadata", ["user_id", "tenant_id", "data"])
+ maker = sessionmaker(bind=self.engine)
+ session = maker()
+ user_table = sqlalchemy.Table("user",
+ self.metadata,
+ autoload=True)
+ a_user = session.query(user_table).filter("id='foo'").one()
+ self.assertTrue(a_user.enabled)
+ a_user = session.query(user_table).filter("id='badguy'").one()
+ self.assertFalse(a_user.enabled)
+ tenant_table = sqlalchemy.Table("tenant",
+ self.metadata,
+ autoload=True)
+ a_tenant = session.query(tenant_table).filter("id='baz'").one()
+ self.assertEqual(a_tenant.description, 'description')
+ session.commit()
+
+ def test_downgrade_9_to_7(self):
+ self.assertEqual(self.schema.version, 0)
+ self._migrate(self.repo_path, 9)
+ self._migrate(self.repo_path, 7, False)
+
def populate_user_table(self):
for user in default_fixtures.USERS:
extra = copy.deepcopy(user)
@@ -94,6 +134,16 @@ class SqlUpgradeTests(test.TestCase):
user['name'],
json.dumps(extra)))
+ def populate_tenant_table(self):
+ for tenant in default_fixtures.TENANTS:
+ extra = copy.deepcopy(tenant)
+ extra.pop('id')
+ extra.pop('name')
+ self.engine.execute("insert into tenant values ('%s', '%s', '%s')"
+ % (tenant['id'],
+ tenant['name'],
+ json.dumps(extra)))
+
def select_table(self, name):
table = sqlalchemy.Table(name,
self.metadata,
@@ -117,8 +167,7 @@ class SqlUpgradeTests(test.TestCase):
else:
raise AssertionError('Table "%s" already exists' % table_name)
- def _migrate(self, repository, version):
- upgrade = True
+ def _migrate(self, repository, version, upgrade=True):
err = ""
version = versioning_api._migrate_version(self.schema,
version,