fix: restore .env loading for --init-config
Регрессия от 1df1194 (#64): load_dotenv переехал с module-level в
Config.load_yaml(), но --init-config выходит до этого вызова, поэтому
_run_init_config больше не видел значения из .env — пользователь с
настройками только в .env получал пустой YAML, хотя docs/CONFIG.md
обещает чтение текущих значений из .env.
В начале _run_init_config добавлен load_dotenv(find_dotenv(usecwd=True),
override=False): поиск .env идёт от текущей директории (plain-вызов без
usecwd стартует от директории cli.py и .env пользователя не находит),
переменные окружения не перебиваются. Импорт модуля по-прежнему без
side effects — вызов внутри функции.
Регрессионный тест: test_init_config_reads_dotenv_file (реальный .env
в tmp_path + chdir, без мока os.environ на целевые переменные).
Refs #64
This commit is contained in:
@@ -8,6 +8,7 @@ from pathlib import Path
|
||||
from typing import List, Optional
|
||||
|
||||
import yaml
|
||||
from dotenv import find_dotenv, load_dotenv
|
||||
|
||||
from . import __version__
|
||||
from .client import RedmineAPIError, fetch_issues_with_spent_time
|
||||
@@ -70,7 +71,16 @@ def parse_date_range(date_arg: str) -> tuple[str, str]:
|
||||
|
||||
|
||||
def _run_init_config(config_path: str, force: bool) -> int:
|
||||
"""Создаёт YAML-конфиг из текущих настроек окружения."""
|
||||
"""Создаёт YAML-конфиг из текущих настроек окружения.
|
||||
|
||||
Подгружает .env из текущей директории (override=False: реальные
|
||||
переменные окружения не перебиваются), чтобы --init-config видел
|
||||
значения, заданные только в .env (#64). Поиск идёт от cwd
|
||||
(usecwd=True): find_dotenv() без него стартует от директории
|
||||
cli.py и .env пользователя не находит.
|
||||
"""
|
||||
load_dotenv(find_dotenv(usecwd=True), override=False)
|
||||
|
||||
path = Path(config_path)
|
||||
|
||||
if path.exists() and not force:
|
||||
|
||||
Reference in New Issue
Block a user