"""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()