| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """payment summary detail includes transferTime"""
- from datetime import datetime
- from types import SimpleNamespace
- import unittest
- from app.services.qc_work_order_fee_summary import (
- build_protocol_payment_summary,
- pick_earliest_transfer_time_by_protocol,
- )
- class TestPaymentSummaryTransferTime(unittest.TestCase):
- def test_detail_includes_transfer_time(self):
- pay = SimpleNamespace(pay_mode="fq", contract_amount=10000)
- detail = SimpleNamespace(
- installment_no=1,
- order_num=1,
- create_time=datetime(2025, 9, 1, 10, 0, 0),
- installment_due_date="20250901",
- due_amount=5000,
- transfer_amount=5000,
- pay_status="yjf",
- transfer_time=datetime(2025, 9, 15, 9, 20, 0),
- )
- summary = build_protocol_payment_summary(pay, [detail])
- self.assertIsNotNone(summary)
- self.assertEqual(summary["paymentDetails"][0]["transferTime"], "2025-09-15 09:20:00")
- def test_pick_earliest_transfer_time_by_protocol(self):
- rows = [
- ("p1", datetime(2025, 9, 20, 14, 30, 0)),
- ("p1", datetime(2025, 9, 15, 9, 20, 0)),
- ("p1", datetime(2025, 9, 18, 8, 0, 0)),
- ("p2", datetime(2025, 10, 1, 10, 0, 0)),
- ]
- got = pick_earliest_transfer_time_by_protocol(rows)
- self.assertEqual(got["p1"], datetime(2025, 9, 15, 9, 20, 0))
- self.assertEqual(got["p2"], datetime(2025, 10, 1, 10, 0, 0))
- if __name__ == "__main__":
- unittest.main()
|