test_protocol_v2_payment_mode_summary.py 1.7 KB

123456789101112131415161718192021222324252627282930313233
  1. """协议列表可显式读取 V2 样本方案,其他费用摘要消费者保持原行为。"""
  2. import pytest
  3. from sqlalchemy import create_engine
  4. from sqlalchemy.orm import sessionmaker
  5. from app.models.base import Base
  6. from app.models.models import BizProtocolSamplePayment
  7. from app.services.qc_work_order_fee_summary import build_protocol_payment_summaries
  8. @pytest.mark.parametrize('modes,expected,label', [
  9. (['dj'], 'dj', '趸交'),
  10. (['fq', 'fq'], 'fq', '分期'),
  11. (['fgd'], 'fgd', '分改趸'),
  12. (['fq', 'dj'], 'djfq', '趸交+分期'),
  13. (['fgd', 'fq'], 'fq+fgd', '分期+分改趸'),
  14. ])
  15. def test_protocol_list_uses_active_tenant_v2_payment_modes(modes, expected, label):
  16. engine = create_engine('sqlite:///:memory:')
  17. Base.metadata.create_all(engine)
  18. with sessionmaker(bind=engine)() as db:
  19. for i, mode in enumerate(modes):
  20. db.add(BizProtocolSamplePayment(id=str(i), collection_protocol_id='p1', sample_code=str(i), pay_mode=mode, tenant_no='tenant-a', del_flag=0))
  21. db.add_all([
  22. BizProtocolSamplePayment(id='deleted', collection_protocol_id='p1', sample_code='deleted', pay_mode='djfq', tenant_no='tenant-a', del_flag=1),
  23. BizProtocolSamplePayment(id='foreign', collection_protocol_id='p1', sample_code='foreign', pay_mode='djfq', tenant_no='tenant-b', del_flag=0),
  24. ])
  25. db.commit()
  26. result = build_protocol_payment_summaries(db, ['p1'], 'tenant-a', include_sample_payment_modes=True)
  27. assert result['p1']['payMode'] == expected
  28. assert result['p1']['payModeLabel'] == label
  29. assert build_protocol_payment_summaries(db, ['p1'], 'tenant-a') == {}
  30. engine.dispose()