Files
shanxia2.0/backend/tests/test_pl_menu_badge_recharge.py
T
2026-09-26 11:59:39 +08:00

54 lines
1.6 KiB
Python

"""首页「ETC/加油充值发放登记」角标统计全部待发放申请(ETC + 加油)。"""
from datetime import date
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from app.models.pl_models import PlVehicleRechargeApply
from app.services.pl_menu_badge_service import (
MENU_CODE_RECHARGE_RECORD,
build_menu_badge_counts,
)
def test_recharge_record_badge_counts_all_pending(monkeypatch):
engine = create_engine("sqlite://")
PlVehicleRechargeApply.__table__.create(engine)
db = sessionmaker(bind=engine)()
def add(row_id: str, recharge_type: str, status: str) -> None:
db.add(
PlVehicleRechargeApply(
id=row_id,
apply_no=f"NO-{row_id}",
license_plate="鄂A00001",
recharge_type=recharge_type,
apply_date=date(2026, 9, 1),
applicant_id="u1",
status=status,
tenant_no="t1",
create_dept_id="d1",
)
)
for index in range(6):
add(f"fuel-{index}", "fuel", "pending")
add("etc-done", "etc", "disbursed")
add("etc-wait", "etc", "pending")
db.commit()
monkeypatch.setattr(
"app.services.pl_menu_badge_service.apply_pl_scope",
lambda query, *_args, **_kwargs: query,
)
counts = build_menu_badge_counts(
db,
tenant_no="t1",
user=object(),
user_id="u1",
menu_codes=[MENU_CODE_RECHARGE_RECORD],
)
# 6 fuel pending + 1 etc pending
assert counts[MENU_CODE_RECHARGE_RECORD] == 7