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 time
import pytest
import functools
CWD = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(CWD, '../'))
@ -88,21 +89,42 @@ def test_bgp_maximum_prefix_invalid():
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
router = tgen.gears['r2']
def _bgp_converge(router):
while True:
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
if output['192.168.255.1']['bgpState'] == 'Established':
if output['192.168.255.1']['addressFamilyInfo']['ipv4Unicast']['acceptedPrefixCounter'] == 3:
return True
output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
expected = {
'192.168.255.1': {
'bgpState': 'Established',
'addressFamilyInfo': {
'ipv4Unicast': {
'acceptedPrefixCounter': 3
}
}
}
}
return topotest.json_cmp(output, expected)
def _bgp_aggregate_address_has_metric(router):
output = json.loads(tgen.gears[router].vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
if output['paths'][0]['med'] == 123:
return True
return False
output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
expected = {
'paths': [
{
'med': 123
}
]
}
return topotest.json_cmp(output, expected)
if _bgp_converge('r2'):
assert _bgp_aggregate_address_has_metric('r2') == True
test_func = functools.partial(_bgp_converge, router)
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__':
args = ["-s"] + sys.argv[1:]