Skip to content

Commit bd4f749

Browse files
fix: retry all 5xx status code errors (#452)
Fixes: codecov/engineering-team#1709 Signed-off-by: joseph-sentry <joseph.sawaya@sentry.io>
1 parent 7432bad commit bd4f749

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

codecov_cli/helpers/request.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ def wrapper(*args, **kwargs):
5757
while retry < MAX_RETRIES:
5858
try:
5959
response = func(*args, **kwargs)
60-
if response.status_code == 502:
60+
if response.status_code >= 500:
6161
logger.warning(
62-
"Response status code was 502.",
62+
f"Response status code was {response.status_code}.",
6363
extra=dict(extra_log_attributes=dict(retry=retry)),
6464
)
6565
raise RetryException

tests/helpers/test_upload_sender.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,19 +306,21 @@ def test_upload_sender_result_fail_post_400(
306306

307307
assert sender.warnings is not None
308308

309-
def test_upload_sender_result_fail_post_502(
310-
self, mocker, mocked_responses, mocked_legacy_upload_endpoint, capsys
309+
310+
@pytest.mark.parametrize("error_code", [500, 502])
311+
def test_upload_sender_result_fail_post_500s(
312+
self, mocker, mocked_responses, mocked_legacy_upload_endpoint, capsys, error_code
311313
):
312314
mocker.patch("codecov_cli.helpers.request.sleep")
313-
mocked_legacy_upload_endpoint.status = 502
315+
mocked_legacy_upload_endpoint.status = error_code
314316

315317
with pytest.raises(Exception, match="Request failed after too many retries"):
316318
_ = UploadSender().send_upload_data(
317319
upload_collection, random_sha, random_token, **named_upload_data
318320
)
319321

320322
matcher = re.compile(
321-
r"(warning.*((Response status code was 502)|(Request failed\. Retrying)).*(\n)?){6}"
323+
rf"(warning.*((Response status code was {error_code})|(Request failed\. Retrying)).*(\n)?){{6}}"
322324
)
323325

324326
assert matcher.match(capsys.readouterr().err) is not None

0 commit comments

Comments
 (0)