From ed776e38f69080febcc5b4d9db8d55b5101cbdf1 Mon Sep 17 00:00:00 2001 From: Christian Hopps Date: Sat, 19 Jun 2021 12:09:06 +0000 Subject: tests: apply KISS to retry fixture This python fixture was way too complex for what is needed. Eliminate gratuitous options/over-engineering: - Change from non-deterministic `wait` and `attempts` to a single `retry_timeout` value. This is both more deterministic, as well as what the user should actually be thinking about. - Use a fixed 2 second pause between executing the wrapped function rather than a bunch of arbitrary choices of 2, 3 and 4 seconds spread all over the test code. - Get rid of the multiple variables for determining what "Positive" and "Negative" results are. Instead just implement what all the user code already wants, i.e., boolean False or a str (errormsg) means "Negative" result otherwise it's a "Positive" result. - As part of the above the inversion logic is much more comprehensible in the fixture code (and more correct to boot). Signed-off-by: Christian Hopps --- .../ospf_basic_functionality/test_ospf_authentication.py | 8 ++++---- tests/topotests/ospf_basic_functionality/test_ospf_ecmp.py | 8 ++++---- tests/topotests/ospf_basic_functionality/test_ospf_ecmp_lan.py | 4 ++-- tests/topotests/ospf_basic_functionality/test_ospf_routemaps.py | 4 ++-- tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) (limited to 'tests/topotests/ospf_basic_functionality') diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_authentication.py b/tests/topotests/ospf_basic_functionality/test_ospf_authentication.py index 9c3be58937..a7f2893eab 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_authentication.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_authentication.py @@ -257,7 +257,7 @@ def test_ospf_authentication_simple_pass_tc28_p1(request): sleep(6) dut = "r2" ospf_covergence = verify_ospf_neighbor( - tgen, topo, dut=dut, expected=False, attempts=5 + tgen, topo, dut=dut, expected=False, retry_timeout=10 ) assert ospf_covergence is not True, "setup_module :Failed \n Error:" " {}".format( ospf_covergence @@ -395,7 +395,7 @@ def test_ospf_authentication_md5_tc29_p1(request): sleep(6) dut = "r1" ospf_covergence = verify_ospf_neighbor( - tgen, topo, dut=dut, expected=False, attempts=3 + tgen, topo, dut=dut, expected=False, retry_timeout=6 ) assert ospf_covergence is not True, "setup_module :Failed \n Error:" " {}".format( ospf_covergence @@ -460,7 +460,7 @@ def test_ospf_authentication_md5_tc29_p1(request): sleep(6) dut = "r2" ospf_covergence = verify_ospf_neighbor( - tgen, topo, dut=dut, expected=False, attempts=5 + tgen, topo, dut=dut, expected=False, retry_timeout=10 ) assert ospf_covergence is not True, "setup_module :Failed \n Error:" " {}".format( ospf_covergence @@ -610,7 +610,7 @@ def test_ospf_authentication_different_auths_tc30_p1(request): step("Verify that the neighbour is not FULL between R1 and R2.") dut = "r1" ospf_covergence = verify_ospf_neighbor( - tgen, topo, dut=dut, expected=False, attempts=5 + tgen, topo, dut=dut, expected=False, retry_timeout=10 ) assert ospf_covergence is not True, "setup_module :Failed \n Error:" " {}".format( ospf_covergence diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_ecmp.py b/tests/topotests/ospf_basic_functionality/test_ospf_ecmp.py index 1aabc06db0..49ecaac9f7 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_ecmp.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_ecmp.py @@ -326,7 +326,7 @@ def test_ospf_ecmp_tc16_p0(request): step("Verify that route is withdrawn from R2.") dut = "r1" result = verify_ospf_rib( - tgen, dut, input_dict, next_hop=nh, attempts=5, expected=False + tgen, dut, input_dict, next_hop=nh, retry_timeout=10, expected=False ) assert ( result is not True @@ -342,7 +342,7 @@ def test_ospf_ecmp_tc16_p0(request): input_dict, protocol=protocol, next_hop=nh, - attempts=5, + retry_timeout=10, expected=False, ) assert ( @@ -434,7 +434,7 @@ def test_ospf_ecmp_tc17_p0(request): step("Verify that route is withdrawn from R2.") dut = "r1" result = verify_ospf_rib( - tgen, dut, input_dict, next_hop=nh, attempts=5, expected=False + tgen, dut, input_dict, next_hop=nh, retry_timeout=10, expected=False ) assert ( result is not True @@ -450,7 +450,7 @@ def test_ospf_ecmp_tc17_p0(request): input_dict, protocol=protocol, next_hop=nh, - attempts=5, + retry_timeout=10, expected=False, ) assert ( diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_ecmp_lan.py b/tests/topotests/ospf_basic_functionality/test_ospf_ecmp_lan.py index e6dc18a434..47c6c45e39 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_ecmp_lan.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_ecmp_lan.py @@ -305,7 +305,7 @@ def test_ospf_lan_ecmp_tc18_p0(request): step("Verify that all the routes are withdrawn from R0") dut = "r1" result = verify_ospf_rib( - tgen, dut, input_dict, next_hop=nh, attempts=5, expected=False + tgen, dut, input_dict, next_hop=nh, retry_timeout=10, expected=False ) assert ( result is not True @@ -321,7 +321,7 @@ def test_ospf_lan_ecmp_tc18_p0(request): input_dict, protocol=protocol, next_hop=nh, - attempts=5, + retry_timeout=10, expected=False, ) assert ( diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_routemaps.py b/tests/topotests/ospf_basic_functionality/test_ospf_routemaps.py index 7864d0307a..0848f6c94a 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_routemaps.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_routemaps.py @@ -501,7 +501,7 @@ def test_ospf_routemaps_functionality_tc20_p0(request): dut = "r1" protocol = "ospf" - result = verify_ospf_rib(tgen, dut, input_dict, attempts=2, expected=False) + result = verify_ospf_rib(tgen, dut, input_dict, retry_timeout=4, expected=False) assert ( result is not True ), "Testcase {} : Failed \n " "r1: OSPF routes are present \n Error: {}".format( @@ -509,7 +509,7 @@ def test_ospf_routemaps_functionality_tc20_p0(request): ) result = verify_rib( - tgen, "ipv4", dut, input_dict, protocol=protocol, attempts=2, expected=False + tgen, "ipv4", dut, input_dict, protocol=protocol, retry_timeout=4, expected=False ) assert ( result is not True diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py b/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py index 9dfde325f6..f17346d5b1 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py @@ -263,7 +263,7 @@ def test_ospf_redistribution_tc5_p0(request): input_dict, protocol=protocol, next_hop=nh, - attempts=5, + retry_timeout=10, expected=False, ) assert result is not True, ( -- cgit v1.2.3