Criar função para completar pub-date com valores padrão#1041
Draft
Criar função para completar pub-date com valores padrão#1041
Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add function to complete pub-date with default values
Criar função para completar pub-date com valores padrão
Oct 7, 2025
Rossi-Luciano
approved these changes
Nov 21, 2025
Collaborator
Rossi-Luciano
left a comment
There was a problem hiding this comment.
Revisão Técnica - PR #1041
Verificação de Requisitos
Realizei revisão completa da implementação conforme especificação:
| Requisito | Status | Observação |
|---|---|---|
Assinatura: complete_pub_date(xmltree, default_day=15, default_month=6) |
[OK] | Conforme especificado |
Processar pub-type='pub' ou publication-format='electronic' |
[OK] | XPath correto implementado |
Adicionar <month> quando ausente |
[OK] | Implementado com default_month |
Adicionar <day> quando ausente |
[OK] | Implementado com default_day |
Validar default_day (1-31) e default_month (1-12) |
[OK] | Lanca ValueError adequadamente |
| Manter ordem: year -> month -> day | [OK] | Insercao posicional correta |
Retornar lista com xpath, element_added, value |
[OK] | Estrutura de retorno conforme |
| Nao modificar elementos existentes | [OK] | Apenas adiciona quando ausente |
Localizacao: /packtools/sps/utils/xml_fixer.py |
[OK] | Arquivo no local correto |
| Docstring completa com exemplos | [OK] | Documentacao em portugues com 3 exemplos |
| Cobertura de testes | [OK] | 12 testes implementados |
Execução dos Testes
Comando executado:
python3 -m unittest tests.sps.utils.test_xml_fixer -vResultado:
test_complete_pub_date_already_complete ............................ ok
test_complete_pub_date_custom_defaults ............................. ok
test_complete_pub_date_ignores_other_pub_types ..................... ok
test_complete_pub_date_invalid_day ................................. ok
test_complete_pub_date_invalid_month ............................... ok
test_complete_pub_date_multiple_pub_dates .......................... ok
test_complete_pub_date_no_year ..................................... ok
test_complete_pub_date_only_year ................................... ok
test_complete_pub_date_preserves_other_elements .................... ok
test_complete_pub_date_with_publication_format_electronic .......... ok
test_complete_pub_date_xpath_in_changes ............................ ok
test_complete_pub_date_year_and_month .............................. ok
----------------------------------------------------------------------
Ran 12 tests in 0.007s
OK
Cobertura de Testes
Os testes cobrem todos os cenários especificados:
- [PASS] pub-date completo (não deve modificar)
- [PASS] Apenas
<year>presente - [PASS]
<year>e<month>presentes - [PASS] Diferentes
pub-types(deve ignorar tipos não especificados) - [PASS] Validação de valores inválidos (day e month)
- [PASS] Valores personalizados (
default_dayedefault_month) - [PASS] Múltiplos elementos
pub-date - [PASS] Elemento sem
<year>(deve ignorar) - [PASS] Preservação de outros elementos (ex:
<season>) - [PASS] Suporte a
publication-format='electronic' - [PASS] XPath no retorno das mudanças
Conclusão
Status: APROVADO
A implementação atende 100% dos requisitos especificados:
- Código limpo e bem estruturado
- Validações robustas
- Documentação completa em português
- 12/12 testes passando
Revisado por: @Rossi-Luciano
Data: 2024-11-21
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.
Descrição
Implementa a função
complete_pub_dateque completa automaticamente elementospub-dateincompletos com valores padrão para dia e mês, garantindo que todos os artigos tenham datas de publicação completas e válidas.Motivação
Durante o processo de migração, muitos artigos possuem elementos
pub-dateincompletos, contendo apenas o ano ou ano e mês. Esta função automatiza o preenchimento dessas datas com valores padrão configuráveis, facilitando o processo de migração e garantindo a conformidade com o schema SciELO Publishing Schema (SPS).Mudanças Implementadas
Nova Função:
complete_pub_dateLocalização:
/packtools/sps/utils/xml_fixer.pyAssinatura:
Funcionalidades:
pub-datecompub-type='pub'oupublication-format='electronic'<month>quando ausente (valor padrão: 6)<day>quando ausente (valor padrão: 15)default_dayestá entre 1-31 edefault_monthentre 1-12Exemplo de Uso
Antes:
Código:
Após:
Testes
Implementados 12 testes abrangentes cobrindo:
publication-format='electronic'Resultado: Todos os 12 testes passando ✅
Documentação
A função possui docstring completa em português com:
Referências
Fixes #[issue-number]
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.