Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Термін · 6:00

load_dotenv

load_dotenv() читає key-value pairs з .env і додає їх до environment; за замовчуванням уже наявні environment variables не перезаписуються.

2.1. відео, енв файл →

Нюанс · 6:00

Environment variables мають вищий пріоритет

Оскільки load_dotenv() не override-ить наявні environment variables за замовчуванням, CI або shell може без зміни .env надати іншу конфігурацію.

2.1. відео, енв файл →

Приклад коду · 0:00

Fail-fast завантаження локальної конфігурації

Приклад завантажує сусідній .env, перевіряє всі обов’язкові keys і завершується з явною помилкою, якщо конфігурація неповна.

Для підготовленого .env друкується https://example.test; при відсутньому key виникає RuntimeError.

2.1. відео, енв файл →

Python мануфактура · Програма курсу · 9:00–12:00

`python-dotenv` і `load_dotenv()`

Сам файл `.env` не потрапляє в `os.environ` автоматично. Додається пакет `python-dotenv`, викликається `load_dotenv()`, після чого `os.getenv()` бачить локальні значення. Версію залежності фіксують у `requirements.txt`. Після зміни запускаються всі наявні тести. Їх успішне проходження підтверджує, що перенесення конфігурації не змінило поточну поведінку сценаріїв.

2.1. відео, енв файл →

Python мануфактура · Програма курсу · 18:00–21:00

Централізація в `conftest.py`

Щоб не повторювати `load_dotenv()` і читання змінних у кожному тестовому файлі, конфігурація переноситься в `conftest.py`. Pytest автоматично знаходить цей файл у відповідній директорії та робить fixtures доступними тестам нижче по дереву. Створюється fixture конфігурації зі scope `session`. Вона обчислюється один раз на весь тестовий запуск і повертає набір значень, потрібних сценаріям.

2.1. відео, енв файл →
Запитати в чаті про «load_dotenv» →