zulip_updates: Add test to verify deactivated channel case.

This commit adds test to verify that we skip the update messages
and directly update the `zulip_update_announcements_level` to the
latest level when the configured `zulip_update_announcements_stream`
is deactivated.
This commit is contained in:
Prakhar Pratyush
2024-12-30 20:56:09 +05:30
committed by Tim Abbott
parent 77baa05aa9
commit fe3199b954

View File

@@ -9,6 +9,7 @@ from django.utils.timezone import now as timezone_now
from typing_extensions import override
from zerver.actions.create_realm import do_create_realm
from zerver.actions.streams import do_deactivate_stream
from zerver.data_import.mattermost import do_convert_data
from zerver.lib.import_realm import do_import_realm
from zerver.lib.message import remove_single_newlines
@@ -200,6 +201,32 @@ class ZulipUpdateAnnouncementsTest(ZulipTestCase):
self.assertEqual(stream_messages[1].content, "Announcement message 4.")
self.assertEqual(realm.zulip_update_announcements_level, 4)
# One new update added.
new_updates = [
ZulipUpdateAnnouncement(
level=5,
message="Announcement message 5.",
),
]
self.zulip_update_announcements.extend(new_updates)
# Verify that update message is skipped if configured channel gets deactivated.
# Note: 'do_deactivate_stream' sets 'zulip_update_announcements_stream' to None.
channel_id = realm.zulip_update_announcements_stream.id
do_deactivate_stream(realm.zulip_update_announcements_stream, acting_user=None)
with time_machine.travel(now + timedelta(days=8), tick=False):
send_zulip_update_announcements(skip_delay=False)
realm.refresh_from_db()
channel_messages = Message.objects.filter(
realm=realm,
sender=notification_bot,
recipient__type_id=channel_id,
date_sent__gte=now + timedelta(days=8),
).order_by("id")
self.assert_length(channel_messages, 0)
self.assertEqual(realm.zulip_update_announcements_level, 5)
def test_send_zulip_update_announcements_skip_delay(self) -> None:
with mock.patch(
"zerver.lib.zulip_update_announcements.zulip_update_announcements",