kin: auto-commit after pipeline

This commit is contained in:
Gros Frumos 2026-03-17 20:21:52 +02:00
parent 35d258935a
commit e270d10832
3 changed files with 155 additions and 3 deletions

View file

@ -0,0 +1,53 @@
"""Regression tests for KIN-104 — замена datetime.utcnow() на datetime.now(timezone.utc) в cli/main.py.
AC1: datetime.utcnow() отсутствует в cli/main.py.
AC2: timezone импортирован из datetime в cli/main.py.
AC3: datetime.now(timezone.utc).isoformat() возвращает строку с суффиксом +00:00 (aware datetime).
"""
import re
from datetime import datetime, timezone
from pathlib import Path
import pytest
CLI_MAIN = Path(__file__).parent.parent / "cli" / "main.py"
# ---------------------------------------------------------------------------
# AC1: utcnow() отсутствует в источнике
# ---------------------------------------------------------------------------
def test_cli_main_does_not_contain_utcnow():
"""cli/main.py не должен содержать вызовов datetime.utcnow()."""
source = CLI_MAIN.read_text(encoding="utf-8")
assert "utcnow" not in source, "Найден устаревший вызов utcnow() в cli/main.py"
# ---------------------------------------------------------------------------
# AC2: timezone импортирован
# ---------------------------------------------------------------------------
def test_cli_main_imports_timezone():
"""cli/main.py должен импортировать timezone из datetime."""
source = CLI_MAIN.read_text(encoding="utf-8")
# Принимаем: from datetime import datetime, timezone или from datetime import ..., timezone, ...
assert re.search(r"from datetime import [^#\n]*timezone", source), \
"timezone не импортирован из datetime в cli/main.py"
# ---------------------------------------------------------------------------
# AC3: aware datetime → isoformat содержит +00:00
# ---------------------------------------------------------------------------
def test_now_timezone_utc_isoformat_contains_utc_offset():
"""datetime.now(timezone.utc).isoformat() должен содержать '+00:00'."""
ts = datetime.now(timezone.utc).isoformat()
assert "+00:00" in ts, f"Ожидался суффикс +00:00, получено: {ts}"
def test_now_timezone_utc_is_aware():
"""datetime.now(timezone.utc) должен возвращать aware datetime (tzinfo не None)."""
dt = datetime.now(timezone.utc)
assert dt.tzinfo is not None, "datetime.now(timezone.utc) вернул naive datetime"