Skip to content

refactor: unify manager patterns and remove duplicated code#5

Merged
miguellsfilho merged 1 commit intofeat/active-field-agenciesfrom
refactor/managers-consistency
Feb 27, 2026
Merged

refactor: unify manager patterns and remove duplicated code#5
miguellsfilho merged 1 commit intofeat/active-field-agenciesfrom
refactor/managers-consistency

Conversation

@nitaibezerra
Copy link
Contributor

Summary

Follow-up do PR #4 para resolver inconsistências identificadas na revisão:

  • ScrapeManager agora usa tuplas (agency_name, scraper) como EBCScrapeManager, garantindo que agencies_processed retorne nomes das chaves YAML de forma consistente em ambos os endpoints
  • get_config_dir() extraído para yaml_config.py, removendo duplicação de _get_config_dir() em ambos managers
  • test_scrape_manager.py vazio removido (os testes foram movidos para test_yaml_config.py no commit anterior)
  • Testes adicionados para get_config_dir()

Arquivos modificados

Arquivo Mudança
src/govbr_scraper/scrapers/yaml_config.py Adicionada get_config_dir()
src/govbr_scraper/scrapers/scrape_manager.py Usa tuplas + importa get_config_dir
src/govbr_scraper/scrapers/ebc_scrape_manager.py Importa get_config_dir, remove _get_config_dir
tests/unit/test_scrape_manager.py Deletado (vazio)
tests/unit/test_yaml_config.py Adicionados testes para get_config_dir

Test plan

  • poetry run pytest tests/unit/ -v31 testes passando

🤖 Generated with Claude Code

- ScrapeManager now uses (agency_name, scraper) tuples like EBCScrapeManager,
  ensuring agencies_processed returns YAML keys consistently across both endpoints
- Extract get_config_dir() to yaml_config.py, removing duplication from both managers
- Delete empty test_scrape_manager.py (tests were moved to test_yaml_config.py)
- Add tests for get_config_dir()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@miguellsfilho miguellsfilho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review - PR #5

Revisei as mudanças propostas e aprovo este PR. Segue minha análise:

Pontos Positivos

  1. Remoção de duplicação: A função _get_config_dir() estava duplicada em scrape_manager.py e ebc_scrape_manager.py. Extrair para yaml_config.py como get_config_dir() é a abordagem correta.

  2. Unificação de padrões: ScrapeManager agora usa tuplas (agency_name, scraper) consistente com EBCScrapeManager. Isso garante que agencies_processed retorne os mesmos tipos de valores em ambos os endpoints.

  3. Fonte de verdade: Usar a chave YAML (agency_name) em vez de scraper.agency é mais confiável - evita dependência da estrutura da URL e mantém consistência com a configuração.

  4. Testes adequados: Os testes para get_config_dir() cobrem os casos necessários.

  5. Limpeza de código: Remoção do arquivo de teste vazio é apropriada.

Ressalva Menor

O commit inclui Co-Authored-By: Claude Opus 4.6, mas o CLAUDE.md do projeto indica que commits não devem incluir co-autoria do Claude. Para PRs futuros, considere remover essa linha. Não é blocker para este PR.

Verificação

  • Mudanças são tecnicamente corretas
  • Base branch correta (feat/active-field-agencies)
  • Testes passando (31 testes)

LGTM! 👍

@miguellsfilho miguellsfilho merged commit c68f2ea into feat/active-field-agencies Feb 27, 2026
@miguellsfilho miguellsfilho deleted the refactor/managers-consistency branch February 27, 2026 13:08
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.

2 participants