test_protocol_payment_save.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. """协议单缴费明细保存"""
  2. import unittest
  3. from decimal import Decimal
  4. from app.crud.collection_protocol import _payment_details_payload_unchanged
  5. from app.models.models import BizProtocolPaymentDetail
  6. class TestPaymentDetailsPayloadUnchanged(unittest.TestCase):
  7. def test_unchanged_with_blocking_status(self):
  8. existing = [
  9. BizProtocolPaymentDetail(
  10. installment_no=1,
  11. pay_status="jfqrz",
  12. due_amount=Decimal("3000.00"),
  13. transfer_type="",
  14. ),
  15. BizProtocolPaymentDetail(
  16. installment_no=2,
  17. pay_status="dfj",
  18. due_amount=Decimal("3000.00"),
  19. transfer_type="",
  20. ),
  21. ]
  22. incoming = [
  23. {"payStatus": "jfqrz", "installmentNo": 1, "dueAmount": 3000},
  24. {"payStatus": "dfj", "installmentNo": 2, "dueAmount": 3000},
  25. ]
  26. self.assertTrue(_payment_details_payload_unchanged(existing, incoming))
  27. def test_changed_due_amount(self):
  28. existing = [
  29. BizProtocolPaymentDetail(
  30. installment_no=1,
  31. pay_status="dfj",
  32. due_amount=Decimal("3000.00"),
  33. )
  34. ]
  35. incoming = [{"payStatus": "dfj", "installmentNo": 1, "dueAmount": 3100}]
  36. self.assertFalse(_payment_details_payload_unchanged(existing, incoming))
  37. if __name__ == "__main__":
  38. unittest.main()