Valida pub-date "pub" contra hoje e contra collection (#1268) - #1273
Open
Rossi-Luciano wants to merge 1 commit into
Open
Valida pub-date "pub" contra hoje e contra collection (#1268)#1273Rossi-Luciano wants to merge 1 commit into
Rossi-Luciano wants to merge 1 commit into
Conversation
…on (scieloorg#1268) Adiciona duas novas regras em FulltextDatesValidation: pub-date[date-type="pub"] não pode estar no futuro além de uma tolerância em dias, e não pode ser mais de N meses anterior ao ano de pub-date[date-type="collection"]. Ambas as tolerâncias são parametrizáveis via article_dates_rules.json. Resolve o gap relatado na issue: um typo no ano de pub (ex. 2029 em vez de 2026) fazia o OPAC ocultar o artigo silenciosamente, sem gerar erro em nenhuma validação existente.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que esse PR faz?
Adiciona duas novas regras de validação em
FulltextDatesValidation(packtools/sps/validation/dates.py), especificamente parapub-date[@date-type="pub"]:validate_pub_date_not_in_future—pubnão pode estar no futuro além de uma tolerância em dias (pub_date_future_tolerance_days, default0).validate_pub_date_not_too_far_before_collection—pubnão pode ser mais de N meses anterior ao ano depub-date[@date-type="collection"](pub_date_past_collection_tolerance_months, default12).Ambas as tolerâncias são parametrizáveis via
article_dates_rules.json(novas chavespub_date_future_tolerance_days,pub_date_past_collection_tolerance_months, e os respectivos*_error_level, defaultCRITICAL).Coleções retrospectivas (
pubmuito posterior aocollection, mas não no futuro) continuam permitidas — não há checagem que bloqueie esse caso, comportamento coberto por teste de regressão.Também adiciona as mensagens de advice correspondentes aos catálogos de i18n (
pt_BRees).Onde a revisão poderia começar?
packtools/sps/validation/dates.py— métodosvalidate_pub_date_not_in_futureevalidate_pub_date_not_too_far_before_collection, e o registro delas emFulltextDatesValidation.validate().packtools/sps/validation_rules/article_dates_rules.json— novas chaves de configuração.tests/sps/validation/test_dates.py— classeTestPubDateFutureAndCollectionDistanceValidation.Como este poderia ser testado manualmente?
Deve incluir
CRITICAL - pub-date pub not in future - ... must not be later than <hoje>.pytest tests/sps/validation/test_dates.py -vcobre os 8 casos descritos na issue (A–E da tabela), incluindo o cenário exato do bug relatado (pub=2029, collection=2026).Algum cenário de contexto que queira dar?
A issue relata que o artigo
0102-6720-abcd-39-e1948(PIDS0102-67202026000100609) ficou oculto silenciosamente em produção porquepub-date[@date-type="pub"]foi digitado como2029em vez de2026. O OPAC filtra artigos compubno futuro (mecanismo de "data de estreia" agendada), e nenhuma validação existente sinalizava isso — as validações atuais (schematron legado eyear_value/complete_datedo módulo novo) ou não checam valor de data, ou usam tolerâncias amplas (quase 1 ano) que não cobrem todos os casos, e nenhuma comparapubcomcollection.As tolerâncias exatas (dias no futuro / meses no passado) ficam parametrizáveis e usam os defaults sugeridos no pseudocódigo da própria issue; a issue menciona que os valores exatos ainda serão confirmados com a equipe editorial.
Quais são tickets relevantes?
Closes #1268
Referências
Pseudocódigo e tabela de casos de teste vieram diretamente da issue #1268.