| 1234567891011121314151617181920212223242526 |
- """审计 created_at 应用侧 UTC 落库口径测试。
- DB server_default CURRENT_TIMESTAMP 为服务器本地时区,与序列化追加 Z 的
- UTC 口径叠加会使前端显示快 8 小时;Python 侧 default 必须产出 naive UTC。
- """
- from __future__ import annotations
- from datetime import datetime, timezone
- from dms.models import AuditLog
- def test_created_at_default_produces_naive_utc():
- default = AuditLog.__table__.c.created_at.default
- assert default is not None and default.is_callable
- # SQLAlchemy 对零参 callable 的包装可能伪造成原签名但实收 ctx,两种形态都兼容
- fn = default.arg
- try:
- value = fn(None)
- except TypeError:
- value = fn()
- assert isinstance(value, datetime)
- assert value.tzinfo is None
- utc_now = datetime.now(timezone.utc).replace(tzinfo=None)
- assert abs((utc_now - value).total_seconds()) < 60
|