Skip to content

test:adiciona testes unitários clientes_deputados#338

Open
JoaoGuilherme14 wants to merge 536 commits into
GovHub-br:mainfrom
JoaoGuilherme14:joaoguilherme14-feature/cliente_deputados
Open

test:adiciona testes unitários clientes_deputados#338
JoaoGuilherme14 wants to merge 536 commits into
GovHub-br:mainfrom
JoaoGuilherme14:joaoguilherme14-feature/cliente_deputados

Conversation

@JoaoGuilherme14

Copy link
Copy Markdown

Objetivo:

Implementação da suíte completa de testes unitários automatizados para a classe ClienteDeputados, validação rigorosa das lógicas de paginação e resiliência no tratamento de falhas da API de Dados Abertos da Câmara dos Deputados.

1 - Criação de Fixtures/Helpers Reutilizáveis:

  • Implementação de funções auxiliares _make_page_data e _extract_dados para centralizar a geração de mocks estruturados. Isso mantém os testes limpos e padroniza a simulação das respostas paginadas da Câmara.

2 -Testes Base e de Extração Simples get_deputados:

  • Validação de atributos de inicialização BASE_URL, PAGE_SIZE.
  • Verificação do "caminho feliz", garantindo a extração correta de propriedades essenciais (ID, Nome, Partido, UF) e envio correto de parâmetros HTTP (kwargs).

3 - Cobertura Extensiva de Paginação::

  • get_all_deputados: Testes focados no loop de paginação infinita, validando a quebra correta ao receber páginas parciais (tamanho < PAGE_SIZE), listas vazias ou retornos nulos. Verificada também a injeção estrita do parâmetro dataInicio="1823-01-01".
  • get_deputados_atuais: Testes garantindo o comportamento crítico que difere da busca histórica: a ausência do parâmetro dataInicio e a distinção clara entre "fim dos dados" (lista vazia) e "falha da API" (retorno None, que deve abortar o snapshot em andamento).
  • Validação de concatenação para assegurar que a ordem dos registros se mantém fiel à paginação.

4 - Tratamento de Edge Cases e Estruturas Dinâmicas get_historico_deputado:

  • Cobertura da particularidade do endpoint de histórico, que pode retornar tanto uma lista (várias legislaturas) quanto um dicionário único. Os testes garantem que o cliente empacota o dicionário único em uma lista padronizada.
  • Validação de passagens de parâmetros híbridos deputado_id como int ou str.

5 - Validação de Comportamento e Logs:

  • Implementação do context manager assertLogs para garantir que o sistema não apenas falhe graciosamente retornando None ou [], mas também emita os logging.warning e logging.error corretos em situações de API indisponível, retornos de erro ou HTMLs de timeout.
    Resolves test: Testes unitarios para cliente_deputados.py #310

marcusmartinss and others added 30 commits September 19, 2025 14:26
feat(docker): adiciona driver do postgres no superset
…ab-para-github

Migração de pipeline para github
…s-fora

bug: retira servidores fora do orgao
…cs_pfs

feat: altera a ingestão de ncs e pfs de teds para usar o id do plano de ação ao invés da UG emitente
Quebra dos schemas para modularização
TiagoSBittencourt and others added 27 commits May 6, 2026 00:00
Co-authored-by: Luana Carvalho <125318146+luanaa2005@users.noreply.github.com>
…conv

chore: garante fechamento de db conn nas dags do SICONV e de Parlamentares
…conv

feat: adiciona camada silver SICONV com extração de número de transferência e cruzamento emendas parlamentares x convênios
…e armazenamento no schema censo_demografico. (GovHub-br#241)

* feat: Implementa extração via FTP, flattening de planilhas dinâmicas e armazenamento no schema censo_demografico.

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* feat: Finaliza pipeline de ingestão e flattening do Censo Demográfico

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: Resolve SonarQube warnings in cliente_ibge e mulheres_ingest_dag; Remove o openpyxl dos requirements

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: Resolve SonarQube warnings in cliente_ibge e mulheres_ingest_dag

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: reverter para FTP simples no cliente_ibge.py

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: reverter para FTP simples no cliente_ibge.py

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: corrige sintaxe da flag #NOSONAR

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* fix: Revertendo credenciais do FTP; Removendo modelos do DBT

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

* feat: Adiciona openpyxl nos requirements

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>

---------

Co-authored-by: Rafael Matuda <rafael.matuda10@gmail.com>
fix: sources realocado corretamente corrige cosmos bug
Co-authored-by: Letícia Hladczuk <leticia.cassia.hr@gmail.com>
Co-authored-by: Letícia Hladczuk <leticia.cassia.hr@gmail.com>
…mendas

feat: adiciona localizador de gasto e região PT nas camadas de emendas MIR
…e_contribuicao

revert: desfaz CONTRIBUTING.md adicionado incorretamente
…convenio

feat: cruzamento das tabelas de proposta e convenio
…s domicílios (GovHub-br#287)

* feat(ibge): pipeline FTP Censo 2022 quilombolas alfabetização e domicílios

* fix(ibge): corrige ReDoS no parser quilombolas e PK/upsert no Postgres
@sonarqubecloud

sonarqubecloud Bot commented Jun 3, 2026

Copy link
Copy Markdown

@JoaoGuilherme14 JoaoGuilherme14 changed the title feat:adiciona testes unitários clientes_deputados test:adiciona testes unitários clientes_deputados Jun 3, 2026
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.

test: Testes unitarios para cliente_deputados.py