Skip to content

Testes desatualizados/quebrados em tests/sps/formats (módulo inexistente, mensagem de erro divergente, fixture sem cobertura) #1217

@Rossi-Luciano

Description

@Rossi-Luciano

Descrição

Durante a execução de tests/sps/formats, foram identificados testes que estão desatualizados em relação ao código atual (não relacionados aos bugs funcionais já reportados separadamente).

1. Módulo inexistente: packtools.sps.formats.pdf.utils.docx_utils

tests/sps/formats/pdf/utils/test_docx_utils.py faz:

from packtools.sps.formats.pdf.utils import docx_utils

mas packtools/sps/formats/pdf/utils/ contém apenas file_utils.py, request_utils.py e xml_utils.py. Esse módulo docx_utils não existe, causando erro de coleção:

ImportError: cannot import name 'docx_utils' from 'packtools.sps.formats.pdf.utils'

Isso interrompe a coleção de toda a suíte tests/sps/formats quando rodada sem --ignore.

2. Mensagem de exceção desatualizada em test_oai_dc_agris.py

test_xml_oai_dc_agris_title_pipe_without_title espera:

self.assertEqual(str(context.exception),
                 "Unable to add title 'NoneType' object has no attribute 'strip'")

mas a implementação atual de xml_oai_dc_agris_title_pipe levanta:

"Unable to add title 'NoneType' object is not subscriptable"

A lógica interna mudou (de .strip() para acesso por índice/chave) e a mensagem esperada no teste não foi atualizada.

3. test_xml_oai_dc_relation não encontra <related-article> filho direto de <article>

test_xml_oai_dc.py::TestPipelineOaiDc::test_xml_oai_dc_relation usa um XML de fixture com <related-article> como filho direto de <article> (fora de front/body/back/sub-article). A função xml_oai_dc_relation usa RelatedItems(xml_tree).related_articles (modelo deprecated em packtools/sps/models/related_articles.py), que itera via get_parent_context, e não retorna nada para esse XML — resultando em <metadata/> vazio em vez do <dc:relation> esperado.

Não está claro se o problema é:

  • a fixture do teste não refletir uma estrutura SPS real (related-article normalmente fica dentro de front-stub/body/back), ou
  • o modelo deprecated RelatedItems ter uma lacuna de cobertura que xml_oai_dc_relation ainda depende.

Como reproduzir

.venv/bin/python -m pytest tests/sps/formats -q --ignore=tests/sps/formats/pdf/utils/test_docx_utils.py
FAILED tests/sps/formats/test_oai_dc.py::TestPipelineOaiDc::test_xml_oai_dc_relation
FAILED tests/sps/formats/test_oai_dc_agris.py::TestPipelineOaiDcAgris::test_xml_oai_dc_agris_title_pipe_without_title

Sugestão

  • Item 1: criar o módulo docx_utils.py com as funções esperadas pelo teste (get_first_section, etc.) ou remover/atualizar o teste se a funcionalidade foi movida/removida.
  • Item 2: atualizar a string esperada no teste para refletir a mensagem atual, ou ajustar xml_oai_dc_agris_title_pipe para preservar a mensagem original (decidir qual é o comportamento desejado).
  • Item 3: revisar se a fixture do teste deve usar uma estrutura SPS válida (related-article dentro de body/back) ou se RelatedItems/xml_oai_dc_relation precisam ser ajustados para cobrir related-article no nível do artigo.

Contexto

Identificado durante revisão/execução da suíte tests/sps/formats (conversores de formato).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions