def test_process_request_sudo(self): # Set the policy to accept the authz self.policy({'use_sudo': '@'}) app = middleware.KeystoneContextMiddleware({}) request = FakeRequest() request.headers = { 'X-Auth-Token': 'AuthToken', 'X-User-ID': 'UserID', 'X-Tenant-ID': 'TenantID', 'X-Roles': 'admin,Member', 'X-Designate-Sudo-Tenant-ID': '5a993bf8-d521-420a-81e1-192d9cc3d5a0' } # Process the request app.process_request(request) self.assertIn('context', request.environ) context = request.environ['context'] self.assertFalse(context.is_admin) self.assertEqual('AuthToken', context.auth_token) self.assertEqual('UserID', context.user_id) self.assertEqual('TenantID', context.original_tenant_id) self.assertEqual('5a993bf8-d521-420a-81e1-192d9cc3d5a0', context.tenant_id) self.assertEqual(['admin', 'Member'], context.roles)
def setUp(self): super(KeystoneContextMiddlewareTest, self).setUp() self.app = middleware.KeystoneContextMiddleware({}) self.request = FakeRequest() # Replace the DesignateContext class.. self.ctxt = mock.Mock() self.useFixture( fixtures.MockPatch('designate.context.DesignateContext', return_value=self.ctxt))
def test_process_unscoped_token(self): app = middleware.KeystoneContextMiddleware({}) request = FakeRequest() request.headers = { 'X-Auth-Token': 'AuthToken', 'X-User-ID': 'UserID', 'X-Tenant-ID': None, 'X-Roles': 'admin,Member', } # Process the request response = app(request) self.assertEqual(401, response.status_code)
def test_process_request_invalid_keystone_token(self): app = middleware.KeystoneContextMiddleware({}) request = FakeRequest() request.headers = { 'X-Auth-Token': 'AuthToken', 'X-User-ID': 'UserID', 'X-Tenant-ID': 'TenantID', 'X-Roles': 'admin,Member', 'X-Identity-Status': 'Invalid' } # Process the request response = app(request) self.assertEqual(401, response.status_code)
def test_process_request(self): app = middleware.KeystoneContextMiddleware({}) request = FakeRequest() request.headers = { 'X-Auth-Token': 'AuthToken', 'X-User-ID': 'UserID', 'X-Tenant-ID': 'TenantID', 'X-Roles': 'admin,Member', } # Process the request app.process_request(request) self.assertIn('context', request.environ) context = request.environ['context'] self.assertFalse(context.is_admin) self.assertEqual('AuthToken', context.auth_token) self.assertEqual('UserID', context.user_id) self.assertEqual('TenantID', context.project_id) self.assertEqual(['admin', 'Member'], context.roles)