Skip to content

Commit

Permalink
Test upgrade migration 16->17
Browse files Browse the repository at this point in the history
This test covers the use case described in bug 1131590, where a
user_project_membership record cannot be upgraded past migration 16.

Closes-Bug: 1224320
Change-Id: Ia1bd03d0e07de316631140d55231abe74decaac1
  • Loading branch information
dolph committed Sep 13, 2013
1 parent 8c0ba00 commit 7aa8314
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions keystone/tests/test_sql_upgrade.py
Expand Up @@ -221,6 +221,44 @@ def test_upgrade_normalize_identity(self):
session.commit()
session.close()

def test_upgrade_user_tenant_membership_to_metadata(self):
self.upgrade(16)
self.assertTableColumns(
'user_project_membership',
['user_id', 'tenant_id'])

user = {
'id': uuid.uuid4().hex,
'name': uuid.uuid4().hex,
'domain_id': 'default',
'extra': json.dumps({}),
}
project = {
'id': uuid.uuid4().hex,
'name': uuid.uuid4().hex,
'domain_id': 'default',
'extra': json.dumps({}),
}
metadata = {
'user_id': user['id'],
'tenant_id': project['id'],
}
session = self.Session()
self.insert_dict(session, 'user', user)
self.insert_dict(session, 'project', project)
self.insert_dict(session, 'user_project_membership', metadata)

self.upgrade(17)
user_project_metadata_table = sqlalchemy.Table(
'user_project_metadata', self.metadata, autoload=True)

result = session.query(user_project_metadata_table).one()
self.assertEqual(result.user_id, user['id'])
self.assertEqual(result.project_id, project['id'])
self.assertEqual(
json.loads(result.data),
{'roles': [CONF.member_role_id]})

def test_normalized_enabled_states(self):
self.upgrade(8)

Expand Down

0 comments on commit 7aa8314

Please sign in to comment.