Skip to content

Corrige falhas que impedem a coleta dos testes - #1472

Merged
pitangainnovare merged 2 commits into
scieloorg:mainfrom
pitangainnovare:corrige-coleta-de-testes
Sep 1, 2026
Merged

Corrige falhas que impedem a coleta dos testes#1472
pitangainnovare merged 2 commits into
scieloorg:mainfrom
pitangainnovare:corrige-coleta-de-testes

Conversation

@pitangainnovare

Copy link
Copy Markdown
Contributor

O que esse PR faz?

Corrige falhas que impediam o pytest de concluir a coleta da suíte de testes.

As alterações:

  • removem article/tests.py, arquivo legado cujos testes foram redistribuídos entre os pacotes atuais;
  • removem organization/tests.py, cuja versão atualizada já está em organization/tests/tests.py;
  • atualizam issue/tests.py para utilizar a API atual de criação de fascículos;
  • substituem o campo removido scielo_issn por pid na criação de AMJournal.

Onde a revisão poderia começar?

A revisão pode começar pelos arquivos removidos:

  • article/tests.py;
  • organization/tests.py.

Em seguida, revisar as adaptações em:

  • issue/tests.py.

O primeiro arquivo era um conjunto legado já redistribuído entre article/tests/test_models.py, article/tests/test_tasks.py e organization/tests/test_normaff.py.

O segundo continha os mesmos testes mantidos em organization/tests/tests.py, mas com imports e dados desatualizados.

Como este poderia ser testado manualmente?

  1. Construir os serviços:

    docker compose -f local.yml build
  2. Verificar a coleta da suíte completa:

    docker compose -f local.yml run --rm django pytest --collect-only -q

    A coleta deve terminar sem conflitos entre módulos tests.py e pacotes tests, nem erros de importação.

  3. Executar os testes diretamente afetados:

    docker compose -f local.yml run --rm django pytest article/tests organization/tests issue/tests.py

    Resultado obtido localmente:

    123 passed, 1 skipped
    

Algum cenário de contexto que queira dar?

Os erros já existiam na branch main, mas estavam ocultos porque o workflow interrompia sua execução antes de iniciar o pytest.

Após a atualização do workflow para Docker Compose v2, cinco erros de coleta ficaram visíveis. Os dois relacionados aos testes antigos de pid_provider já haviam sido corrigidos anteriormente. Este PR trata os três erros restantes.

A coleta global foi validada localmente com 498 testes encontrados e nenhum erro de coleta.

Screenshots

Não se aplica. As alterações são restritas à suíte de testes e não modificam interfaces gráficas.

Quais são os tickets relevantes?

Resolve #1463.

Referências


Segurança da informação (NSI.04)

Seção obrigatória. Marque as opções aplicáveis e justifique quando necessário. Referência: NSI.04 - Norma de Desenvolvimento Seguro.

Este PR manipula dados sensíveis ou pessoais (LGPD)?

  • Sim — descreva os controles de proteção aplicados (criptografia, mascaramento, anonimização, etc.):
  • Não

Este PR altera autenticação, autorização, controle de acesso ou gerenciamento de sessão?

  • Sim — descreva o que mudou e por quê:
  • Não

Este PR introduz, atualiza ou remove dependências de terceiros?

  • Sim — as novas dependências foram verificadas no SBOM/Trivy sem vulnerabilidades críticas/altas em aberto?
    • Verificado e aprovado
    • Pendente / vulnerabilidade aceita com justificativa:
  • Não

Este PR foi validado pelo pipeline de segurança (SonarQube / Trivy)?

  • Sim — link do job:
  • Não aplicável a este PR (justifique): alterações restritas à organização e atualização da suíte de testes, sem mudanças no código de produção ou nas dependências.

Este PR concatena, monta ou executa comandos SQL, HTML ou JavaScript a partir de entrada externa?

  • Sim — confirme que há sanitização/parametrização (prepared statements, escaping, etc.):
  • Não

Este PR expõe novos endpoints, telas ou serviços?

  • Sim — HTTPS obrigatório está garantido e o acesso segue o princípio de menor privilégio?
  • Não

Algum segredo, senha, chave ou token está sendo adicionado ao código-fonte?

  • Não, nenhum segredo foi commitado
  • Sim (bloquear merge e corrigir antes de prosseguir)

Os testes de article foram redistribuídos entre article/tests e organization/tests. O arquivo antigo não era uma cópia literal de um único módulo, mas suas classes já possuem correspondentes na estrutura atual.

Em organization, a versão mantida no pacote contém os mesmos testes do arquivo antigo, além de imports e dados corrigidos.

A remoção evita os conflitos entre os módulos tests.py e os pacotes tests durante a coleta do pytest.
A função get_or_create_issue não existe mais. O teste passa a extrair os dados recebidos, criar ou localizar o fascículo por Issue.get_or_create e adicionar suas seções separadamente.

A criação de AMJournal também passa a utilizar o campo pid, que substituiu scielo_issn no modelo atual.

Essas atualizações restauram a coleta e a execução dos testes de issue.
@pitangainnovare
pitangainnovare merged commit de3ca5c into scieloorg:main Sep 1, 2026
3 of 5 checks passed
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.

Corrigir falhas legadas que impedem a coleta da suíte de testes pelo pytest

2 participants