def test_policy_remove_rule(self): policy = self.fw_policies.first() tenant_id = self.tenant.id rules = self.fw_rules.list() remove_rule_id = policy.firewall_rules[0] left_rule_id = policy.firewall_rules[1] data = {'firewall_rule_id': remove_rule_id} after_remove_policy_dict = {'id': 'abcdef-c3eb-4fee-9763-12de3338041e', 'tenant_id': '1', 'name': 'policy1', 'description': 'policy description', 'firewall_rules': [left_rule_id], 'audited': True, 'shared': True} after_remove_policy = api_fwaas.Policy(after_remove_policy_dict) api_fwaas.policy_get(IsA(http.HttpRequest), policy.id).AndReturn(policy) api_fwaas.rule_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(rules) api_fwaas.rule_get( IsA(http.HttpRequest), remove_rule_id).AndReturn(rules[0]) api_fwaas.policy_remove_rule(IsA(http.HttpRequest), policy.id, **data)\ .AndReturn(after_remove_policy) self.mox.ReplayAll() res = self.client.post( reverse(self.REMOVERULE_PATH, args=(policy.id,)), data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def test_policy_insert_rule(self): policy = self.fw_policies.first() tenant_id = self.tenant.id rules = self.fw_rules.list() new_rule_id = rules[2].id data = {'firewall_rule_id': new_rule_id, 'insert_before': rules[1].id, 'insert_after': rules[0].id} api_fwaas.policy_get(IsA(http.HttpRequest), policy.id).AndReturn(policy) policy.firewall_rules = [rules[0].id, new_rule_id, rules[1].id] api_fwaas.rule_list_for_tenant( IsA(http.HttpRequest), tenant_id).AndReturn(rules) api_fwaas.rule_get( IsA(http.HttpRequest), new_rule_id).AndReturn(rules[2]) api_fwaas.policy_insert_rule(IsA(http.HttpRequest), policy.id, **data)\ .AndReturn(policy) self.mox.ReplayAll() res = self.client.post( reverse(self.INSERTRULE_PATH, args=(policy.id,)), data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def test_update_policy_get(self): policy = self.fw_policies.first() api_fwaas.policy_get(IsA(http.HttpRequest), policy.id).AndReturn(policy) self.mox.ReplayAll() res = self.client.get( reverse(self.UPDATEPOLICY_PATH, args=(policy.id,))) self.assertTemplateUsed(res, 'project/firewalls/updatepolicy.html')
def _get_object(self, *args, **kwargs): policy_id = self.kwargs['policy_id'] try: policy = api_fwaas.policy_get(self.request, policy_id) return policy except Exception: redirect = self.success_url msg = _('Unable to retrieve policy details.') exceptions.handle(self.request, msg, redirect=redirect)
def get_data(self): try: policy_id = self.kwargs['policy_id'] policy = api_fwaas.policy_get(self.request, policy_id) except Exception: exceptions.handle(self.request, _('Unable to retrieve policy details.'), redirect=self.failure_url) return policy
def test_update_policy_post(self): policy = self.fw_policies.first() api_fwaas.policy_get(IsA(http.HttpRequest), policy.id).AndReturn(policy) data = {'name': 'new name', 'description': 'new desc', 'shared': True, 'audited': False } api_fwaas.policy_update(IsA(http.HttpRequest), policy.id, **data)\ .AndReturn(policy) self.mox.ReplayAll() res = self.client.post( reverse(self.UPDATEPOLICY_PATH, args=(policy.id,)), data) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
def test_policy_get_no_rule(self): # 2nd policy is not associated with any rules. exp_policy = self.fw_policies.list()[1] policy_dict = self.api_fw_policies.list()[1] ret_dict = {'firewall_policy': policy_dict} neutronclient.show_firewall_policy(exp_policy.id).AndReturn(ret_dict) self.mox.ReplayAll() ret_val = api_fwaas.policy_get(self.request, exp_policy.id) self.assertIsInstance(ret_val, api_fwaas.Policy) self.assertEqual(exp_policy.name, ret_val.name) self.assertTrue(ret_val.id) self.assertFalse(len(ret_val.rules))
def test_policy_get_no_rule(self): # 2nd policy is not associated with any rules. exp_policy = self.fw_policies.list()[1] policy_dict = self.api_fw_policies.list()[1] ret_dict = {'firewall_policy': policy_dict} self.mock_show_firewall_policy.return_value = ret_dict ret_val = api_fwaas.policy_get(self.request, exp_policy.id) self.assertIsInstance(ret_val, api_fwaas.Policy) self.assertEqual(exp_policy.name, ret_val.name) self.assertTrue(ret_val.id) self.assertFalse(len(ret_val.rules)) self.mock_show_firewall_policy.assert_called_once_with(exp_policy.id)
def test_policy_get(self): exp_policy = self.fw_policies.first() policy_dict = self.api_fw_policies.first() # The first two rules are associated with the first policy. api_rules = self.api_fw_rules.list()[:2] ret_dict = {'firewall_policy': policy_dict} neutronclient.show_firewall_policy(exp_policy.id).AndReturn(ret_dict) filters = {'firewall_policy_id': exp_policy.id} ret_dict = {'firewall_rules': api_rules} neutronclient.list_firewall_rules(**filters).AndReturn(ret_dict) self.mox.ReplayAll() ret_val = api_fwaas.policy_get(self.request, exp_policy.id) self._assert_policy_return_value(ret_val, exp_policy)
def test_policy_get(self): exp_policy = self.fw_policies.first() policy_dict = self.api_fw_policies.first() # The first two rules are associated with the first policy. api_rules = self.api_fw_rules.list()[:2] ret_dict = {'firewall_policy': policy_dict} self.mock_show_firewall_policy.return_value = ret_dict filters = {'firewall_policy_id': exp_policy.id} ret_dict = {'firewall_rules': api_rules} self.mock_list_firewall_rules.return_value = ret_dict ret_val = api_fwaas.policy_get(self.request, exp_policy.id) self._assert_policy_return_value(ret_val, exp_policy) self.mock_show_firewall_policy.assert_called_once_with(exp_policy.id) self.mock_list_firewall_rules.assert_called_once_with(**filters)