Русский
Открыть в Telegram

Пост Как изолировать Pydantic Settings от окружения в pytest

17 сентября 2026
Z
Zen of Python
Фотография
Как изолировать Pydantic Settings от окружения в pytest Если Settings создаётся при импорте пакета, он читает .env и переменные оболочки до запуска фикстуры pytest. Подмена os.environ запаздывает: значения уже сохранены в объекте, а тест зависит от окружения. Решение автора: фикстура сохраняет model_copy() объекта, сбрасывает поля к значениям по умолчанию из model_fields и применяет точечные переопределения. Неизвестные настройки и неверные типы она отклоняет, после yield восстанавливает исходное состояние. Подход пригодится, когда Settings уже живёт на уровне модуля. Явное снова лучше неявного. Код фикстуры и тесты со значениями по умолчанию и частичными переопределениями смотрите в разборе подмены Pydantic Settings.
10 · 1.4K ·

Рядом в ленте

ZZen of PythonПочему mock.patch не подменяет функцию в Python После from os import listdir имя listdir привязано в модуле product. Последующая подмена os.listdir эту привязкуZZen of PythonКак устроен асинхронный веб-краулер на Python Обстоятельная глава строит краулер с нуля: от корневого URL он скачивает страницы, извлекает новые ссылки и ставит
это сообщение
ZZen of PythonКогда namedtuple всё ещё лучше dataclass После появления dataclass именованный кортеж перестал быть универсальной заменой маленькому классу. Он всегда поддерживZZen of PythonКак получать стабильный хеш Python-объектов Встроенный hash() для этого не подходит: хеши строк и bytes меняются между процессами, а списки, словари и изменяемы
ZZen of PythonZen of Python@zen_of_python · канал · Технологии
18 712подписчиков1 126средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем