增加充值审计日志
This commit is contained in:
@@ -12,9 +12,10 @@ from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from web.backend.database import Base
|
||||
from web.backend.models import Account, DouyuTask, User
|
||||
from web.backend.models import Account, AuditLog, DouyuTask, User
|
||||
from web.backend.routers.douyu import supplier_recharge_callback
|
||||
from web.backend.services.douyu_runner import DouyuBatchRunner
|
||||
from web.backend.services.audit_service import record_audit
|
||||
from core.douyu import FishFinRechargeClient, FishFinRechargeConfig
|
||||
|
||||
|
||||
@@ -123,6 +124,26 @@ class DouyuGoldRechargeChannelTests(unittest.TestCase):
|
||||
"DYGFHISTORICAL-001",
|
||||
)
|
||||
|
||||
def test_recharge_audit_detail_includes_safe_account_identity(self):
|
||||
record_audit(
|
||||
self.session,
|
||||
self.session.get(User, self.task.created_by),
|
||||
action="recharge:douyu:create",
|
||||
detail={
|
||||
"recharge_accounts": [{
|
||||
"username": self.account.username,
|
||||
"douyu_uid": self.account.uid,
|
||||
"douyu_nickname": self.account.nickname,
|
||||
}],
|
||||
},
|
||||
)
|
||||
self.session.commit()
|
||||
|
||||
audit = self.session.query(AuditLog).one()
|
||||
self.assertIn("douyu_uid", audit.detail)
|
||||
self.assertIn("10001", audit.detail)
|
||||
self.assertNotIn("password", audit.detail)
|
||||
|
||||
@patch("web.backend.services.douyu_runner.FishFinRechargeClient")
|
||||
def test_supplier_channel_marks_non_200_create_response_as_failed(self, client_class):
|
||||
supplier = Mock()
|
||||
@@ -174,6 +195,10 @@ class DouyuGoldRechargeChannelTests(unittest.TestCase):
|
||||
self.assertEqual(self.account.bind_status, "gold_recharged")
|
||||
self.assertEqual(self.task.result["order_id"], "supplier-001")
|
||||
self.assertEqual(self.task.result["supplier_order_status"], 2)
|
||||
audit = self.session.query(AuditLog).filter(AuditLog.action == "recharge:douyu:callback").one()
|
||||
self.assertEqual(audit.username, "supplier")
|
||||
self.assertTrue(audit.success)
|
||||
self.assertNotIn("sign", audit.detail)
|
||||
# 同一终态回调可重复投递,不会改写已结束任务。
|
||||
asyncio.run(supplier_recharge_callback(request, self.session))
|
||||
self.session.refresh(self.task)
|
||||
|
||||
Reference in New Issue
Block a user