def test_detail_delete_rule(self): sec_group = self.security_groups.first() rule = self.security_group_rules.first() api.neutron.security_group_rule_delete(IsA(http.HttpRequest), rule.id) self.mox.ReplayAll() form_data = {"action": "rules__delete__%s" % rule.id} req = self.factory.post(self.edit_url, form_data) kwargs = {'security_group_id': sec_group.id} table = tables.RulesTable(req, sec_group.rules, **kwargs) handled = table.maybe_handle() self.assertEqual(strip_absolute_base(handled['location']), self.detail_url)
def test_detail_delete_rule(self): sec_group = self.security_groups.first() rule = self.security_group_rules.first() self.mock_security_group_rule_delete.return_value = None form_data = {"action": "rules__delete__%s" % rule.id} req = self.factory.post(self.edit_url, form_data) kwargs = {'security_group_id': sec_group.id} table = tables.RulesTable(req, sec_group.rules, **kwargs) handled = table.maybe_handle() self.assertEqual(strip_absolute_base(handled['location']), self.detail_url) self.mock_security_group_rule_delete.assert_called_once_with( test.IsHttpRequest(), rule.id)
def test_detail_delete_rule_exception(self): sec_group = self.security_groups.first() rule = self.security_group_rules.first() self.mock_security_group_rule_delete.side_effect = self.exceptions.nova self.mock_is_extension_supported.return_value = True form_data = {"action": "rules__delete__%s" % rule.id} req = self.factory.post(self.edit_url, form_data) kwargs = {'security_group_id': sec_group.id} table = tables.RulesTable( req, self.security_group_rules.list(), **kwargs) handled = table.maybe_handle() self.assertEqual(strip_absolute_base(handled['location']), self.detail_url) self.mock_security_group_rule_delete.assert_called_once_with( test.IsHttpRequest(), rule.id) self.mock_is_extension_supported.assert_called_once_with( test.IsHttpRequest(), 'standard-attr-description')