| 123456789101112131415161718192021222324252627282930313233 |
- """协议列表可显式读取 V2 样本方案,其他费用摘要消费者保持原行为。"""
- import pytest
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- from app.models.base import Base
- from app.models.models import BizProtocolSamplePayment
- from app.services.qc_work_order_fee_summary import build_protocol_payment_summaries
- @pytest.mark.parametrize('modes,expected,label', [
- (['dj'], 'dj', '趸交'),
- (['fq', 'fq'], 'fq', '分期'),
- (['fgd'], 'fgd', '分改趸'),
- (['fq', 'dj'], 'djfq', '趸交+分期'),
- (['fgd', 'fq'], 'fq+fgd', '分期+分改趸'),
- ])
- def test_protocol_list_uses_active_tenant_v2_payment_modes(modes, expected, label):
- engine = create_engine('sqlite:///:memory:')
- Base.metadata.create_all(engine)
- with sessionmaker(bind=engine)() as db:
- for i, mode in enumerate(modes):
- db.add(BizProtocolSamplePayment(id=str(i), collection_protocol_id='p1', sample_code=str(i), pay_mode=mode, tenant_no='tenant-a', del_flag=0))
- db.add_all([
- BizProtocolSamplePayment(id='deleted', collection_protocol_id='p1', sample_code='deleted', pay_mode='djfq', tenant_no='tenant-a', del_flag=1),
- BizProtocolSamplePayment(id='foreign', collection_protocol_id='p1', sample_code='foreign', pay_mode='djfq', tenant_no='tenant-b', del_flag=0),
- ])
- db.commit()
- result = build_protocol_payment_summaries(db, ['p1'], 'tenant-a', include_sample_payment_modes=True)
- assert result['p1']['payMode'] == expected
- assert result['p1']['payModeLabel'] == label
- assert build_protocol_payment_summaries(db, ['p1'], 'tenant-a') == {}
- engine.dispose()
|