Ctrl K
ComunidadGuías…

tests/test_action_timestamps.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
from datetime import datetime, timezone

from dm.ontology import actions
from dm.security import User


def _assert_utc(value: str) -> None:
    parsed = datetime.fromisoformat(value)
    assert parsed.utcoffset() == timezone.utc.utcoffset(parsed)


def test_action_audit_and_history_records_use_aware_utc_timestamps(monkeypatch):
    records = []
    monkeypatch.setattr(actions, "append_log", lambda name, record: records.append((name, record)))
    user = User("alice", "管理层")

    actions._audit_action("ACT1", "adjust_safety_stock", {}, user, "allow", "ok")
    actions._record(
        "ACT1",
        "adjust_safety_stock",
        {},
        user,
        table="material",
        op="update",
        pk_col="material_id",
        pk_val="M1",
        before={"safety_stock": 1},
        after={"safety_stock": 2},
        status="executed",
    )

    assert [name for name, _record in records] == ["audit_log", "action_log"]
    for _name, record in records:
        _assert_utc(record["ts"])