Skip to content

Mensagem de validação de <comment> em referências não identifica a referência (@id) com o problema #1341

Description

@Rossi-Luciano

Descrição do problema

ReferenceValidation.validate_comment_is_required_or_not() (packtools/sps/validation/references.py:204) não
passa message_text/message_params para build_response(). Como resultado, o campo message (usado pelo
spsvalidator para exibir a linha principal do problema) cai no fallback padrão de build_response -
"Got {obtained}, expected {expected}" - que mostra apenas os trechos de XML envolvidos (ex.:
<comment></comment><ext-link .../>), sem indicar a qual referência (@id) esse trecho pertence.

A informação do @id da referência já está disponível em self.info (propriedade que monta
f'{ref} ({publication_type})' a partir de self.data.get("ref_id")), e é usada hoje apenas como prefixo do
campo advice/adv_text (texto de "como corrigir"), não do campo message/msg_text (texto do "o que está
errado").

Quando um documento tem várias referências com o mesmo tipo de problema de <comment>, não é possível
localizar no XML qual <ref id="..."> corresponde a qual ocorrência reportada.

Passos para reproduzir o problema

  1. Validar um XML com duas ou mais referências que disparem validate_comment_is_required_or_not (ex.:
    <ext-link> sem <comment> envolvendo texto anterior).
  2. Observar que a mensagem principal de cada ocorrência mostra apenas o XML esperado/obtido, sem o @id da
    referência.

Comportamento esperado

Incluir o @id (ou self.info) também no message_text/message_params passado a build_response(), para
que a mensagem principal (não só o advice) identifique a referência com o problema.

Classificação (esforço / risco / relevância)

  • Esforço: Baixo - adicionar message_text/message_params reaproveitando self.info, já calculado.
  • Risco: Baixo - é aditivo ao conteúdo da mensagem, não altera a lógica de validação (is_valid/
    error_level).
  • Relevância: Baixa - não é falso positivo/negativo, é uma melhoria de usabilidade/depuração.

Referências

  • Reportado originalmente em Validação: Referências spsvalidator#52
  • Código relevante: packtools/sps/validation/references.py
    (ReferenceValidation.validate_comment_is_required_or_not, ReferenceValidation.info),
    packtools/sps/validation/utils.py (build_response)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions