feat: audit outbound user notifications
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import unittest
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from bot.services import message_audit
|
||||
|
||||
|
||||
class MessageAuditTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_log_user_message_delivery_adds_targeted_log(self):
|
||||
calls = []
|
||||
sent_at = datetime(2026, 5, 31, tzinfo=timezone.utc)
|
||||
|
||||
async def fake_create(_session, payload):
|
||||
calls.append(payload)
|
||||
|
||||
original = message_audit.message_log_dal.create_message_log_no_commit
|
||||
message_audit.message_log_dal.create_message_log_no_commit = fake_create
|
||||
self.addCleanup(
|
||||
self._restore_create_message_log,
|
||||
original,
|
||||
)
|
||||
|
||||
await message_audit.log_user_message_delivery(
|
||||
object(),
|
||||
target_user_id=42,
|
||||
event_type="telegram_traffic_warning_sent",
|
||||
channel="telegram",
|
||||
recipient="100500",
|
||||
content="kind=regular level=90",
|
||||
timestamp=sent_at,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
calls,
|
||||
[
|
||||
{
|
||||
"user_id": None,
|
||||
"event_type": "telegram_traffic_warning_sent",
|
||||
"content": "channel=telegram | recipient=100500 | kind=regular level=90",
|
||||
"is_admin_event": False,
|
||||
"target_user_id": 42,
|
||||
"timestamp": sent_at,
|
||||
}
|
||||
],
|
||||
)
|
||||
|
||||
def _restore_create_message_log(self, original):
|
||||
message_audit.message_log_dal.create_message_log_no_commit = original
|
||||
Reference in New Issue
Block a user