43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
"""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()
|