Add coverage tests
Change-Id: Ib5fd4421dcc4179aefff5886552d831a271e1866
This commit is contained in:
parent
0a76d4e3a1
commit
2bec74a470
@ -1,9 +1,7 @@
|
|||||||
[run]
|
[run]
|
||||||
branch = True
|
branch = True
|
||||||
source = vmware_nsxlib
|
source = vmware_nsxlib
|
||||||
omit = vmware_nsxlib/tests/*
|
omit = vmware_nsxlib/tests/*,vmware_nsxlib/v3/token*,vmware_nsxlib/version*
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
ignore_errors = True
|
ignore_errors = True
|
||||||
[report]
|
|
||||||
ignore_errors = True
|
|
||||||
|
@ -3,3 +3,4 @@
|
|||||||
- openstack-lower-constraints-jobs
|
- openstack-lower-constraints-jobs
|
||||||
- openstack-python3-ussuri-jobs
|
- openstack-python3-ussuri-jobs
|
||||||
- check-requirements
|
- check-requirements
|
||||||
|
- openstack-cover-jobs
|
||||||
|
12
tox.ini
12
tox.ini
@ -68,9 +68,17 @@ deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/
|
|||||||
commands = bandit -r vmware_nsxlib -n 5 -ll
|
commands = bandit -r vmware_nsxlib -n 5 -ll
|
||||||
|
|
||||||
[testenv:cover]
|
[testenv:cover]
|
||||||
|
envdir = {toxworkdir}/shared
|
||||||
|
setenv = {[testenv]setenv}
|
||||||
|
PYTHON=coverage run --source vmware_nsxlib --parallel-mode
|
||||||
commands =
|
commands =
|
||||||
python setup.py test --coverage --coverage-package-name=vmware_nsxlib --testr-args='{posargs}'
|
coverage erase
|
||||||
coverage report
|
stestr run {posargs}
|
||||||
|
stestr slowest
|
||||||
|
coverage combine
|
||||||
|
coverage report --skip-covered
|
||||||
|
coverage html -d cover
|
||||||
|
coverage xml -o cover/coverage.xml
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
@ -4161,6 +4161,42 @@ class TestPolicySegment(NsxPolicyLibTestCase):
|
|||||||
self.assertEqual(gateway_address, subnet.gateway_address)
|
self.assertEqual(gateway_address, subnet.gateway_address)
|
||||||
self.assertEqual(dhcp_ranges, subnet.dhcp_ranges)
|
self.assertEqual(dhcp_ranges, subnet.dhcp_ranges)
|
||||||
|
|
||||||
|
def test_get_tz_id(self):
|
||||||
|
segment_id = '111'
|
||||||
|
tz_id = '222'
|
||||||
|
tz_path = 'dummy-path/%s' % tz_id
|
||||||
|
with mock.patch.object(
|
||||||
|
self.policy_api, "get",
|
||||||
|
return_value={'id': segment_id,
|
||||||
|
'transport_zone_path': tz_path}) as api_get:
|
||||||
|
result = self.resourceApi.get_transport_zone_id(
|
||||||
|
segment_id, tenant=TEST_TENANT)
|
||||||
|
api_get.assert_called_once()
|
||||||
|
self.assertEqual(tz_id, result)
|
||||||
|
|
||||||
|
def test_set_admin_state(self):
|
||||||
|
# NSX version 3 & up
|
||||||
|
segment_id = '111'
|
||||||
|
with mock.patch.object(self.policy_api.client, "patch") as api_patch:
|
||||||
|
self.resourceApi.set_admin_state(
|
||||||
|
segment_id, False, tenant=TEST_TENANT)
|
||||||
|
api_patch.assert_called_once_with(
|
||||||
|
'%s/segments/%s' % (TEST_TENANT, segment_id),
|
||||||
|
{'id': segment_id, 'admin_state': 'DOWN',
|
||||||
|
'resource_type': 'Segment'},
|
||||||
|
headers={'nsx-enable-partial-patch': 'true'})
|
||||||
|
|
||||||
|
def test_set_admin_state_old(self):
|
||||||
|
# NSX version before 3
|
||||||
|
segment_id = '111'
|
||||||
|
with mock.patch.object(self.resourceApi, 'version', '2.5.0'),\
|
||||||
|
mock.patch.object(self.resourceApi, 'wait_until_realized'),\
|
||||||
|
mock.patch.object(self.resourceApi.nsx_api.logical_switch,
|
||||||
|
"update") as ls_update:
|
||||||
|
self.resourceApi.set_admin_state(
|
||||||
|
segment_id, True, tenant=TEST_TENANT)
|
||||||
|
ls_update.assert_called_once_with(mock.ANY, admin_state=True)
|
||||||
|
|
||||||
|
|
||||||
class TestPolicyIpPool(NsxPolicyLibTestCase):
|
class TestPolicyIpPool(NsxPolicyLibTestCase):
|
||||||
|
|
||||||
@ -4729,6 +4765,32 @@ class TestPolicySegmentPort(NsxPolicyLibTestCase):
|
|||||||
"%s/segments/%s/ports/%s" % (TEST_TENANT, segment_id, port_id),
|
"%s/segments/%s/ports/%s" % (TEST_TENANT, segment_id, port_id),
|
||||||
{'attachment': {'id': vif_id}, 'tags': tags})
|
{'attachment': {'id': vif_id}, 'tags': tags})
|
||||||
|
|
||||||
|
def test_set_admin_state(self):
|
||||||
|
# NSX version 3 & up
|
||||||
|
segment_id = '111'
|
||||||
|
port_id = '222'
|
||||||
|
with mock.patch.object(self.policy_api.client, "patch") as api_patch:
|
||||||
|
self.resourceApi.set_admin_state(
|
||||||
|
segment_id, port_id, False, tenant=TEST_TENANT)
|
||||||
|
api_patch.assert_called_once_with(
|
||||||
|
'%s/segments/%s/ports/%s' % (TEST_TENANT, segment_id, port_id),
|
||||||
|
{'resource_type': 'SegmentPort', 'id': port_id,
|
||||||
|
'admin_state': 'DOWN'},
|
||||||
|
headers={'nsx-enable-partial-patch': 'true'})
|
||||||
|
|
||||||
|
def test_set_admin_state_old(self):
|
||||||
|
# NSX version before 3
|
||||||
|
segment_id = '111'
|
||||||
|
port_id = '222'
|
||||||
|
with mock.patch.object(self.resourceApi, 'version', '2.5.0'),\
|
||||||
|
mock.patch.object(self.resourceApi, 'wait_until_realized'),\
|
||||||
|
mock.patch.object(self.resourceApi.nsx_api.logical_port,
|
||||||
|
"update") as lp_update:
|
||||||
|
self.resourceApi.set_admin_state(
|
||||||
|
segment_id, port_id, True, tenant=TEST_TENANT)
|
||||||
|
lp_update.assert_called_once_with(
|
||||||
|
mock.ANY, False, admin_state=True)
|
||||||
|
|
||||||
|
|
||||||
class TestPolicySegmentProfileBase(NsxPolicyLibTestCase):
|
class TestPolicySegmentProfileBase(NsxPolicyLibTestCase):
|
||||||
|
|
||||||
|
@ -283,11 +283,47 @@ class TestNsxLibFirewallSection(nsxlib_testcase.NsxLibTestCase):
|
|||||||
'&action=create_with_rules'
|
'&action=create_with_rules'
|
||||||
create.assert_called_with(resource, expected_body, headers=None)
|
create.assert_called_with(resource, expected_body, headers=None)
|
||||||
|
|
||||||
|
def test_set_rule_logging(self):
|
||||||
|
section_id = '111'
|
||||||
|
rule_id = 1
|
||||||
|
orig_rule = {'id': rule_id, 'logged': False}
|
||||||
|
with mock.patch.object(self.nsxlib.firewall_section, 'get_rules',
|
||||||
|
return_value={'results': [orig_rule]}),\
|
||||||
|
mock.patch.object(self.nsxlib.client, 'get', return_value={}),\
|
||||||
|
mock.patch.object(self.nsxlib.client, 'create') as update:
|
||||||
|
self.nsxlib.firewall_section.set_rule_logging(section_id, True)
|
||||||
|
update.assert_called_once_with(
|
||||||
|
'firewall/sections/111?action=update_with_rules',
|
||||||
|
{'rules': [{'id': 1, 'logged': True}]}, headers=None)
|
||||||
|
|
||||||
def test_get_excludelist(self):
|
def test_get_excludelist(self):
|
||||||
with mock.patch.object(self.nsxlib.client, 'list') as clist:
|
with mock.patch.object(self.nsxlib.client, 'list') as clist:
|
||||||
self.nsxlib.firewall_section.get_excludelist()
|
self.nsxlib.firewall_section.get_excludelist()
|
||||||
clist.assert_called_with('firewall/excludelist')
|
clist.assert_called_with('firewall/excludelist')
|
||||||
|
|
||||||
|
def test_add_to_excludelist(self):
|
||||||
|
target_id = '111'
|
||||||
|
target_type = const.NSGROUP
|
||||||
|
with mock.patch.object(self.nsxlib.client, 'create') as create:
|
||||||
|
self.nsxlib.firewall_section.add_member_to_fw_exclude_list(
|
||||||
|
target_id, target_type)
|
||||||
|
create.assert_called_once_with(
|
||||||
|
'firewall/excludelist?action=add_member',
|
||||||
|
{'target_id': target_id, 'target_type': target_type},
|
||||||
|
headers=None)
|
||||||
|
|
||||||
|
def test_del_from_excludelist(self):
|
||||||
|
target_id = '111'
|
||||||
|
target_type = const.NSGROUP
|
||||||
|
with mock.patch.object(self.nsxlib.client, 'create') as create:
|
||||||
|
self.nsxlib.firewall_section.remove_member_from_fw_exclude_list(
|
||||||
|
target_id, target_type)
|
||||||
|
create.assert_called_once_with(
|
||||||
|
'firewall/excludelist?action=remove_member&'
|
||||||
|
'object_id=%s' % target_id,
|
||||||
|
None,
|
||||||
|
headers=None)
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
fws_tags = [{"scope": "name", "tag": "new_name"}]
|
fws_tags = [{"scope": "name", "tag": "new_name"}]
|
||||||
with mock.patch.object(self.nsxlib.client, 'update') as update:
|
with mock.patch.object(self.nsxlib.client, 'update') as update:
|
||||||
@ -478,6 +514,26 @@ class TestNsxLibNSGroup(nsxlib_testcase.NsxClientTestCase):
|
|||||||
# getting the rules, and get before each update
|
# getting the rules, and get before each update
|
||||||
self.assertEqual(3, get_mock.call_count)
|
self.assertEqual(3, get_mock.call_count)
|
||||||
|
|
||||||
|
def test_update_on_backend(self):
|
||||||
|
security_group = {
|
||||||
|
'name': 'name',
|
||||||
|
'id': uuidutils.generate_uuid(),
|
||||||
|
'description': None,
|
||||||
|
'logging': False}
|
||||||
|
nsgroup_id = uuidutils.generate_uuid()
|
||||||
|
section_id = uuidutils.generate_uuid()
|
||||||
|
log_sg_allowed_traffic = True
|
||||||
|
|
||||||
|
with mock.patch.object(self.nsxlib.client, 'update') as update_mock,\
|
||||||
|
mock.patch.object(self.nsxlib.client, 'get') as get_mock:
|
||||||
|
self.nsxlib.ns_group.update_on_backend(
|
||||||
|
None, security_group, nsgroup_id, section_id,
|
||||||
|
log_sg_allowed_traffic)
|
||||||
|
# updating the nsgroup and the section
|
||||||
|
self.assertEqual(2, update_mock.call_count)
|
||||||
|
# getting the rules, and get before each update
|
||||||
|
self.assertEqual(3, get_mock.call_count)
|
||||||
|
|
||||||
def test_update_lport_nsgroups(self):
|
def test_update_lport_nsgroups(self):
|
||||||
nsgroup_id1 = uuidutils.generate_uuid()
|
nsgroup_id1 = uuidutils.generate_uuid()
|
||||||
nsgroup_id2 = uuidutils.generate_uuid()
|
nsgroup_id2 = uuidutils.generate_uuid()
|
||||||
|
@ -82,6 +82,7 @@ class NsxLibNsGroup(utils.NsxLibApiBase):
|
|||||||
return '%(name)s - %(id)s' % security_group
|
return '%(name)s - %(id)s' % security_group
|
||||||
|
|
||||||
def get_lport_tags(self, secgroups):
|
def get_lport_tags(self, secgroups):
|
||||||
|
# TODO(asarfaty): This api should move to vmware_nsx
|
||||||
if len(secgroups) > utils.MAX_NSGROUPS_CRITERIA_TAGS:
|
if len(secgroups) > utils.MAX_NSGROUPS_CRITERIA_TAGS:
|
||||||
raise exceptions.NumberOfNsgroupCriteriaTagsReached(
|
raise exceptions.NumberOfNsgroupCriteriaTagsReached(
|
||||||
max_num=utils.MAX_NSGROUPS_CRITERIA_TAGS)
|
max_num=utils.MAX_NSGROUPS_CRITERIA_TAGS)
|
||||||
|
Loading…
Reference in New Issue
Block a user