diff options
Diffstat (limited to 'tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py')
| -rw-r--r-- | tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py | 71 |
1 files changed, 33 insertions, 38 deletions
diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py b/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py index 708464864a..56a98c1ef8 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py +++ b/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py @@ -35,7 +35,7 @@ import pytest import functools CWD = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.join(CWD, '../')) +sys.path.append(os.path.join(CWD, "../")) # pylint: disable=C0413 from lib import topotest @@ -43,20 +43,22 @@ from lib.topogen import Topogen, TopoRouter, get_topogen from lib.topolog import logger from mininet.topo import Topo + class TemplateTopo(Topo): def build(self, *_args, **_opts): tgen = get_topogen(self) for routern in range(1, 4): - tgen.add_router('r{}'.format(routern)) + tgen.add_router("r{}".format(routern)) + + switch = tgen.add_switch("s1") + switch.add_link(tgen.gears["r1"]) + switch.add_link(tgen.gears["r2"]) - switch = tgen.add_switch('s1') - switch.add_link(tgen.gears['r1']) - switch.add_link(tgen.gears['r2']) + switch = tgen.add_switch("s2") + switch.add_link(tgen.gears["r2"]) + switch.add_link(tgen.gears["r3"]) - switch = tgen.add_switch('s2') - switch.add_link(tgen.gears['r2']) - switch.add_link(tgen.gears['r3']) def setup_module(mod): tgen = Topogen(TemplateTopo, mod.__name__) @@ -66,38 +68,34 @@ def setup_module(mod): for i, (rname, router) in enumerate(router_list.iteritems(), 1): router.load_config( - TopoRouter.RD_ZEBRA, - os.path.join(CWD, '{}/zebra.conf'.format(rname)) + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) ) router.load_config( - TopoRouter.RD_BGP, - os.path.join(CWD, '{}/bgpd.conf'.format(rname)) + TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) ) tgen.start_router() + def teardown_module(mod): tgen = get_topogen() tgen.stop_topology() + def test_bgp_sender_as_path_loop_detection(): tgen = get_topogen() if tgen.routers_have_failure(): pytest.skip(tgen.errors) - router = tgen.gears['r2'] + router = tgen.gears["r2"] def _bgp_converge(router): output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.2 json")) expected = { - '192.168.255.2': { - 'bgpState': 'Established', - 'addressFamilyInfo': { - 'ipv4Unicast': { - 'acceptedPrefixCounter': 2 - } - } + "192.168.255.2": { + "bgpState": "Established", + "addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 2}}, } } return topotest.json_cmp(output, expected) @@ -105,19 +103,11 @@ def test_bgp_sender_as_path_loop_detection(): def _bgp_has_route_from_r1(router): output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.254/32 json")) expected = { - 'paths': [ + "paths": [ { - 'aspath': { - 'segments': [ - { - 'type': 'as-sequence', - 'list': [ - 65001, - 65003 - ] - } - ], - 'length': 2 + "aspath": { + "segments": [{"type": "as-sequence", "list": [65001, 65003]}], + "length": 2, } } ] @@ -125,10 +115,12 @@ def test_bgp_sender_as_path_loop_detection(): return topotest.json_cmp(output, expected) def _bgp_suppress_route_to_r3(router): - output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.254.2 advertised-routes json")) - expected = { - 'totalPrefixCounter': 0 - } + output = json.loads( + router.vtysh_cmd( + "show ip bgp neighbor 192.168.254.2 advertised-routes json" + ) + ) + expected = {"totalPrefixCounter": 0} return topotest.json_cmp(output, expected) test_func = functools.partial(_bgp_converge, router) @@ -144,8 +136,11 @@ def test_bgp_sender_as_path_loop_detection(): test_func = functools.partial(_bgp_suppress_route_to_r3, router) success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) - assert result is None, 'Route 172.16.255.254/32 should not be sent to r3 "{}"'.format(router) + assert ( + result is None + ), 'Route 172.16.255.254/32 should not be sent to r3 "{}"'.format(router) + -if __name__ == '__main__': +if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) |
