@@ -39,14 +39,21 @@ def test_sleep__no_retry_after(self, t_mock, retry_policy, error_history):
3939 retry_policy .history = [error_history , error_history ]
4040 retry_policy .sleep (HTTPResponse (status = 503 ))
4141
42- expected_backoff_time = max (
43- self .calculate_backoff_time (
44- 0 , retry_policy .delay_min , retry_policy .delay_max
45- ),
46- retry_policy .delay_max ,
42+ expected_backoff_time = self .calculate_backoff_time (
43+ 0 , retry_policy .delay_min , retry_policy .delay_max
4744 )
4845 t_mock .assert_called_with (expected_backoff_time )
4946
47+ @patch ("time.sleep" )
48+ def test_sleep__short_retry_after_is_not_inflated (self , t_mock , retry_policy ):
49+ # A small server Retry-After must be honored as-is (delay_max is a
50+ # ceiling, not a floor). delay_max defaults to 30 in these fixtures.
51+ retry_policy ._retry_start_time = time .time ()
52+ retry_policy .history = []
53+ retry_policy .sleep (HTTPResponse (status = 503 , headers = {"Retry-After" : "2" }))
54+
55+ t_mock .assert_called_with (2 )
56+
5057 @patch ("time.sleep" )
5158 def test_sleep__no_retry_after_header__multiple_retries (self , t_mock , retry_policy ):
5259 num_attempts = retry_policy .stop_after_attempts_count
@@ -62,11 +69,8 @@ def test_sleep__no_retry_after_header__multiple_retries(self, t_mock, retry_poli
6269 expected_backoff_times = []
6370 for attempt in range (num_attempts ):
6471 expected_backoff_times .append (
65- max (
66- self .calculate_backoff_time (
67- attempt , retry_policy .delay_min , retry_policy .delay_max
68- ),
69- retry_policy .delay_max ,
72+ self .calculate_backoff_time (
73+ attempt , retry_policy .delay_min , retry_policy .delay_max
7074 )
7175 )
7276
0 commit comments