summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDolph Mathews <dolph.mathews@rackspace.com>2011-07-14 15:20:34 -0500
committerDolph Mathews <dolph.mathews@rackspace.com>2011-07-14 15:20:34 -0500
commitab17a57d205491ab5a2bc5df2b8549e156b5769a (patch)
treed63d384e9a4a782563a26faf4bea8db2c2550fa6
parent2afe2bf2d1515fc23869d12b374863fa25b04d9f (diff)
Wrote test case for github issue #85
-rw-r--r--keystone/test/system/test_issue_85.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/keystone/test/system/test_issue_85.py b/keystone/test/system/test_issue_85.py
new file mode 100644
index 00000000..d0c534c0
--- /dev/null
+++ b/keystone/test/system/test_issue_85.py
@@ -0,0 +1,68 @@
+import unittest
+from common import KeystoneTestCase
+
+class TestIssue85(KeystoneTestCase):
+ """Illustrates github issue #85"""
+
+ def test_disabling_tenant_disables_token(self):
+ """Disabling a tenant should invalidate previously-issued tokens"""
+ # Authenticate as admin
+ r = self.admin_request(method='POST', path='/v2.0/tokens',
+ json=self.admin_credentials)
+ self.admin_token = r.json['auth']['token']['id']
+
+ user_id = 'user'
+ tenant_id = 'tenant'
+
+ # Create a tenant
+ self.admin_request(method='POST', path='/v2.0/tenants',
+ json={
+ 'tenant':{
+ 'id': tenant_id,
+ 'description': 'description',
+ 'enabled': True,
+ }
+ })
+
+ # Create a user
+ self.admin_request(method='PUT', path='/v2.0/users',
+ json={
+ 'user':{
+ 'id': user_id,
+ 'password': 'secrete',
+ 'email': 'user@openstack.org',
+ 'enabled': True,
+ 'tenant_id': tenant_id,
+ }
+ })
+
+ # Authenticate for tenant to get a token
+ r = self.service_request(method='POST', path='/v2.0/tokens',
+ json={
+ 'passwordCredentials':{
+ 'username': user_id,
+ 'password': 'secrete',
+ }
+ })
+ self.service_token = r.json['auth']['token']['id']
+
+ # Validate tenant token
+ self.admin_request(path='/v2.0/tokens/%s' % self.service_token)
+
+ # Disable tenant
+ r = self.admin_request(method='PUT', path='/v2.0/tenants/%s' % tenant_id,
+ json={
+ 'tenant':{
+ 'id': tenant_id,
+ 'description': 'dont care',
+ 'enabled': False,
+ }
+ })
+ self.assertEqual(r.json['tenant']['enabled'], False)
+
+ # Assert tenant token invalidated
+ self.admin_request(path='/v2.0/tokens/%s' % self.service_token,
+ expect_exception=True)
+
+if __name__ == '__main__':
+ unittest.main()