Merge pull request #4969 from ton31337/feature/rewrite_bgp_aggregate-address_route-map_test

tests: Improve bgp_aggregate-address_route-map test
This commit is contained in:
Sri Mohana Singamsetty 2019-09-13 11:03:36 -07:00 committed by GitHub
commit 921308a535
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,6 +39,7 @@ import sys
import json import json
import time import time
import pytest import pytest
import functools
CWD = os.path.dirname(os.path.realpath(__file__)) CWD = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(CWD, '../')) sys.path.append(os.path.join(CWD, '../'))
@ -88,21 +89,42 @@ def test_bgp_maximum_prefix_invalid():
if tgen.routers_have_failure(): if tgen.routers_have_failure():
pytest.skip(tgen.errors) pytest.skip(tgen.errors)
router = tgen.gears['r2']
def _bgp_converge(router): def _bgp_converge(router):
while True: output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp neighbor 192.168.255.1 json")) expected = {
if output['192.168.255.1']['bgpState'] == 'Established': '192.168.255.1': {
if output['192.168.255.1']['addressFamilyInfo']['ipv4Unicast']['acceptedPrefixCounter'] == 3: 'bgpState': 'Established',
return True 'addressFamilyInfo': {
'ipv4Unicast': {
'acceptedPrefixCounter': 3
}
}
}
}
return topotest.json_cmp(output, expected)
def _bgp_aggregate_address_has_metric(router): def _bgp_aggregate_address_has_metric(router):
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp 172.16.255.0/24 json")) output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
if output['paths'][0]['med'] == 123: expected = {
return True 'paths': [
return False {
'med': 123
}
]
}
return topotest.json_cmp(output, expected)
if _bgp_converge('r2'): test_func = functools.partial(_bgp_converge, router)
assert _bgp_aggregate_address_has_metric('r2') == True success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
assert result is None, 'Failed to see bgp convergence in "{}"'.format(router)
test_func = functools.partial(_bgp_aggregate_address_has_metric, router)
success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
assert result is None, 'Failed to see applied metric for aggregated prefix in "{}"'.format(router)
if __name__ == '__main__': if __name__ == '__main__':
args = ["-s"] + sys.argv[1:] args = ["-s"] + sys.argv[1:]