summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMark J. Washenberger <mark.washenberger@markwash.net>2013-07-29 11:12:03 -0700
committerMark J. Washenberger <mark.washenberger@markwash.net>2013-07-31 09:05:31 -0700
commitcf27bbe356013c11d2a8f2e12da3e5aa60e2fcf9 (patch)
tree9a0db3ccd0ecf5adab05351cd5b68e57fb6771fe /tests
parentc21b458081b011089e6819c716e63331f8df0ce4 (diff)
downloadkeystone-cf27bbe356013c11d2a8f2e12da3e5aa60e2fcf9.tar.gz
keystone-cf27bbe356013c11d2a8f2e12da3e5aa60e2fcf9.tar.xz
keystone-cf27bbe356013c11d2a8f2e12da3e5aa60e2fcf9.zip
Handle json data when migrating role metadata.
Fixes bug 1206257 Change-Id: Ia522e023a2d66ec25bc909db12d358f7c0ee6952
Diffstat (limited to 'tests')
-rw-r--r--tests/test_sql_upgrade.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_sql_upgrade.py b/tests/test_sql_upgrade.py
index ed00deae..cf82b814 100644
--- a/tests/test_sql_upgrade.py
+++ b/tests/test_sql_upgrade.py
@@ -594,6 +594,22 @@ class SqlUpgradeTests(test.TestCase):
'data': json.dumps({"roles": [role2['id']]})}
session.execute(metadata_table.insert().values(role_grant))
+ # Create another user to test the case where member_role_id is already
+ # assigned.
+ user2 = {'id': uuid.uuid4().hex,
+ 'name': uuid.uuid4().hex,
+ 'domain_id': domain['id'],
+ 'password': uuid.uuid4().hex,
+ 'enabled': True,
+ 'extra': json.dumps({})}
+ session.execute(user_table.insert().values(user2))
+
+ # Grant CONF.member_role_id to User2
+ role_grant = {'user_id': user2['id'],
+ 'tenant_id': project['id'],
+ 'data': json.dumps({"roles": [CONF.member_role_id]})}
+ session.execute(metadata_table.insert().values(role_grant))
+
session.commit()
self.upgrade(17)
@@ -635,6 +651,14 @@ class SqlUpgradeTests(test.TestCase):
'data': data}
cmd = user_project_metadata_table.insert().values(role_grant)
self.engine.execute(cmd)
+
+ # Create another conflicting user-project for User2
+ data = json.dumps({"roles": [role2['id']]})
+ role_grant = {'user_id': user2['id'],
+ 'project_id': project['id'],
+ 'data': data}
+ cmd = user_project_metadata_table.insert().values(role_grant)
+ self.engine.execute(cmd)
# End Scaffolding
session.commit()