| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from __future__ import annotations
- from datetime import datetime, timezone
- from supply_infra.db.models.pipeline_run import PipelineRun
- from supply_infra.pipeline.run_service import serialize_run
- def test_manual_run_serializes_null_deadline_and_china_timestamps() -> None:
- run = PipelineRun(
- run_id="manual-run",
- dedupe_key="supply_pipeline:20260727:full",
- pipeline_key="supply_pipeline",
- biz_dt="20260727",
- trigger_type="api",
- run_mode="full",
- dry_run=True,
- status="queued",
- deadline_at=None,
- config_snapshot_json={},
- date_snapshot_json={},
- created_at=datetime(2026, 7, 27, 6, 30),
- updated_at=datetime(2026, 7, 27, 6, 31),
- )
- payload = serialize_run(run)
- assert payload["deadline_at"] is None
- assert payload["created_at"] == "2026-07-27T06:30:00+08:00"
- assert payload["updated_at"] == "2026-07-27T06:31:00+08:00"
- def test_aware_timestamp_is_converted_to_china_time() -> None:
- run = PipelineRun(
- run_id="aware-run",
- dedupe_key="supply_pipeline:20260727:aware",
- pipeline_key="supply_pipeline",
- biz_dt="20260727",
- trigger_type="api",
- run_mode="full",
- dry_run=True,
- status="queued",
- deadline_at=None,
- config_snapshot_json={},
- date_snapshot_json={},
- created_at=datetime(2026, 7, 27, 6, 30, tzinfo=timezone.utc),
- updated_at=datetime(2026, 7, 27, 6, 31, tzinfo=timezone.utc),
- )
- payload = serialize_run(run)
- assert payload["created_at"] == "2026-07-27T14:30:00+08:00"
- assert payload["updated_at"] == "2026-07-27T14:31:00+08:00"
|