Files
zkxw/backend/tests/test_protocol_payment_summary_transfer_time.py
2026-10-13 15:18:01 +08:00

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