Files
shanxia2.0/backend/tests/test_pl_transport_site_service.py
T
2026-09-13 13:08:52 +08:00

56 lines
1.7 KiB
Python

# backend/tests/test_pl_transport_site_service.py
from datetime import date, datetime
from unittest.mock import MagicMock
from app.services.pl_public_transport_helpers import _parse_history_date
from app.services.pl_site_plan_service import (
build_site_page_for_plan,
plan_matches_history_day,
resolve_transport_for_plan,
)
def test_parse_history_date_accepts_iso():
assert _parse_history_date("2026-09-13") == date(2026, 9, 13)
def test_parse_history_date_rejects_bad():
assert _parse_history_date("13/09/2026") is None
assert _parse_history_date("") is None
def test_plan_day_match_helpers():
day = date(2026, 9, 13)
class P:
def __init__(self, plan_date=None, pickup_time=None, delivery_time=None):
self.plan_date = plan_date
self.pickup_time = pickup_time
self.delivery_time = delivery_time
assert plan_matches_history_day(P(plan_date=day), day) is True
assert plan_matches_history_day(
P(pickup_time=datetime(2026, 9, 13, 8, 0, 0)), day
) is True
assert plan_matches_history_day(
P(delivery_time=datetime(2026, 9, 12, 18, 0, 0)), day
) is False
def test_resolve_transport_for_plan_missing_plan():
db = MagicMock()
db.query.return_value.filter.return_value.first.return_value = None
plan, transport = resolve_transport_for_plan(
db, tenant_no="t1", plan_id="missing"
)
assert plan is None
assert transport is None
def test_build_site_page_for_plan_missing_plan():
db = MagicMock()
db.query.return_value.filter.return_value.first.return_value = None
page, err = build_site_page_for_plan(db, tenant_no="t1", plan_id="missing")
assert page is None
assert err == "计划不存在"