feat: audit outbound user notifications

This commit is contained in:
3252a8
2026-05-31 23:05:40 +03:00
parent 1578a9da36
commit ecf779763c
7 changed files with 241 additions and 1 deletions
+47
View File
@@ -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