Add unit tests for bondethernet
This commit is contained in:
24
unittest/test_bondethernet.yaml
Normal file
24
unittest/test_bondethernet.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
bondethernets:
|
||||||
|
BondEthernet0:
|
||||||
|
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet1/0/1 ]
|
||||||
|
|
||||||
|
interfaces:
|
||||||
|
GigabitEthernet1/0/0:
|
||||||
|
mtu: 3000
|
||||||
|
GigabitEthernet1/0/1:
|
||||||
|
mtu: 3000
|
||||||
|
|
||||||
|
GigabitEthernet2/0/0:
|
||||||
|
mtu: 3000
|
||||||
|
sub-interfaces:
|
||||||
|
100:
|
||||||
|
mtu: 2000
|
||||||
|
|
||||||
|
BondEthernet0:
|
||||||
|
mtu: 3000
|
||||||
|
lcp: "be012345678"
|
||||||
|
addresses: [ 192.0.2.1/29, 2001:db8::1/64 ]
|
||||||
|
sub-interfaces:
|
||||||
|
100:
|
||||||
|
mtu: 2000
|
||||||
|
addresses: [ 192.0.2.9/29, 2001:db8:1::1/64 ]
|
@ -29,6 +29,19 @@ def get_by_name(yaml, ifname):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def is_bond_member(yaml, ifname):
|
||||||
|
""" Returns True if this interface is a member of a BondEthernet """
|
||||||
|
if not 'bondethernets' in yaml:
|
||||||
|
return False
|
||||||
|
|
||||||
|
for bond, iface in yaml['bondethernets'].items():
|
||||||
|
if not 'interfaces' in iface:
|
||||||
|
continue
|
||||||
|
if ifname in iface['interfaces']:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def validate_bondethernets(yaml):
|
def validate_bondethernets(yaml):
|
||||||
result = True
|
result = True
|
||||||
msgs = []
|
msgs = []
|
||||||
|
@ -80,19 +80,6 @@ def has_address(yaml, ifname):
|
|||||||
return 'addresses' in iface
|
return 'addresses' in iface
|
||||||
|
|
||||||
|
|
||||||
def is_bond_member(yaml, ifname):
|
|
||||||
""" Returns True if this interface is a member of a BondEthernet """
|
|
||||||
if not 'bondethernets' in yaml:
|
|
||||||
return False
|
|
||||||
|
|
||||||
for bond, iface in yaml['bondethernets'].items():
|
|
||||||
if not 'interfaces' in iface:
|
|
||||||
continue
|
|
||||||
if ifname in iface['interfaces']:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
def get_bridge_interfaces(yaml):
|
def get_bridge_interfaces(yaml):
|
||||||
""" Returns a list of all interfaces that are bridgedomain members """
|
""" Returns a list of all interfaces that are bridgedomain members """
|
||||||
|
|
||||||
|
14
validator/test_bondethernet.py
Normal file
14
validator/test_bondethernet.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import unittest
|
||||||
|
import yaml
|
||||||
|
import validator.bondethernet as bondethernet
|
||||||
|
|
||||||
|
class TestBondEthernetMethods(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
with open("unittest/test_bondethernet.yaml", "r") as f:
|
||||||
|
self.cfg = yaml.load(f, Loader = yaml.FullLoader)
|
||||||
|
|
||||||
|
def test_members(self):
|
||||||
|
self.assertTrue(bondethernet.is_bond_member(self.cfg, "GigabitEthernet1/0/0"))
|
||||||
|
self.assertTrue(bondethernet.is_bond_member(self.cfg, "GigabitEthernet1/0/1"))
|
||||||
|
self.assertFalse(bondethernet.is_bond_member(self.cfg, "GigabitEthernet2/0/0"))
|
||||||
|
self.assertFalse(bondethernet.is_bond_member(self.cfg, "GigabitEthernet2/0/0.100"))
|
Reference in New Issue
Block a user