Skip to content
Snippets Groups Projects
Commit ffde063f authored by Erik Reid's avatar Erik Reid
Browse files

enironment-spedific AF_INET constants

use environment-specific AF_INET* constants in unit test data
parent 31c71528
No related branches found
No related tags found
No related merge requests found
import ast import ast
import netifaces
import os import os
import jsonschema import jsonschema
...@@ -102,19 +103,29 @@ def test_bgp_list(netconf_doc): ...@@ -102,19 +103,29 @@ def test_bgp_list(netconf_doc):
NETIFACES_TEST_DATA_STRING = """{ NETIFACES_TEST_DATA_STRING = """{
'lo0': {2: [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}], 'lo0': {{AF_INET}: [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}],
30: [{'addr': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'peer': '::1', 'flags': 0}, {AF_INET6}: [{'addr': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'peer': '::1', 'flags': 0},
{'addr': 'fe80::1%lo0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, {'addr': 'fe80::1%lo0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'eth0': {18: [{'addr': '78:4f:43:76:73:ba'}], 'eth0': {{AF_LINK}: [{'addr': '78:4f:43:76:73:ba'}],
2: [{'addr': '83.97.92.239', 'netmask': '255.255.252.0', 'broadcast': '83.97.95.255'}], {AF_INET}: [{'addr': '83.97.92.239', 'netmask': '255.255.252.0', 'broadcast': '83.97.95.255'}],
30: [{'addr': 'fe80::250:56ff:fea1:8340', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024}, {AF_INET6}: [{'addr': 'fe80::250:56ff:fea1:8340', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024},
{'addr': '2001:798:3::104', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088}]} {'addr': '2001:798:3::104', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088}]}
}""" # noqa E501 }""" # noqa E501
NETIFACES_TEST_DATA = ast.literal_eval(NETIFACES_TEST_DATA_STRING)
@pytest.fixture
def test_snmp_community_string(mocker, netconf_doc): def mocked_netifaces(mocker):
mocker.patch('netifaces.interfaces', lambda: NETIFACES_TEST_DATA.keys()) s = NETIFACES_TEST_DATA_STRING
mocker.patch('netifaces.ifaddresses', lambda n: NETIFACES_TEST_DATA[n]) for k, v in {
'AF_INET': netifaces.AF_INET,
'AF_INET6': netifaces.AF_INET6,
'AF_LINK': netifaces.AF_LINK
}.items():
s = s.replace('{%s}' % k, str(v))
data = ast.literal_eval(s)
mocker.patch('netifaces.interfaces', lambda: data.keys())
mocker.patch('netifaces.ifaddresses', lambda n: data[n])
def test_snmp_community_string(mocked_netifaces, netconf_doc):
assert juniper.snmp_community_string(netconf_doc) == '0pBiFbD' assert juniper.snmp_community_string(netconf_doc) == '0pBiFbD'
...@@ -2,60 +2,70 @@ import ast ...@@ -2,60 +2,70 @@ import ast
import netifaces import netifaces
import ipaddress import ipaddress
import pytest
from inventory_provider import juniper from inventory_provider import juniper
NETIFACES_TEST_DATA_STRING = """{ NETIFACES_TEST_DATA_STRING = """{
'lo0': {2: [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}], 'lo0': {{AF_INET}: [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}],
30: [{'addr': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'peer': '::1', 'flags': 0}, {AF_INET6}: [{'addr': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'peer': '::1', 'flags': 0},
{'addr': 'fe80::1%lo0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, {'addr': 'fe80::1%lo0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'gif0': {}, 'gif0': {},
'stf0': {}, 'stf0': {},
'XHC20': {}, 'XHC20': {},
'XHC4': {}, 'XHC4': {},
'XHC3': {}, 'XHC3': {},
'en3': {18: [{'addr': 'b6:00:24:b9:f0:01'}]}, 'en3': {{AF_LINK}: [{'addr': 'b6:00:24:b9:f0:01'}]},
'en8': {18: [{'addr': 'b6:00:24:b9:f0:00'}]}, 'en8': {{AF_LINK}: [{'addr': 'b6:00:24:b9:f0:00'}]},
'en4': {18: [{'addr': 'b6:00:24:b9:f0:05'}]}, 'en4': {{AF_LINK}: [{'addr': 'b6:00:24:b9:f0:05'}]},
'en9': {18: [{'addr': 'b6:00:24:b9:f0:04'}]}, 'en9': {{AF_LINK}: [{'addr': 'b6:00:24:b9:f0:04'}]},
'en0': {18: [{'addr': '78:4f:43:76:73:ba'}], 'en0': {{AF_LINK}: [{'addr': '78:4f:43:76:73:ba'}],
2: [{'addr': '195.169.24.149', 'netmask': '255.255.255.128', 'broadcast': '195.169.24.255'}], {AF_INET}: [{'addr': '195.169.24.149', 'netmask': '255.255.255.128', 'broadcast': '195.169.24.255'}],
30: [{'addr': 'fe80::1c97:ec77:3f32:cdfe%en0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024}, {AF_INET6}: [{'addr': 'fe80::1c97:ec77:3f3{AF_INET}:cdfe%en0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024},
{'addr': '2001:610:9d8:4:4d7:f763:9815:e78d', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088}, {'addr': '2001:610:9d8:4:4d7:f763:9815:e78d', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088},
{'addr': '2001:610:9d8:4:492e:61b6:2c92:c387', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 192}]}, {'addr': '2001:610:9d8:4:492e:61b6:2c9{AF_INET}:c387', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 192}]},
'p2p0': {18: [{'addr': '0a:4f:43:76:73:ba'}]}, 'p2p0': {{AF_LINK}: [{'addr': '0a:4f:43:76:73:ba'}]},
'awdl0': {18: [{'addr': '8e:87:e3:bb:92:1f'}], 'awdl0': {{AF_LINK}: [{'addr': '8e:87:e3:bb:9{AF_INET}:1f'}],
30: [{'addr': 'fe80::8c87:e3ff:febb:921f%awdl0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, {AF_INET6}: [{'addr': 'fe80::8c87:e3ff:febb:921f%awdl0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'bridge0': {18: [{'addr': 'b6:00:24:b9:f0:01'}]}, 'bridge0': {{AF_LINK}: [{'addr': 'b6:00:24:b9:f0:01'}]},
'utun0': {30: [{'addr': 'fe80::8328:d0ef:52b4:d379%utun0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, 'utun0': {{AF_INET6}: [{'addr': 'fe80::8328:d0ef:52b4:d379%utun0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'utun1': {30: [{'addr': 'fe80::5a75:c789:2fa0:6ee4%utun1', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, 'utun1': {{AF_INET6}: [{'addr': 'fe80::5a75:c789:2fa0:6ee4%utun1', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'XHC0': {}, 'XHC0': {},
'XHC1': {}, 'XHC1': {},
'XHC2': {}, 'XHC2': {},
'en21': {18: [{'addr': '64:4b:f0:10:23:25'}], 'en21': {{AF_LINK}: [{'addr': '64:4b:f0:10:23:25'}],
2: [{'addr': '195.169.24.170', 'netmask': '255.255.255.128', 'broadcast': '195.169.24.255'}], {AF_INET}: [{'addr': '195.169.24.170', 'netmask': '255.255.255.128', 'broadcast': '195.169.24.255'}],
30: [{'addr': 'fe80::41c:798c:3fff:f8c9%en21', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024}, {AF_INET6}: [{'addr': 'fe80::41c:798c:3fff:f8c9%en21', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024},
{'addr': '2001:610:9d8:4:c1e:4402:e7cf:547f', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088}, {'addr': '2001:610:9d8:4:c1e:440{AF_INET}:e7cf:547f', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088},
{'addr': '2001:610:9d8:4:911c:954d:d4e2:baef', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 192}]}, {'addr': '2001:610:9d8:4:911c:954d:d4e{AF_INET}:baef', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 192}]},
'en5': {18: [{'addr': 'ac:de:48:00:11:22'}], 'en5': {{AF_LINK}: [{'addr': 'ac:de:48:00:11:22'}],
30: [{'addr': 'fe80::aede:48ff:fe00:1122%en5', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}, {AF_INET6}: [{'addr': 'fe80::aede:48ff:fe00:1122%en5', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]},
'en18': {18: [{'addr': 'ca:3c:85:86:34:2a'}], 2: [{'addr': '169.254.184.83', 'netmask': '255.255.0.0'}]}, 'en18': {{AF_LINK}: [{'addr': 'ca:3c:85:86:34:2a'}], {AF_INET}: [{'addr': '169.254.184.83', 'netmask': '255.255.0.0'}]},
}""" # noqa: E501 }""" # noqa: E501
NETIFACES_TEST_DATA = ast.literal_eval(NETIFACES_TEST_DATA_STRING)
@pytest.fixture
def mocked_netifaces(mocker):
s = NETIFACES_TEST_DATA_STRING
for k, v in {
'AF_INET': netifaces.AF_INET,
'AF_INET6': netifaces.AF_INET6,
'AF_LINK': netifaces.AF_LINK
}.items():
s = s.replace('{%s}' % k, str(v))
data = ast.literal_eval(s)
mocker.patch('netifaces.interfaces', lambda: data.keys())
mocker.patch('netifaces.ifaddresses', lambda n: data[n])
def test_local_v4_interfaces(mocker): def test_local_v4_interfaces(mocked_netifaces):
mocker.patch('netifaces.interfaces', lambda: NETIFACES_TEST_DATA.keys())
mocker.patch('netifaces.ifaddresses', lambda n: NETIFACES_TEST_DATA[n])
addresses = list(juniper.local_interfaces()) addresses = list(juniper.local_interfaces())
assert len(addresses) == 3 assert len(addresses) == 3
for a in addresses: for a in addresses:
assert isinstance(a, ipaddress.IPv4Interface) assert isinstance(a, ipaddress.IPv4Interface)
def test_local_v6_interfaces(mocker): def test_local_v6_interfaces(mocked_netifaces):
mocker.patch('netifaces.interfaces', lambda: NETIFACES_TEST_DATA.keys())
mocker.patch('netifaces.ifaddresses', lambda n: NETIFACES_TEST_DATA[n])
addresses = list(juniper.local_interfaces(netifaces.AF_INET6)) addresses = list(juniper.local_interfaces(netifaces.AF_INET6))
assert len(addresses) == 4 assert len(addresses) == 4
for a in addresses: for a in addresses:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment