Merge "Drop mox usage from FWaaS v1 API tests"

This commit is contained in:
Zuul 2018-03-27 23:58:49 +00:00 committed by Gerrit Code Review
commit f85040ff65
1 changed files with 136 additions and 111 deletions

View File

@ -12,17 +12,20 @@
# License for the specific language governing permissions and limitations
# under the License.
from django import http
from mox3 import mox
import mock
from neutronclient.v2_0.client import Client as neutronclient
from openstack_dashboard.api import neutron as api_neutron
from openstack_dashboard.test import helpers
from neutron_fwaas_dashboard.api import fwaas as api_fwaas
from neutron_fwaas_dashboard.test import helpers as test
class FwaasApiTests(test.APITestCase):
@test.create_stubs({neutronclient: ('create_firewall_rule',)})
use_mox = False
@helpers.create_mocks({neutronclient: ('create_firewall_rule',)})
def test_rule_create(self):
rule1 = self.fw_rules.first()
rule1_dict = self.api_fw_rules.first()
@ -39,13 +42,14 @@ class FwaasApiTests(test.APITestCase):
}
form_dict = {'firewall_rule': form_data}
ret_dict = {'firewall_rule': rule1_dict}
neutronclient.create_firewall_rule(form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_create_firewall_rule.return_value = ret_dict
ret_val = api_fwaas.rule_create(self.request, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Rule)
self.assertEqual(rule1.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_create_firewall_rule.assert_called_once_with(form_dict)
def _assert_rule_return_value(self, ret_val, exp_rule):
self.assertIsInstance(ret_val, api_fwaas.Rule)
@ -57,57 +61,65 @@ class FwaasApiTests(test.APITestCase):
else:
self.assertIsNone(ret_val.policy)
@test.create_stubs({neutronclient: ('list_firewall_rules',
'list_firewall_policies')})
@helpers.create_mocks({neutronclient: ('list_firewall_rules',
'list_firewall_policies')})
def test_rule_list(self):
exp_rules = self.fw_rules.list()
api_rules = {'firewall_rules': self.api_fw_rules.list()}
api_policies = {'firewall_policies': self.api_fw_policies.list()}
neutronclient.list_firewall_rules().AndReturn(api_rules)
neutronclient.list_firewall_policies().AndReturn(api_policies)
self.mox.ReplayAll()
self.mock_list_firewall_rules.return_value = api_rules
self.mock_list_firewall_policies.return_value = api_policies
ret_val = api_fwaas.rule_list(self.request)
for (v, d) in zip(ret_val, exp_rules):
self._assert_rule_return_value(v, d)
self.mock_list_firewall_rules.assert_called_once_with()
self.mock_list_firewall_policies.assert_called_once_with()
@test.create_stubs({neutronclient: ('list_firewall_rules',
'list_firewall_policies')})
@helpers.create_mocks({neutronclient: ('list_firewall_rules',
'list_firewall_policies')})
def test_rule_list_for_tenant(self):
tenant_id = self.request.user.project_id
exp_rules = self.fw_rules.list()
api_rules = {'firewall_rules': self.api_fw_rules.list()}
api_policies = {'firewall_policies': self.api_fw_policies.list()}
neutronclient.list_firewall_rules(
tenant_id=tenant_id,
shared=False).AndReturn({'firewall_rules': []})
neutronclient.list_firewall_rules(shared=True) \
.AndReturn(api_rules)
neutronclient.list_firewall_policies().AndReturn(api_policies)
self.mox.ReplayAll()
self.mock_list_firewall_rules.side_effect = [
{'firewall_rules': []},
api_rules,
]
self.mock_list_firewall_policies.return_value = api_policies
ret_val = api_fwaas.rule_list_for_tenant(self.request, tenant_id)
for (v, d) in zip(ret_val, exp_rules):
self._assert_rule_return_value(v, d)
self.assertEqual(2, self.mock_list_firewall_rules.call_count)
self.mock_list_firewall_rules.assert_has_calls([
mock.call(tenant_id=tenant_id, shared=False),
mock.call(shared=True),
])
self.mock_list_firewall_policies.assert_called_once_with()
@test.create_stubs({neutronclient: ('show_firewall_rule',
'show_firewall_policy')})
@helpers.create_mocks({neutronclient: ('show_firewall_rule',
'show_firewall_policy')})
def test_rule_get(self):
exp_rule = self.fw_rules.first()
ret_dict = {'firewall_rule': self.api_fw_rules.first()}
policy_dict = {'firewall_policy': self.api_fw_policies.first()}
neutronclient.show_firewall_rule(exp_rule.id).AndReturn(ret_dict)
neutronclient.show_firewall_policy(
exp_rule.firewall_policy_id).AndReturn(policy_dict)
self.mox.ReplayAll()
self.mock_show_firewall_rule.return_value = ret_dict
self.mock_show_firewall_policy.return_value = policy_dict
ret_val = api_fwaas.rule_get(self.request, exp_rule.id)
self._assert_rule_return_value(ret_val, exp_rule)
@test.create_stubs({neutronclient: ('update_firewall_rule',)})
self._assert_rule_return_value(ret_val, exp_rule)
self.mock_show_firewall_rule.assert_called_once_with(exp_rule.id)
self.mock_show_firewall_policy.assert_called_once_with(
exp_rule.firewall_policy_id)
@helpers.create_mocks({neutronclient: ('update_firewall_rule',)})
def test_rule_update(self):
rule = self.fw_rules.first()
rule_dict = self.api_fw_rules.first()
@ -136,17 +148,17 @@ class FwaasApiTests(test.APITestCase):
form_dict = {'firewall_rule': form_data}
ret_dict = {'firewall_rule': rule_dict}
neutronclient.update_firewall_rule(
rule.id, form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_update_firewall_rule.return_value = ret_dict
ret_val = api_fwaas.rule_update(self.request,
rule.id, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Rule)
self.assertEqual(rule.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_update_firewall_rule.assert_called_once_with(rule.id,
form_dict)
@test.create_stubs({neutronclient: ('create_firewall_policy', )})
@helpers.create_mocks({neutronclient: ('create_firewall_policy', )})
def test_policy_create(self):
policy1 = self.fw_policies.first()
policy1_dict = self.api_fw_policies.first()
@ -160,13 +172,13 @@ class FwaasApiTests(test.APITestCase):
form_dict = {'firewall_policy': form_data}
ret_dict = {'firewall_policy': policy1_dict}
neutronclient.create_firewall_policy(form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_create_firewall_policy.return_value = ret_dict
ret_val = api_fwaas.policy_create(self.request, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Policy)
self.assertEqual(policy1.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_create_firewall_policy.assert_called_once_with(form_dict)
def _assert_policy_return_value(self, ret_val, exp_policy):
self.assertIsInstance(ret_val, api_fwaas.Policy)
@ -178,43 +190,48 @@ class FwaasApiTests(test.APITestCase):
for (r, exp_r) in zip(ret_val.rules, exp_policy.rules):
self.assertEqual(exp_r.id, r.id)
@test.create_stubs({neutronclient: ('list_firewall_policies',
'list_firewall_rules')})
@helpers.create_mocks({neutronclient: ('list_firewall_policies',
'list_firewall_rules')})
def test_policy_list(self):
exp_policies = self.fw_policies.list()
policies_dict = {'firewall_policies': self.api_fw_policies.list()}
rules_dict = {'firewall_rules': self.api_fw_rules.list()}
neutronclient.list_firewall_policies().AndReturn(policies_dict)
neutronclient.list_firewall_rules().AndReturn(rules_dict)
self.mox.ReplayAll()
self.mock_list_firewall_policies.return_value = policies_dict
self.mock_list_firewall_rules.return_value = rules_dict
ret_val = api_fwaas.policy_list(self.request)
for (v, d) in zip(ret_val, exp_policies):
self._assert_policy_return_value(v, d)
self.mock_list_firewall_policies.assert_called_once_with()
self.mock_list_firewall_rules.assert_called_once_with()
@test.create_stubs({neutronclient: ('list_firewall_policies',
'list_firewall_rules')})
@helpers.create_mocks({neutronclient: ('list_firewall_policies',
'list_firewall_rules')})
def test_policy_list_for_tenant(self):
tenant_id = self.request.user.project_id
exp_policies = self.fw_policies.list()
policies_dict = {'firewall_policies': self.api_fw_policies.list()}
rules_dict = {'firewall_rules': self.api_fw_rules.list()}
neutronclient.list_firewall_policies(
tenant_id=tenant_id,
shared=False).AndReturn({'firewall_policies': []})
neutronclient.list_firewall_policies(
shared=True).AndReturn(policies_dict)
neutronclient.list_firewall_rules().AndReturn(rules_dict)
self.mox.ReplayAll()
self.mock_list_firewall_policies.side_effect = [
{'firewall_policies': []},
policies_dict,
]
self.mock_list_firewall_rules.return_value = rules_dict
ret_val = api_fwaas.policy_list_for_tenant(self.request, tenant_id)
for (v, d) in zip(ret_val, exp_policies):
self._assert_policy_return_value(v, d)
self.assertEqual(2, self.mock_list_firewall_policies.call_count)
self.mock_list_firewall_policies.assert_has_calls([
mock.call(tenant_id=tenant_id, shared=False),
mock.call(shared=True),
])
self.mock_list_firewall_rules.assert_called_once_with()
@test.create_stubs({neutronclient: ('show_firewall_policy',
'list_firewall_rules')})
@helpers.create_mocks({neutronclient: ('show_firewall_policy',
'list_firewall_rules')})
def test_policy_get(self):
exp_policy = self.fw_policies.first()
policy_dict = self.api_fw_policies.first()
@ -222,32 +239,33 @@ class FwaasApiTests(test.APITestCase):
api_rules = self.api_fw_rules.list()[:2]
ret_dict = {'firewall_policy': policy_dict}
neutronclient.show_firewall_policy(exp_policy.id).AndReturn(ret_dict)
self.mock_show_firewall_policy.return_value = 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()
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)
@test.create_stubs({neutronclient: ('show_firewall_policy',)})
@helpers.create_mocks({neutronclient: ('show_firewall_policy',)})
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()
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)
@test.create_stubs({neutronclient: ('update_firewall_policy',)})
@helpers.create_mocks({neutronclient: ('update_firewall_policy',)})
def test_policy_update(self):
policy = self.fw_policies.first()
policy_dict = self.api_fw_policies.first()
@ -271,17 +289,17 @@ class FwaasApiTests(test.APITestCase):
form_dict = {'firewall_policy': form_data}
ret_dict = {'firewall_policy': policy_dict}
neutronclient.update_firewall_policy(
policy.id, form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_update_firewall_policy.return_value = ret_dict
ret_val = api_fwaas.policy_update(self.request,
policy.id, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Policy)
self.assertEqual(policy.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_update_firewall_policy.assert_called_once_with(
policy.id, form_dict)
@test.create_stubs({neutronclient: ('firewall_policy_insert_rule',)})
@helpers.create_mocks({neutronclient: ('firewall_policy_insert_rule',)})
def test_policy_insert_rule(self):
policy = self.fw_policies.first()
policy_dict = self.api_fw_policies.first()
@ -294,15 +312,15 @@ class FwaasApiTests(test.APITestCase):
'insert_before': policy.firewall_rules[1],
'insert_after': policy.firewall_rules[0]}
neutronclient.firewall_policy_insert_rule(
policy.id, body).AndReturn(policy_dict)
self.mox.ReplayAll()
self.mock_firewall_policy_insert_rule.return_value = policy_dict
ret_val = api_fwaas.policy_insert_rule(self.request,
policy.id, **body)
self.assertIn(new_rule_id, ret_val.firewall_rules)
self.mock_firewall_policy_insert_rule.assert_called_once_with(
policy.id, body)
@test.create_stubs({neutronclient: ('firewall_policy_remove_rule',)})
@helpers.create_mocks({neutronclient: ('firewall_policy_remove_rule',)})
def test_policy_remove_rule(self):
policy = self.fw_policies.first()
policy_dict = self.api_fw_policies.first()
@ -312,15 +330,15 @@ class FwaasApiTests(test.APITestCase):
body = {'firewall_rule_id': remove_rule_id}
neutronclient.firewall_policy_remove_rule(
policy.id, body).AndReturn(policy_dict)
self.mox.ReplayAll()
self.mock_firewall_policy_remove_rule.return_value = policy_dict
ret_val = api_fwaas.policy_remove_rule(self.request,
policy.id, **body)
self.assertNotIn(remove_rule_id, ret_val.firewall_rules)
self.mock_firewall_policy_remove_rule.assert_called_once_with(
policy.id, body)
@test.create_stubs({neutronclient: ('create_firewall', )})
@helpers.create_mocks({neutronclient: ('create_firewall', )})
def test_firewall_create(self):
firewall = self.firewalls.first()
firewall_dict = self.api_firewalls.first()
@ -333,13 +351,13 @@ class FwaasApiTests(test.APITestCase):
form_dict = {'firewall': form_data}
ret_dict = {'firewall': firewall_dict}
neutronclient.create_firewall(form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_create_firewall.return_value = ret_dict
ret_val = api_fwaas.firewall_create(self.request, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Firewall)
self.assertEqual(firewall.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_create_firewall.assert_called_once_with(form_dict)
def _assert_firewall_return_value(self, ret_val, exp_firewall):
self.assertIsInstance(ret_val, api_fwaas.Firewall)
@ -351,69 +369,69 @@ class FwaasApiTests(test.APITestCase):
# TODO(absubram) : Add API tests for firewall_create with routers,
# add router to firewall and remove router from fw.
@test.create_stubs({neutronclient: ('list_firewalls',
'list_firewall_policies'),
api_neutron: ('is_extension_supported',
'router_list')})
@helpers.create_mocks({neutronclient: ('list_firewalls',
'list_firewall_policies'),
api_neutron: ('is_extension_supported',
'router_list')})
def test_firewall_list(self):
exp_firewalls = self.firewalls.list()
firewalls_dict = {'firewalls': self.api_firewalls.list()}
policies_dict = {'firewall_policies': self.api_fw_policies.list()}
neutronclient.list_firewalls().AndReturn(firewalls_dict)
neutronclient.list_firewall_policies().AndReturn(policies_dict)
api_neutron.is_extension_supported(
mox.IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True)
api_neutron.router_list(mox.IsA(http.HttpRequest)) \
.AndReturn(self.routers.list())
self.mox.ReplayAll()
self.mock_list_firewalls.return_value = firewalls_dict
self.mock_list_firewall_policies.return_value = policies_dict
self.mock_is_extension_supported.return_value = True
self.mock_router_list.return_value = self.routers.list()
ret_val = api_fwaas.firewall_list(self.request)
for (v, d) in zip(ret_val, exp_firewalls):
self._assert_firewall_return_value(v, d)
self.mock_list_firewalls.assert_called_once_with()
self.mock_list_firewall_policies.assert_called_once_with()
self.mock_is_extension_supported.assert_called_once_with(
helpers.IsHttpRequest(), 'fwaasrouterinsertion')
self.mock_router_list.assert_called_once_with(
helpers.IsHttpRequest())
@test.create_stubs({neutronclient: ('list_firewalls',
'list_firewall_policies'),
api_neutron: ('is_extension_supported',
'router_list')})
@helpers.create_mocks({neutronclient: ('list_firewalls',
'list_firewall_policies'),
api_neutron: ('is_extension_supported',
'router_list')})
def test_firewall_list_for_tenant(self):
tenant_id = self.request.user.project_id
exp_firewalls = self.firewalls.list()
firewalls_dict = {'firewalls': self.api_firewalls.list()}
policies_dict = {'firewall_policies': self.api_fw_policies.list()}
neutronclient.list_firewalls(tenant_id=tenant_id) \
.AndReturn(firewalls_dict)
neutronclient.list_firewall_policies().AndReturn(policies_dict)
api_neutron.is_extension_supported(
mox.IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True)
api_neutron.router_list(mox.IsA(http.HttpRequest),
tenant_id=self.request.user.project_id) \
.AndReturn(self.routers.list())
self.mox.ReplayAll()
self.mock_list_firewalls.return_value = firewalls_dict
self.mock_list_firewall_policies.return_value = policies_dict
self.mock_is_extension_supported.return_value = True
self.mock_router_list.return_value = self.routers.list()
ret_val = api_fwaas.firewall_list_for_tenant(self.request, tenant_id)
for (v, d) in zip(ret_val, exp_firewalls):
self._assert_firewall_return_value(v, d)
@test.create_stubs({neutronclient: ('show_firewall',
'show_firewall_policy'),
api_neutron: ('is_extension_supported',
'router_list')})
self.mock_list_firewalls.assert_called_once_with(tenant_id=tenant_id)
self.mock_list_firewall_policies.assert_called_once_with()
self.mock_is_extension_supported.assert_called_once_with(
helpers.IsHttpRequest(), 'fwaasrouterinsertion')
self.mock_router_list.assert_called_once_with(
helpers.IsHttpRequest(), tenant_id=self.request.user.project_id)
@helpers.create_mocks({neutronclient: ('show_firewall',
'show_firewall_policy'),
api_neutron: ('is_extension_supported',
'router_list')})
def test_firewall_get(self):
exp_firewall = self.firewalls.first()
ret_dict = {'firewall': self.api_firewalls.first()}
policy_dict = {'firewall_policy': self.api_fw_policies.first()}
neutronclient.show_firewall(exp_firewall.id).AndReturn(ret_dict)
neutronclient.show_firewall_policy(
exp_firewall.firewall_policy_id).AndReturn(policy_dict)
api_neutron.is_extension_supported(
mox.IsA(http.HttpRequest), 'fwaasrouterinsertion').AndReturn(True)
api_neutron.router_list(
mox.IsA(http.HttpRequest),
id=exp_firewall.router_ids).AndReturn(exp_firewall.routers)
self.mox.ReplayAll()
self.mock_show_firewall.return_value = ret_dict
self.mock_show_firewall_policy.return_value = policy_dict
self.mock_is_extension_supported.return_value = True
self.mock_router_list.return_value = exp_firewall.routers
ret_val = api_fwaas.firewall_get(self.request, exp_firewall.id)
self._assert_firewall_return_value(ret_val, exp_firewall)
@ -422,8 +440,15 @@ class FwaasApiTests(test.APITestCase):
[r.id for r in ret_val.routers])
self.assertEqual([r.name for r in exp_firewall.routers],
[r.name for r in ret_val.routers])
self.mock_show_firewall.assert_called_once_with(exp_firewall.id)
self.mock_show_firewall_policy.assert_called_once_with(
exp_firewall.firewall_policy_id)
self.mock_is_extension_supported.assert_called_once_with(
helpers.IsHttpRequest(), 'fwaasrouterinsertion')
self.mock_router_list.assert_called_once_with(
helpers.IsHttpRequest(), id=exp_firewall.router_ids)
@test.create_stubs({neutronclient: ('update_firewall',)})
@helpers.create_mocks({neutronclient: ('update_firewall',)})
def test_firewall_update(self):
firewall = self.firewalls.first()
firewall_dict = self.api_firewalls.first()
@ -444,12 +469,12 @@ class FwaasApiTests(test.APITestCase):
form_dict = {'firewall': form_data}
ret_dict = {'firewall': firewall_dict}
neutronclient.update_firewall(
firewall.id, form_dict).AndReturn(ret_dict)
self.mox.ReplayAll()
self.mock_update_firewall.return_value = ret_dict
ret_val = api_fwaas.firewall_update(self.request,
firewall.id, **form_data)
self.assertIsInstance(ret_val, api_fwaas.Firewall)
self.assertEqual(firewall.name, ret_val.name)
self.assertTrue(ret_val.id)
self.mock_update_firewall.assert_called_once_with(firewall.id,
form_dict)