Solución
solution.tsTypeScript
def make_flaky(success_on: int):
"""Retorna una función que falla las primeras (success_on-1) veces."""
attempts = [0]
def flaky():
attempts[0] += 1
if attempts[0] < success_on:
raise RuntimeError(f"Fallo en intento {attempts[0]}")
return "ok"
return flaky
def retry_call(f, max_attempts: int):
# Intenta llamar a f() hasta max_attempts veces
# Retorna el resultado si tiene éxito, o None si agota los intentos
tries = 0
for attempt in range(max_attempts):
try:
return f()
except Exception as e:
tries += 1
if attempt == max_attempts:
return None
def test_retry(success_on: int, max_attempts: int):
f = make_flaky(success_on)
return retry_call(f, max_attempts)
0respuestas