[Enhancement] Убрать/пересмотреть хардкод даты по умолчанию 2025-12-19--2026-01-31 #56

Closed
opened 2026-07-12 21:18:13 +07:00 by artem.kokos · 0 comments
Owner

Проблема

В redmine_reporter/config.py:57 дата по умолчанию захардкожена:

return os.environ.get("DEFAULT_FROM_DATE", "2025-12-19"), os.environ.get("DEFAULT_TO_DATE", "2026-01-31")

Это неожиданное поведение для пользователя: если он не задаёт DEFAULT_FROM_DATE/DEFAULT_TO_DATE и не передаёт --date, отчёт всегда строится за фиксированный декабрь-январь 2025-2026 года, даже если сейчас середина 2026.

Пример

redmine-reporter --compact

Без --date и без .env инструмент возьмёт диапазон 2025-12-19 -- 2026-01-31, что почти наверняка не то, что ожидал пользователь.

Рекомендации

  1. Лучшее поведение: если даты не указаны, использовать текущий месяц:

    today = datetime.date.today()
    first_day = today.replace(day=1)
    # last_day = следующий месяц минус 1 день
    
  2. Альтернатива: потребовать явного указания --date или DEFAULT_FROM_DATE/DEFAULT_TO_DATE и выдавать понятную ошибку, если они отсутствуют.

  3. Если хардкод оставлен для тестов — вынести его в тестовые фикстуры, а не в production-конфиг.

Связанные места

  • redmine_reporter/config.py:57
  • tests/test_config.py
## Проблема В `redmine_reporter/config.py:57` дата по умолчанию захардкожена: ```python return os.environ.get("DEFAULT_FROM_DATE", "2025-12-19"), os.environ.get("DEFAULT_TO_DATE", "2026-01-31") ``` Это неожиданное поведение для пользователя: если он не задаёт `DEFAULT_FROM_DATE`/`DEFAULT_TO_DATE` и не передаёт `--date`, отчёт всегда строится за фиксированный декабрь-январь 2025-2026 года, даже если сейчас середина 2026. ## Пример ```bash redmine-reporter --compact ``` Без `--date` и без `.env` инструмент возьмёт диапазон `2025-12-19 -- 2026-01-31`, что почти наверняка не то, что ожидал пользователь. ## Рекомендации 1. **Лучшее поведение:** если даты не указаны, использовать текущий месяц: ```python today = datetime.date.today() first_day = today.replace(day=1) # last_day = следующий месяц минус 1 день ``` 2. **Альтернатива:** потребовать явного указания `--date` или `DEFAULT_FROM_DATE`/`DEFAULT_TO_DATE` и выдавать понятную ошибку, если они отсутствуют. 3. Если хардкод оставлен для тестов — вынести его в тестовые фикстуры, а не в production-конфиг. ## Связанные места - `redmine_reporter/config.py:57` - `tests/test_config.py`
artem.kokos added the enhancementconfig labels 2026-07-12 21:18:13 +07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#56