Files
zkxw/backend/tests/test_protocol_sample_payment.py
T

45 lines
1.4 KiB
Python

"""按样本缴费:转账状态机与批次已缴/欠缴计算"""
from decimal import Decimal
import unittest
from app.services.protocol_transfer_status import (
can_confirm_receipt,
can_submit_receipt,
schedule_paid_and_arrears,
)
class TestTransferStatusRules(unittest.TestCase):
def test_submit_only_dfj(self):
self.assertTrue(can_submit_receipt("dfj"))
self.assertFalse(can_submit_receipt("jfqrz"))
self.assertFalse(can_submit_receipt("yjf"))
self.assertFalse(can_submit_receipt(""))
self.assertFalse(can_submit_receipt(None))
def test_confirm_only_jfqrz(self):
self.assertTrue(can_confirm_receipt("jfqrz"))
self.assertFalse(can_confirm_receipt("dfj"))
self.assertFalse(can_confirm_receipt("yjf"))
def test_schedule_arrears(self):
paid, arrears = schedule_paid_and_arrears(
due=Decimal("1000"),
confirmed_transfers=[Decimal("300"), Decimal("200")],
)
self.assertEqual(paid, Decimal("500"))
self.assertEqual(arrears, Decimal("500"))
def test_schedule_arrears_overpay(self):
paid, arrears = schedule_paid_and_arrears(
due=Decimal("100"),
confirmed_transfers=[Decimal("60"), Decimal("50")],
)
self.assertEqual(paid, Decimal("110"))
self.assertEqual(arrears, Decimal("-10"))
if __name__ == "__main__":
unittest.main()