@@ -39,14 +39,23 @@ 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__retry_after_header_honored_not_inflated (
49+ self , t_mock , retry_policy , error_history
50+ ):
51+ # A small server Retry-After must be honored as-is (capped at delay_max),
52+ # not inflated up to delay_max.
53+ retry_policy ._retry_start_time = time .time ()
54+ retry_policy .history = [error_history , error_history ]
55+ retry_policy .sleep (HTTPResponse (status = 503 , headers = {"Retry-After" : "2" }))
56+
57+ t_mock .assert_called_with (2 )
58+
5059 @patch ("time.sleep" )
5160 def test_sleep__no_retry_after_header__multiple_retries (self , t_mock , retry_policy ):
5261 num_attempts = retry_policy .stop_after_attempts_count
@@ -62,11 +71,8 @@ def test_sleep__no_retry_after_header__multiple_retries(self, t_mock, retry_poli
6271 expected_backoff_times = []
6372 for attempt in range (num_attempts ):
6473 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 ,
74+ self .calculate_backoff_time (
75+ attempt , retry_policy .delay_min , retry_policy .delay_max
7076 )
7177 )
7278
0 commit comments