54 lines
1.6 KiB
Python
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
|