@@ -27,16 +27,22 @@ def test_stepfunction(stepf):
2727 stepf ("the second step" )
2828
2929
30+ # Assert twice then succeed
3031@retry (retry_timeout = 2 , retry_sleep = 0.1 )
3132def retrying_test_assert ():
3233 if not hasattr (retrying_test_assert , "count" ):
3334 retrying_test_assert .count = 0
3435 else :
3536 retrying_test_assert .count += 1
3637 assert retrying_test_assert .count == 2 , "count not 2"
37- retrying_test_assert .count = 0
3838
3939
40+ def test_retry_assert (caplog ):
41+ retrying_test_assert ()
42+ assert caplog .text .count ("Sleeping" ) == 2
43+
44+
45+ # Fail twice then succeed
4046@retry (retry_timeout = 2 , retry_sleep = 0.1 )
4147def retrying_test_string ():
4248 if not hasattr (retrying_test_string , "count" ):
@@ -53,24 +59,71 @@ def test_retry_string(caplog):
5359 assert caplog .text .count ("Sleeping" ) == 2
5460
5561
56- def test_retry_fail (caplog ):
62+ # Succeed twice then fail
63+ @retry (retry_timeout = 2 , retry_sleep = 0.1 )
64+ def retrying_test_fail_first ():
65+ if not hasattr (retrying_test_fail_first , "count" ):
66+ retrying_test_fail_first .count = 0
67+ else :
68+ retrying_test_fail_first .count += 1
69+ if retrying_test_fail_first .count != 2 :
70+ return None
71+ return "count is 2"
72+
73+
74+ def test_retry_expected_fail_first (caplog ):
75+ retrying_test_fail_first (expected = False )
76+ assert caplog .text .count ("Sleeping" ) == 2
77+
78+
79+ def test_retry_expected_fail (caplog ):
5780 @retry (retry_timeout = 1 , retry_sleep = 0.1 )
5881 def retrying_fail ():
5982 return "Fail"
6083
61- retrying_fail (expected = False )
84+ ret = retrying_fail (expected = False )
85+ assert ret == "Fail"
6286 assert caplog .text .count ("Sleeping" ) == 0
6387
6488
65- def test_retry_assert_fail (caplog ):
89+ def test_retry_assert_exception (caplog ):
6690 @retry (retry_timeout = 1 , retry_sleep = 0.2 )
6791 def retrying_assert ():
6892 assert False , "Fail"
6993
7094 try :
71- # Expected does not consider assert an expected failure
95+ # Expected does not consider assert an expected failure by default
7296 retrying_assert (expected = False )
7397 except AssertionError :
74- assert caplog .text .count ("Sleeping" ) == 5
98+ # Should have retried before ultimately failing
99+ assert caplog .text .count ("Sleeping" ) > 0
100+ else :
101+ assert False , "Failed b/c no exception raised"
102+
103+
104+ def test_retry_assert_expected (caplog ):
105+ @retry (retry_timeout = 1 , retry_sleep = 0.2 , assert_is_except = False )
106+ def retrying_assert ():
107+ assert False , "Fail"
108+
109+ # Expected does not consider assert an expected failure by default
110+ ret = retrying_assert (expected = False )
111+ assert isinstance (ret , AssertionError )
112+ assert caplog .text .count ("Sleeping" ) == 0
113+
114+
115+ # Succeed twice then assert
116+ @retry (retry_timeout = 2 , retry_sleep = 0.1 , assert_is_except = False )
117+ def retrying_test_fail_first_assert ():
118+ if not hasattr (retrying_test_fail_first_assert , "count" ):
119+ retrying_test_fail_first_assert .count = 0
75120 else :
76- assert False , "Failed b/c succeeded"
121+ retrying_test_fail_first_assert .count += 1
122+ assert retrying_test_fail_first_assert .count != 2 , "count is 2"
123+
124+
125+ def test_retry_assert_expected_succeed_first (caplog ):
126+ # Expected does not consider assert an expected failure by default
127+ ret = retrying_test_fail_first_assert (expected = False )
128+ assert isinstance (ret , AssertionError )
129+ assert caplog .text .count ("Sleeping" ) == 2
0 commit comments