test_pl_menu_badge_recharge.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. """首页「ETC/油卡充值发放管理」角标统计全部待发放申请(ETC + 油卡)。"""
  2. from datetime import date
  3. from sqlalchemy import create_engine
  4. from sqlalchemy.orm import sessionmaker
  5. from app.models.pl_models import PlVehicleRechargeApply
  6. from app.services.pl_menu_badge_service import (
  7. MENU_CODE_RECHARGE_RECORD,
  8. build_menu_badge_counts,
  9. )
  10. def test_recharge_record_badge_counts_all_pending(monkeypatch):
  11. engine = create_engine("sqlite://")
  12. PlVehicleRechargeApply.__table__.create(engine)
  13. db = sessionmaker(bind=engine)()
  14. def add(row_id: str, recharge_type: str, status: str) -> None:
  15. db.add(
  16. PlVehicleRechargeApply(
  17. id=row_id,
  18. apply_no=f"NO-{row_id}",
  19. license_plate="鄂A00001",
  20. recharge_type=recharge_type,
  21. apply_date=date(2026, 9, 1),
  22. applicant_id="u1",
  23. status=status,
  24. tenant_no="t1",
  25. create_dept_id="d1",
  26. )
  27. )
  28. for index in range(6):
  29. add(f"fuel-{index}", "fuel", "pending")
  30. add("etc-done", "etc", "disbursed")
  31. add("etc-wait", "etc", "pending")
  32. db.commit()
  33. monkeypatch.setattr(
  34. "app.services.pl_menu_badge_service.apply_pl_scope",
  35. lambda query, *_args, **_kwargs: query,
  36. )
  37. counts = build_menu_badge_counts(
  38. db,
  39. tenant_no="t1",
  40. user=object(),
  41. user_id="u1",
  42. menu_codes=[MENU_CODE_RECHARGE_RECORD],
  43. )
  44. # 6 fuel pending + 1 etc pending
  45. assert counts[MENU_CODE_RECHARGE_RECORD] == 7