Skip to content

Reduz a duplicação nos steps do pytest-bdd - #33

Merged
ThomasTDS merged 1 commit into
masterfrom
refactor/steps-sem-duplicacao
Oct 2, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
refactor/steps-sem-duplicacao

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

Resumo

  • Payloads crus: os 5 payloads montados à mão viram _booking_payload(), que parte do booking padrão e troca só o campo do cenário (totalprice="nao-e-numero", without="firstname" etc.). Os steps de PUT com payload inválido também passam a usá-la
  • Criação crua: _create_raw() envia o payload e guarda o bookingid para a limpeza. Só registra o id quando a resposta é 200, então também atende o TC-015, que recebe 500 sem JSON
  • Steps idênticos: "remove" e "tenta remover", e "atualiza parcialmente" e "tenta atualizar parcialmente", compartilham a mesma função com dois decorators
  • Context: ganha as propriedades response, que falha com mensagem clara se nenhuma requisição foi feita, e token_or_empty. Elas substituem as 25 repetições de assert context.last_response is not None e as 11 de context.token or ""
  • Os arquivos .feature não mudam. O arquivo de steps passa de 408 para 356 linhas

Os payloads inválidos agora incluem additionalneeds, que antes não era enviado nesses casos. É um campo opcional, e os cenários continuam verificando o mesmo comportamento.

Test plan

  • mypy .
  • ruff check .
  • ruff format --check .
  • pytest: 52/52 testes passando contra a API real, incluindo TC-011 e TC-012, que usam os steps unidos

Os payloads crus partem do booking padrão com sobrescrita de campos, a criação crua com registro do id para limpeza vira um helper, steps com corpo idêntico passam a compartilhar a função, e o Context ganha os atalhos response e token_or_empty. Os arquivos .feature não mudam.
@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 afc58e3 into master Oct 2, 2026
7 checks passed
@ThomasTDS
ThomasTDS deleted the refactor/steps-sem-duplicacao 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