def test_create_strategy_unknown_should_500_noop_testing(self):
     """The none strategy simply is a noop."""
     result = context_filter.filter_factory(self.unknown_testing)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something', method='HEAD')
     self.assertEqual(self.app, resp)
 def test_requires_auth_will_fail_without_info(self):
     result = context_filter.filter_factory(self.strat_neutron_a)(self.app)
     self.assertIsNotNone(result)
     headers = {'Content-Type': 'application/json',
                'X_ROLES': 'testrole, testrole2', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertTrue(isinstance(resp, webob.exc.HTTPForbidden))
示例#3
0
 def test_create_strategy_unknown_should_500_noop_testing(self):
     """The none strategy simply is a noop."""
     result = context_filter.filter_factory(self.unknown_testing)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something', method='HEAD')
     self.assertEqual(self.app, resp)
 def test_create_strategy_neutron_no_user(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     self.assertFalse('neutron.context' in self.req)
     headers = {'Content-Type': 'application/json', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
 def test_create_strategy_neutron(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json',
                'X_USER_ID': 'derp', }
     result.__call__.request('/', method='HEAD', headers=headers)
     context = result.strat_instance.context
     self.assertTrue(context.is_admin)
 def test_create_strategy_neutron_no_user_no_role(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     context = result.strat_instance.context
     self.assertTrue(context.is_admin)
     self.assertEqual(self.app, resp)
 def test_advsvc_is_false_when_admin_and_not_advsvc_role(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json'}
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertFalse(context.is_advsvc)
 def test_create_strategy_neutron(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     self.assertFalse('neutron.context' in self.req)
     headers = {
         'Content-Type': 'application/json',
         'X_USER_ID': 'derp',
     }
     result.__call__.request('/', method='HEAD', headers=headers)
 def test_create_strategy_test_noop_testing(self):
     """This is a test strategy to see if this thing works."""
     result = context_filter.filter_factory(self.strat_test)(self.app)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something', method='HEAD')
     self.assertEqual(self.app, resp)
     self.assertEqual(1, self.context_init.call_count)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     """Should be 1 because of a new instance."""
     self.assertEqual(1, self.context_init.call_count)
 def test_advsvc_is_true_when_policy_says_it_is(self):
     self.adv_svc.return_value = True
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json'}
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertTrue(context.is_advsvc)
示例#11
0
 def test_create_strategy_test_noop_testing(self):
     """This is a test strategy to see if this thing works."""
     result = context_filter.filter_factory(self.strat_test)(self.app)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something', method='HEAD')
     self.assertEqual(self.app, resp)
     self.assertEqual(1, self.context_init.call_count)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     """Should be 1 because of a new instance."""
     self.assertEqual(1, self.context_init.call_count)
 def test_create_strategy_neutron_no_user(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     self.assertFalse('neutron.context' in self.req)
     headers = {
         'Content-Type': 'application/json',
     }
     with patch('neutron.policy.get_admin_roles', self.get_admin_mock):
         resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
 def test_create_strategy_neutron_with_no_roles(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     self.assertFalse('neutron.context' in self.req)
     headers = {'Content-Type': 'application/json',
                'X_ROLES': None, }
     with patch('neutron.policy.get_admin_roles',
                self.get_admin_mock):
         resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
 def test_create_strategy_neutron_with_empty_roles(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json',
                'X_ROLES': '', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertTrue(context.is_admin)
     self.assertTrue(hasattr(context, 'roles'))
 def test_create_strategy_neutron_with_no_roles(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     self.assertFalse('neutron.context' in self.req)
     headers = {
         'Content-Type': 'application/json',
         'X_ROLES': None,
     }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
示例#16
0
 def test_override_runtime_enabled(self):
     """The none strategy simply is a noop."""
     self.set_reconfigure()
     headers = {'X_WAFFLEHAUS_CONTEXTFILTER_ENABLED': False}
     result = context_filter.filter_factory(self.strat_test)(self.app)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something', method='HEAD',
                                    headers=headers)
     self.assertEqual(self.app, resp)
     self.assertEqual(0, self.context_init.call_count)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     """Should be 1 because of a new instance."""
     self.assertEqual(0, self.context_init.call_count)
示例#17
0
 def test_override_runtime_enabled(self):
     """The none strategy simply is a noop."""
     self.set_reconfigure()
     headers = {'X_WAFFLEHAUS_CONTEXTFILTER_ENABLED': False}
     result = context_filter.filter_factory(self.strat_test)(self.app)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     resp = result.__call__.request('/something',
                                    method='HEAD',
                                    headers=headers)
     self.assertEqual(self.app, resp)
     self.assertEqual(0, self.context_init.call_count)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     """Should be 1 because of a new instance."""
     self.assertEqual(0, self.context_init.call_count)
 def test_create_strategy_neutron_with_roles(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json',
                'X_ROLES': 'testrole, testrole2', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertTrue(hasattr(context, 'roles'))
     self.assertTrue('testrole' in context.roles)
     self.assertTrue('testrole2' in context.roles)
     self.assertTrue(context.is_admin)
     self.assertEqual(2, len(context.roles))
 def test_verify_non_duplicate_request_id_admin(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertTrue(isinstance(result, context_filter.ContextFilter))
     headers = {'Content-Type': 'application/json', }
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     context = result.strat_instance.context
     self.assertTrue(context.is_admin)
     self.assertEqual(self.app, resp)
     # Generate another call in order to force oslo.context to refresh
     # the _request_store, which in turn generates a new request_id
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     context1 = result.strat_instance.context
     self.assertNotEqual(context.request_id, context1.request_id)
 def test_create_strategy_neutron_appends_to_admin_role(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertFalse('neutron.context' in self.req)
     headers = {'Content-Type': 'application/json',
                'X_ROLES': 'testrole, testrole2', }
     with patch('neutron.policy.get_admin_roles',
                self.get_admin_mock):
         resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertTrue(hasattr(context, 'roles'))
     self.assertTrue('testrole' in context.roles)
     self.assertTrue('testrole2' in context.roles)
     self.assertTrue('admin' in context.roles)
     self.assertEqual(3, len(context.roles))
 def test_create_strategy_neutron_appends_to_admin_role(self):
     result = context_filter.filter_factory(self.strat_neutron)(self.app)
     self.assertIsNotNone(result)
     self.assertFalse('neutron.context' in self.req)
     headers = {
         'Content-Type': 'application/json',
         'X_ROLES': 'testrole, testrole2',
     }
     with patch('neutron.policy.get_admin_roles', self.get_admin_mock):
         resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     context = result.strat_instance.context
     self.assertTrue(hasattr(context, 'roles'))
     self.assertTrue('testrole' in context.roles)
     self.assertTrue('testrole2' in context.roles)
     self.assertTrue('admin' in context.roles)
     self.assertEqual(3, len(context.roles))
 def test_requires_auth_is_not_admin(self):
     result = context_filter.filter_factory(self.strat_neutron_a)(self.app)
     self.assertIsNotNone(result)
     headers = {'Content-Type': 'application/json',
                'X_TENANT_ID': '123456',
                'X_USER_ID': 'foo',
                'X_ROLES': 'testrole, testrole2', }
     policy_check = self.create_patch('neutron.policy.check_is_admin')
     policy_check.return_value = False
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     self.assertEqual(2, policy_check.call_count)
     context = result.strat_instance.context
     self.assertTrue(hasattr(context, 'roles'))
     self.assertTrue('testrole' in context.roles)
     self.assertTrue('testrole2' in context.roles)
     self.assertFalse(context.is_admin)
     self.assertEqual(2, len(context.roles))
 def test_verify_non_duplicate_request_id_non_admin(self):
     result = context_filter.filter_factory(self.strat_neutron_a)(self.app)
     self.assertIsNotNone(result)
     headers = {'Content-Type': 'application/json',
                'X_TENANT_ID': '123456',
                'X_USER_ID': 'foo',
                'X_ROLES': 'testrole, testrole2', }
     policy_check = self.create_patch('neutron.policy.check_is_admin')
     policy_check.return_value = False
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     self.assertEqual(self.app, resp)
     self.assertEqual(2, policy_check.call_count)
     context = result.strat_instance.context
     self.assertTrue(hasattr(context, 'roles'))
     self.assertTrue('testrole' in context.roles)
     self.assertTrue('testrole2' in context.roles)
     self.assertFalse(context.is_admin)
     self.assertEqual(2, len(context.roles))
     # Generate another call in order to force oslo.context to refresh
     # the _request_store, which in turn generates a new request_id
     resp = result.__call__.request('/', method='HEAD', headers=headers)
     context1 = result.strat_instance.context
     self.assertNotEqual(context.request_id, context1.request_id)