diff --git a/Makefile b/Makefile index 6378f1d..4818b2d 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ VERSION := $(shell cat VERSION) ######################################################## -all: clean check pep8 pyflakes tests +all: clean check pep8 pyflakes tests pep8: -pep8 -r --ignore=E501,E221,W291,W391,E302,E251,E203,W293,E231,E303,E201,E225,E261,E241 pyeapi/ test/ @@ -62,3 +62,5 @@ unittest: clean systest: clean $(COVERAGE) run -m unittest discover test/system -v +coverage_report: + $(COVERAGE) report -m diff --git a/pyeapi/api/varp.py b/pyeapi/api/varp.py index c7bc758..688367d 100644 --- a/pyeapi/api/varp.py +++ b/pyeapi/api/varp.py @@ -36,7 +36,7 @@ Example: { - "mac_address": "aaaa.bbbb.cccc", + "mac_address": "aa:bb:cc:dd:ee:ff", "interfaces": { "Vlan100": { "addresses": [ "1.1.1.1", "2.2.2.2"] @@ -104,7 +104,8 @@ def get(self): return resource def _parse_mac_address(self): - mac_address_re = re.compile(r'^ip\svirtual-router\smac-address\s((?:[a-f0-9]{2}:){5}[a-f0-9]{2})$', re.M) + mac_address_re = re.compile(r'^ip\svirtual-router\smac-address\s' + r'((?:[a-f0-9]{2}:){5}[a-f0-9]{2})$', re.M) mac = mac_address_re.search(self.config) mac = mac.group(1) if mac else None return dict(mac_address=mac) diff --git a/test/unit/test_api_varp.py b/test/unit/test_api_varp.py index d1f826c..4375502 100644 --- a/test/unit/test_api_varp.py +++ b/test/unit/test_api_varp.py @@ -58,6 +58,16 @@ def test_get(self): self.assertIsNotNone(self.instance.get()['mac_address']) self.assertIsNotNone(self.instance.get()['interfaces']) + def test_get_interfaces_none(self): + self._interfaces = None + result = self.instance.interfaces() + self.assertIsNotNone(result) + + def test_get_interfaces_already_defined(self): + self.instance.interfaces() + result = self.instance.interfaces() + self.assertIsNotNone(result) + def test_set_mac_address_with_value(self): value = 'aa:bb:cc:dd:ee:ff' func = function('set_mac_address', mac_address=value) @@ -75,6 +85,10 @@ def test_set_mac_address_with_no_value(self): cmds = 'no ip virtual-router mac-address' self.eapi_positive_config_test(func, cmds) + def test_set_mac_address_with_bad_value(self): + with self.assertRaises(ValueError): + self.instance.set_mac_address(mac_address='0011.2233.4455') + def test_set_mac_address_with_default(self): func = function('set_mac_address', default=True) cmds = 'default ip virtual-router mac-address' @@ -87,12 +101,25 @@ def __init__(self, *args, **kwargs): self.instance = pyeapi.api.varp.VarpInterfaces(None) self.config = open(get_fixture('running_config.varp')).read() + def test_get_with_no_interface(self): + self.config = "" + self.setUp() + result = self.instance.get('Vlan1000') + self.assertIsNone(result) + def test_add_address_with_value(self): func = function('set_addresses', 'Vlan4001', addresses=['1.1.1.4']) cmds = ['interface Vlan4001', 'no ip virtual-router address 1.1.1.2', 'ip virtual-router address 1.1.1.4'] self.eapi_positive_config_test(func, cmds) + def test_add_address_when_interface_does_not_exist(self): + self.config = "" + self.setUp() + func = function('set_addresses', 'Vlan10', addresses=['1.1.1.4']) + cmds = ['interface Vlan10', 'ip virtual-router address 1.1.1.4'] + self.eapi_positive_config_test(func, cmds) + def test_add_address_with_no_value(self): func = function('set_addresses', 'Vlan4002') cmds = ['interface Vlan4002', 'no ip virtual-router address']