Тест-сьют order-fragile: голый pytest -> 17 падений (sys.modules['config'] pollution, пре-существует) #17
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено при ревью #16, но пре-существует (те же падения на утв. базе стадии-5
d0801ef0).Тест-сьют order-fragile: голый
pytestдаёт 17 паденийПрогон зависит от порядка коллекции из-за загрязнения
sys.modules['config']тест-моком:Падения — не логические баги, а
async def not natively supported/ несостыковки конфига из-за того, что какой-то тест-модуль ставитsys.modules['config'] = tests.mock_config(или подобное) и не восстанавливает, так что при другом порядке коллекции последующие модули видят чужой/мок-конфиг.CI это не ловит (workflow только собирает docker-образ, pytest не гоняет), и каноничный прогон зелёный — поэтому не блокер. Но новый контрибьютор, запустивший наивный
pytest, видит красное.Fix: изолировать подмену конфига — autouse-фикстура, которая ставит мок в
sys.modulesи восстанавливает оригинал на teardown (илиmonkeypatch.setitem(sys.modules, 'config', ...)), чтобы порядок коллекции не влиял. Затрагивает тест-инфру всех стадий, отдельно от продовых изменений.