mirror of
https://github.com/zulip/zulip.git
synced 2025-10-25 17:14:02 +00:00
worker: Flag messages processed by embedded bot.
This commit updates embedded bots to mark messages they have process as read. Since the service bots have their own `UserMessage` rows, this change enables us to track whether the bot has in fact processed the message by adding the `read` flag to their `UserMessage`. Fixes #28869.
This commit is contained in:
@@ -608,13 +608,12 @@ class TestServiceBotEventTriggers(ZulipTestCase):
|
||||
self.assertFalse(mock_queue_event_on_commit.called)
|
||||
|
||||
@responses.activate
|
||||
def test_flag_messages_outgoing_webhook_bot_has_processed(self) -> None:
|
||||
@for_all_bot_types
|
||||
def test_flag_messages_service_bots_has_processed(self) -> None:
|
||||
"""
|
||||
Verifies that once an event has been processed by the outgoing webhook
|
||||
bot's queue processor, the message is marked as processed (flagged with `read`).
|
||||
Verifies that once an event has been processed by the service bot's
|
||||
queue processor, the message is marked as processed (flagged with `read`).
|
||||
"""
|
||||
self.bot_profile.bot_type = UserProfile.OUTGOING_WEBHOOK_BOT
|
||||
self.bot_profile.save()
|
||||
sender = self.user_profile
|
||||
recipients = [self.user_profile, self.bot_profile, self.second_bot_profile]
|
||||
responses.add(
|
||||
|
||||
@@ -6,7 +6,12 @@ from typing import Any
|
||||
from typing_extensions import override
|
||||
from zulip_bots.lib import extract_query_without_mention
|
||||
|
||||
from zerver.lib.bot_lib import EmbeddedBotHandler, EmbeddedBotQuitError, get_bot_handler
|
||||
from zerver.lib.bot_lib import (
|
||||
EmbeddedBotHandler,
|
||||
EmbeddedBotQuitError,
|
||||
do_flag_service_bots_messages_as_processed,
|
||||
get_bot_handler,
|
||||
)
|
||||
from zerver.models import UserProfile
|
||||
from zerver.models.bots import get_bot_services
|
||||
from zerver.models.users import get_user_profile_by_id
|
||||
@@ -53,3 +58,4 @@ class EmbeddedBotWorker(QueueProcessingWorker):
|
||||
)
|
||||
except EmbeddedBotQuitError as e:
|
||||
logging.warning("%s", e)
|
||||
do_flag_service_bots_messages_as_processed(user_profile, [message["id"]])
|
||||
|
||||
Reference in New Issue
Block a user