fix: aplica transformação de URL no campo 'url' principal#90
Merged
Conversation
O campo 'url' não estava sendo processado pela função _build_file_url(), resultando em URLs completas mesmo com a feature flag REPLACE_FILE_URL_BASE ativada. Apenas o campo 'txt_url' estava sendo transformado corretamente. Alterações: - gazettes/gazette_access.py: aplica _build_file_url() ao campo 'url' - themed_excerpts/themed_excerpt_access.py: aplica _build_file_url() ao campo 'source_url' Testes adicionados: - tests/test_gazette_file_url_builder.py: 13 testes para validar transformação de URLs em gazettes - tests/test_themed_excerpt_file_url_builder.py: 8 testes para validar transformação de URLs em themed excerpts Os testes cobrem todos os cenários: 1. Caminhos relativos (dados novos) 2. URLs completas com substituição de base (migração) 3. URLs completas sem alteração (modo legado) 4. Edge cases (trailing slashes, protocolos diferentes, etc) Closes #XX
diraol
added a commit
that referenced
this pull request
Jan 13, 2026
O campo 'url' não estava sendo processado pela função _build_file_url(), resultando em URLs completas mesmo com a feature flag REPLACE_FILE_URL_BASE ativada. Apenas o campo 'txt_url' estava sendo transformado corretamente. Alterações: - gazettes/gazette_access.py: aplica _build_file_url() ao campo 'url' - themed_excerpts/themed_excerpt_access.py: aplica _build_file_url() ao campo 'source_url' Testes adicionados: - tests/test_gazette_file_url_builder.py: 13 testes para validar transformação de URLs em gazettes - tests/test_themed_excerpt_file_url_builder.py: 8 testes para validar transformação de URLs em themed excerpts Os testes cobrem todos os cenários: 1. Caminhos relativos (dados novos) 2. URLs completas com substituição de base (migração) 3. URLs completas sem alteração (modo legado) 4. Edge cases (trailing slashes, protocolos diferentes, etc) Closes #XX
diraol
added a commit
that referenced
this pull request
Jan 13, 2026
O campo 'url' não estava sendo processado pela função _build_file_url(), resultando em URLs completas mesmo com a feature flag REPLACE_FILE_URL_BASE ativada. Apenas o campo 'txt_url' estava sendo transformado corretamente. Alterações: - gazettes/gazette_access.py: aplica _build_file_url() ao campo 'url' - themed_excerpts/themed_excerpt_access.py: aplica _build_file_url() ao campo 'source_url' Testes adicionados: - tests/test_gazette_file_url_builder.py: 13 testes para validar transformação de URLs em gazettes - tests/test_themed_excerpt_file_url_builder.py: 8 testes para validar transformação de URLs em themed excerpts Os testes cobrem todos os cenários: 1. Caminhos relativos (dados novos) 2. URLs completas com substituição de base (migração) 3. URLs completas sem alteração (modo legado) 4. Edge cases (trailing slashes, protocolos diferentes, etc) Closes #XX
diraol
added a commit
that referenced
this pull request
Jan 13, 2026
O campo 'url' não estava sendo processado pela função _build_file_url(), resultando em URLs completas mesmo com a feature flag REPLACE_FILE_URL_BASE ativada. Apenas o campo 'txt_url' estava sendo transformado corretamente. Alterações: - gazettes/gazette_access.py: aplica _build_file_url() ao campo 'url' - themed_excerpts/themed_excerpt_access.py: aplica _build_file_url() ao campo 'source_url' Testes adicionados: - tests/test_gazette_file_url_builder.py: 13 testes para validar transformação de URLs em gazettes - tests/test_themed_excerpt_file_url_builder.py: 8 testes para validar transformação de URLs em themed excerpts Os testes cobrem todos os cenários: 1. Caminhos relativos (dados novos) 2. URLs completas com substituição de base (migração) 3. URLs completas sem alteração (modo legado) 4. Edge cases (trailing slashes, protocolos diferentes, etc) Closes #XX
diraol
added a commit
that referenced
this pull request
Jan 13, 2026
O campo 'url' não estava sendo processado pela função _build_file_url(), resultando em URLs completas mesmo com a feature flag REPLACE_FILE_URL_BASE ativada. Apenas o campo 'txt_url' estava sendo transformado corretamente. Alterações: - gazettes/gazette_access.py: aplica _build_file_url() ao campo 'url' - themed_excerpts/themed_excerpt_access.py: aplica _build_file_url() ao campo 'source_url' Testes adicionados: - tests/test_gazette_file_url_builder.py: 13 testes para validar transformação de URLs em gazettes - tests/test_themed_excerpt_file_url_builder.py: 8 testes para validar transformação de URLs em themed excerpts Os testes cobrem todos os cenários: 1. Caminhos relativos (dados novos) 2. URLs completas com substituição de base (migração) 3. URLs completas sem alteração (modo legado) 4. Edge cases (trailing slashes, protocolos diferentes, etc) Closes #XX
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.
🐛 Problema Identificado
A feature flag
REPLACE_FILE_URL_BASEnão estava funcionando em produção. Os resultados da API ainda retornavam URLs completas com o domínio antigo, mesmo com a flag habilitada.Causa Raiz
No commit #86, a função
_build_file_url()foi implementada mas só estava sendo aplicada ao campotxt_url. O campo principalurlcontinuava sendo retornado diretamente do banco de dados sem transformação.✅ Correções Implementadas
Arquivos modificados:
gazettes/gazette_access.py: Aplica_build_file_url()ao campourlthemed_excerpts/themed_excerpt_access.py: Aplica_build_file_url()ao camposource_urlComportamento após a correção:
Quando configurado com:
Ambos os campos
urletxt_urlserão transformados:🧪 Testes Adicionados
Foram criados 21 novos testes para evitar regressão:
tests/test_gazette_file_url_builder.py(13 testes)_assemble_gazette_objecttests/test_themed_excerpt_file_url_builder.py(8 testes)🔍 Validação
Ran 67 tests in 0.317s OK (expected failures=1)✅ Todos os 46 testes existentes + 21 novos testes passando
📝 Checklist
🚀 Deploy
Após o merge e deploy, a API retornará URLs com o CDN configurado em
QUERIDO_DIARIO_FILES_ENDPOINTquandoREPLACE_FILE_URL_BASE=true.