Skip to content

Restringe o retry automático a falhas de rede - #29

Merged
ThomasTDS merged 1 commit into
masterfrom
chore/retry-so-erros-de-rede
Oct 2, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
chore/retry-so-erros-de-rede

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

Resumo

  • Nova opção only_rerun no pyproject.toml: o --reruns 1 passa a valer só para testes que falham por ConnectionError, ConnectTimeout ou ReadTimeout
  • Antes, qualquer falha era repetida, inclusive de asserção e de schema. Um bug intermitente da API podia falhar na primeira tentativa, passar na segunda e nunca ser notado
  • O plugin compara o tipo e a mensagem de toda a cadeia de exceções, então erros do requests que vêm encadeados de exceções do urllib3 também são reconhecidos
  • Na prática, os testes unitários nunca são repetidos, porque não fazem chamadas de rede
  • Limite conhecido: um 503 do Heroku chega como resposta HTTP, não como erro de rede, e não é repetido
  • README atualizado no item de retry

Test plan

  • Testes descartáveis (fora do repositório) com a configuração do projeto: erro de conexão e ReadTimeout foram repetidos; falha de asserção e ValueError falharam direto, sem rerun
  • pytest: 52/52 testes passando
  • ruff, ruff format e mypy sem alterações (nenhum arquivo Python mudou)

O pytest-rerunfailures passa a repetir só testes que falham por ConnectionError, ConnectTimeout ou ReadTimeout. Falhas de asserção ou de schema não são mais repetidas, para que um bug intermitente da API não passe na segunda tentativa.
@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ThomasTDS
ThomasTDS merged commit 1a39406 into master Oct 2, 2026
5 checks passed
@ThomasTDS
ThomasTDS deleted the chore/retry-so-erros-de-rede branch October 2, 2026 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant