| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """软删除待缴费(dfj)转账笔"""
- import unittest
- from types import SimpleNamespace
- from unittest.mock import MagicMock, patch
- from app.crud import protocol_sample_payment as psp
- class TestSoftDeletePaymentTransfer(unittest.TestCase):
- def test_function_exists(self):
- self.assertTrue(callable(getattr(psp, "soft_delete_payment_transfer", None)))
- def test_soft_delete_dfj_sets_del_flag_and_commits(self):
- t = SimpleNamespace(
- id="t1",
- pay_status="dfj",
- del_flag=0,
- update_by=None,
- update_time=None,
- )
- db = MagicMock()
- orig = psp._get_transfer_or_raise
- psp._get_transfer_or_raise = lambda *a, **k: t
- try:
- with patch.object(psp, "_now", return_value="2026-10-10T12:00:00"):
- psp.soft_delete_payment_transfer(
- db, transfer_id="t1", tenant_no="zkxw", user_id="u1"
- )
- self.assertEqual(t.del_flag, 1)
- self.assertEqual(t.update_by, "u1")
- self.assertEqual(t.update_time, "2026-10-10T12:00:00")
- db.add.assert_called_once_with(t)
- db.commit.assert_called_once()
- finally:
- psp._get_transfer_or_raise = orig
- def test_soft_delete_rejects_non_dfj(self):
- t = SimpleNamespace(id="t1", pay_status="jfqrz", del_flag=0)
- db = MagicMock()
- orig = psp._get_transfer_or_raise
- psp._get_transfer_or_raise = lambda *a, **k: t
- try:
- with self.assertRaises(ValueError) as ctx:
- psp.soft_delete_payment_transfer(
- db, transfer_id="t1", tenant_no="zkxw", user_id="u1"
- )
- self.assertIn("删除", str(ctx.exception))
- db.commit.assert_not_called()
- finally:
- psp._get_transfer_or_raise = orig
- if __name__ == "__main__":
- unittest.main()
|