Add unit tests for loopbacks; While here, fix a bug in get_by_name(), yaay
This commit is contained in:
@ -19,6 +19,14 @@ class NullHandler(logging.Handler):
|
||||
def emit(self, record):
|
||||
pass
|
||||
|
||||
def get_loopbacks(yaml):
|
||||
""" Return a list of all loopbacks. """
|
||||
ret = []
|
||||
if 'loopbacks' in yaml:
|
||||
for ifname, iface in yaml['loopbacks'].items():
|
||||
ret.append(ifname)
|
||||
return ret
|
||||
|
||||
def get_by_name(yaml, ifname):
|
||||
""" Return the loopback by name, if it exists. Return None otherwise. """
|
||||
try:
|
||||
@ -26,7 +34,7 @@ def get_by_name(yaml, ifname):
|
||||
return ifname, yaml['loopbacks'][ifname]
|
||||
except:
|
||||
pass
|
||||
return None
|
||||
return None, None
|
||||
|
||||
|
||||
def validate_loopbacks(yaml):
|
||||
|
26
validator/test_loopback.py
Normal file
26
validator/test_loopback.py
Normal file
@ -0,0 +1,26 @@
|
||||
import unittest
|
||||
import yaml
|
||||
import validator.loopback as loopback
|
||||
|
||||
class TestLoopbackMethods(unittest.TestCase):
|
||||
def setUp(self):
|
||||
with open("unittest/test_loopback.yaml", "r") as f:
|
||||
self.cfg = yaml.load(f, Loader = yaml.FullLoader)
|
||||
|
||||
def test_get_by_name(self):
|
||||
ifname, iface = loopback.get_by_name(self.cfg, "loop1")
|
||||
self.assertIsNotNone(iface)
|
||||
self.assertEqual("loop1", ifname)
|
||||
self.assertEqual(iface['mtu'], 2000)
|
||||
|
||||
ifname, iface = loopback.get_by_name(self.cfg, "loop-noexist")
|
||||
self.assertIsNone(ifname)
|
||||
self.assertIsNone(iface)
|
||||
|
||||
def test_enumerators(self):
|
||||
ifs = loopback.get_loopbacks(self.cfg)
|
||||
self.assertEqual(len(ifs), 3)
|
||||
self.assertIn("loop0", ifs)
|
||||
self.assertIn("loop1", ifs)
|
||||
self.assertIn("loop2", ifs)
|
||||
self.assertNotIn("loop-noexist", ifs)
|
Reference in New Issue
Block a user