Skip to content

Divide os steps do pytest-bdd em um módulo por feature - #35

Merged
ThomasTDS merged 1 commit into
masterfrom
refactor/steps-por-dominio
Oct 2, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
refactor/steps-por-dominio

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

Resumo

  • steps/test_booking_steps.py (356 linhas) vira um módulo por feature, cada um com seu scenarios("../features/<feature>.feature") e só os steps dele: test_auth.py, test_create_booking.py, test_get_booking.py, test_update_booking.py e test_delete_booking.py
  • steps/common_steps.py: steps usados por mais de uma feature (os três de token, "que existe um booking criado", 403 e 405). Fica registrado para todos os módulos via pytest_plugins no conftest.py da raiz
  • steps/booking_data.py: default_booking() e booking_payload(), agora com nomes públicos porque são importados por mais de um módulo
  • O corpo dos steps não muda; eles só trocam de arquivo. Os .feature também não mudam
  • README: a árvore de pastas detalha a nova organização de steps/

Os nomes dos testes no relatório mudam de steps/test_booking_steps.py::... para steps/test_<feature>.py::....

Test plan

  • mypy .
  • ruff check .
  • ruff format --check .
  • pytest: 53/53 testes passando (26 cenários BDD contra a API real e 27 unitários)
  • Nenhum step definido em mais de um arquivo
  • Contagem por módulo bate com os .feature: auth 2, create 6, get 3, update 12, delete 3

Cada arquivo .feature passa a ter seu test_<feature>.py, com os steps exclusivos dele. Os steps usados por mais de uma feature ficam em steps/common_steps.py, registrado via pytest_plugins no conftest, e os dados de teste em steps/booking_data.py.
@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 a04f96b into master Oct 2, 2026
7 checks passed
@ThomasTDS
ThomasTDS deleted the refactor/steps-por-dominio 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