diff options
| author | Adam Young <ayoung@redhat.com> | 2012-11-06 17:16:56 -0500 |
|---|---|---|
| committer | Adam Young <ayoung@redhat.com> | 2012-11-27 11:06:11 -0500 |
| commit | 1012bd42df5906bca67a82663f23b5c8a4eafe68 (patch) | |
| tree | 48171a462d1f0978528945aa8c06fc171e6bf482 /tests | |
| parent | 07c1aafdf20db6d6d7c0d3e15074bc02e2f1d2aa (diff) | |
| download | keystone-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.py | 8 | ||||
| -rw-r--r-- | tests/test_backend.py | 18 | ||||
| -rw-r--r-- | tests/test_backend_sql.py | 2 | ||||
| -rw-r--r-- | tests/test_sql_upgrade.py | 53 |
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, |
