zulip/zerver/tests/test_recipient_parsing.py

31 lines
1.2 KiB
Python

from zerver.lib.exceptions import JsonableError
from zerver.lib.recipient_parsing import extract_direct_message_recipient_ids, extract_stream_id
from zerver.lib.test_classes import ZulipTestCase
class TestRecipientParsing(ZulipTestCase):
def test_extract_stream_id(self) -> None:
# stream message recipient = single stream ID.
stream_id = extract_stream_id(1)
self.assertEqual(stream_id, 1)
with self.assertRaisesRegex(JsonableError, "Invalid data type for channel ID"):
extract_stream_id([1, 2])
with self.assertRaisesRegex(JsonableError, "Invalid data type for channel ID"):
extract_stream_id([1])
def test_extract_recipient_ids(self) -> None:
# direct message recipients = user IDs.
user_ids = [3, 2, 1]
result = sorted(extract_direct_message_recipient_ids(user_ids))
self.assertEqual(result, [1, 2, 3])
# list w/duplicates
user_ids = [3, 3, 12]
result = sorted(extract_direct_message_recipient_ids(user_ids))
self.assertEqual(result, [3, 12])
with self.assertRaisesRegex(JsonableError, "Invalid data type for recipients"):
extract_direct_message_recipient_ids(1)