From f92eaa6f8526be87534cec73c605ea56c045259b Mon Sep 17 00:00:00 2001 From: Rossi-Luciano Date: Sun, 16 Aug 2026 21:42:00 -0300 Subject: [PATCH] chore: sincroniza bounds de setup.py/tox.ini com o que foi testado (fase 8, #1251) Fase 8, ultima da estrategia de atualizacao de dependencias: sincroniza os pisos soltos de setup.py e tox.ini com as versoes ja validadas nas fases 1-7, e corrige um bug real na descoberta de testes do tox.ini. ## setup.py INSTALL_REQUIRES atualizado para os pisos testados: aiohttp>=3.14.3, langcodes>=3.5.1, Pillow>=12.3.0 (antes sem NENHUM piso), requests >=2.34.2, python-docx>=1.2.0, tenacity>=8.5.0. TESTS_REQUIRE: python-magic>=0.4.27 (antes sem piso). lxml (fase 4, PR #1283) e charset-normalizer em TESTS_REQUIRE (fase 5, PR #1284) NAO foram tocados aqui de proposito -- ja tem PR proprio em andamento, evita conflito/duplicacao. ## tox.ini - Fator lxml492 mantido (tambem pertence ao #1283). - charset-normalizer<3.0 -> charset-normalizer (sem cap), mesma correcao da fase 5 que faltou aplicar em tox.ini na epoca. - scielo_scholarly_data fixado em @v0.1.4, mesma correcao da fase 7 (PR #1286) que faltou aplicar em tox.ini na epoca. ## Correcao real encontrada durante a investigacao (nao e sobre Pillow) Investigando a fundo antes de aplicar a mudanca, descobri que a premissa que eu vinha carregando desde a fase 1 -- "Pillow sem piso em setup.py e a causa raiz das falhas do tox" -- estava ERRADA. Comparando a lista completa de falhas do tox com o baseline do pytest, elas sao exatamente as mesmas 40 falhas pre-existentes (ja documentadas na #1276), so contadas de forma diferente entre pytest e unittest. A causa real dos "23 failures + 19 errors" (42, nao 40) e um bug separado, sem relacao com nenhuma dependencia: "python -m unittest -vvv" sem argumentos faz descoberta ampla a partir da raiz do projeto e tenta importar packtools/sps/sps_versions/sps-1.9 e sps-1.10 (pacotes de dados de configuracao legitimos, com hifen no nome) como se fossem modulos de teste, gerando 2 ERROR espurios (unittest.loader._FailedTest / ModuleNotFoundError). Corrigido trocando o comando para "python -m unittest discover -s tests -t . -vvv", restringindo a descoberta ao diretorio tests/ (o que "python setup.py test" ja fazia antes, via test_suite='tests' em setup.py -- esse comportamento se perdeu na migracao mencionada no comentario ao lado do comando antigo). ## Validacao Rodei o tox completo (nao so unittest local) antes e depois da correcao do comando: - Antes: Ran 5975 tests, failures=23, errors=19 (incluindo os 2 ERROR espurios do sps-1). - Depois: Ran 5973 tests, failures=23, errors=17 -- exatamente 40 no total, identico ao baseline do pytest (40 failed, 5973 passed, 30 skipped). Zero ModuleNotFoundError para sps_versions. --- setup.py | 14 +++++++------- tox.ini | 10 +++++++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index cdad8859a..36eb58906 100644 --- a/setup.py +++ b/setup.py @@ -48,16 +48,16 @@ def run(self): INSTALL_REQUIRES = [ - 'aiohttp>=3.9.1', + 'aiohttp>=3.14.3', 'lxml>=4.9.2', - 'langcodes>=3.3.0', + 'langcodes>=3.5.1', 'langdetect>=1.0.9', 'picles.plumber>=0.11', - 'Pillow', - 'requests>=2.32.0', + 'Pillow>=12.3.0', + 'requests>=2.34.2', 'openpyxl>=3.1.5', - 'python-docx>=1.1.2', - 'tenacity>=8.2.3', + 'python-docx>=1.2.0', + 'tenacity>=8.5.0', ] @@ -75,7 +75,7 @@ def run(self): 'Flask-Testing>=0.6.2', 'flask-babel', 'Flask-WTF>=1.2.0', - 'python-magic', + 'python-magic>=0.4.27', 'charset-normalizer<3.0', ] diff --git a/tox.ini b/tox.ini index 4c69d6210..26ca0298e 100644 --- a/tox.ini +++ b/tox.ini @@ -12,14 +12,18 @@ deps = Flask-Testing flask-babel python-magic - charset-normalizer<3.0 + charset-normalizer aiohttp tenacity requests - scielo_scholarly_data @ git+https://github.com/scieloorg/scielo_scholarly_data#egg=scielo_scholarly_data + scielo_scholarly_data @ git+https://github.com/scieloorg/scielo_scholarly_data@v0.1.4#egg=scielo_scholarly_data commands_pre=pip install -e .[webapp] ; commands=python setup.py test -qv This works but will br deprecated on future release. -commands=python -m unittest -vvv +; discover -s tests -t . evita que o unittest tente importar +; packtools/sps/sps_versions/sps-1.9 e sps-1.10 como modulos de teste +; (o hifen no nome quebra o import, gerando ERROR espurio na descoberta +; ampla que "python -m unittest -vvv" faz a partir da raiz do projeto). +commands=python -m unittest discover -s tests -t . -vvv [console_scripts] stylechecker=packtools.stylechecker:main