kin: auto-commit after pipeline
This commit is contained in:
parent
35d258935a
commit
e270d10832
3 changed files with 155 additions and 3 deletions
53
tests/test_kin_104_regression.py
Normal file
53
tests/test_kin_104_regression.py
Normal 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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue