mirror of
https://github.com/zulip/zulip.git
synced 2025-11-12 09:58:06 +00:00
check_send_message: Replace args/kwargs with explicit args.
This lets us actually type-checks the various views that are using check_send_message.
This commit is contained in:
@@ -860,9 +860,14 @@ def extract_recipients(s):
|
|||||||
|
|
||||||
# check_send_message:
|
# check_send_message:
|
||||||
# Returns the id of the sent message. Has same argspec as check_message.
|
# Returns the id of the sent message. Has same argspec as check_message.
|
||||||
def check_send_message(*args, **kwargs):
|
def check_send_message(sender, client, message_type_name, message_to,
|
||||||
# type: (*Any, **Any) -> int # TODO: Impose same argspec as check_message.
|
subject_name, message_content, realm=None, forged=False,
|
||||||
message = check_message(*args, **kwargs)
|
forged_timestamp=None, forwarder_user_profile=None, local_id=None,
|
||||||
|
sender_queue_id=None):
|
||||||
|
# type: (UserProfile, Client, str, List[text_type], text_type, text_type, Optional[Realm], bool, Optional[float], Optional[UserProfile], Optional[int], Optional[text_type]) -> int
|
||||||
|
message = check_message(sender, client, message_type_name, message_to,
|
||||||
|
subject_name, message_content, realm, forged, forged_timestamp,
|
||||||
|
forwarder_user_profile, local_id, sender_queue_id)
|
||||||
return do_send_messages([message])[0]
|
return do_send_messages([message])[0]
|
||||||
|
|
||||||
def check_stream_name(stream_name):
|
def check_stream_name(stream_name):
|
||||||
@@ -922,7 +927,7 @@ def check_message(sender, client, message_type_name, message_to,
|
|||||||
subject_name, message_content, realm=None, forged=False,
|
subject_name, message_content, realm=None, forged=False,
|
||||||
forged_timestamp=None, forwarder_user_profile=None, local_id=None,
|
forged_timestamp=None, forwarder_user_profile=None, local_id=None,
|
||||||
sender_queue_id=None):
|
sender_queue_id=None):
|
||||||
# type: (UserProfile, Client, str, Optional[List[text_type]], text_type, text_type, Optional[Realm], bool, Optional[float], Optional[UserProfile], Optional[int], Optional[text_type]) -> Dict[str, Any]
|
# type: (UserProfile, Client, str, List[text_type], text_type, text_type, Optional[Realm], bool, Optional[float], Optional[UserProfile], Optional[int], Optional[text_type]) -> Dict[str, Any]
|
||||||
stream = None
|
stream = None
|
||||||
if not message_to and message_type_name == 'stream' and sender.default_sending_stream:
|
if not message_to and message_type_name == 'stream' and sender.default_sending_stream:
|
||||||
# Use the users default stream
|
# Use the users default stream
|
||||||
|
|||||||
@@ -294,16 +294,18 @@ class AuthedTestCase(TestCase):
|
|||||||
recipient__type=Recipient.STREAM)
|
recipient__type=Recipient.STREAM)
|
||||||
return [get_display_recipient(sub.recipient) for sub in subs]
|
return [get_display_recipient(sub.recipient) for sub in subs]
|
||||||
|
|
||||||
def send_message(self, sender_name, recipient_list, message_type,
|
def send_message(self, sender_name, raw_recipients, message_type,
|
||||||
content="test content", subject="test", **kwargs):
|
content=u"test content", subject=u"test", **kwargs):
|
||||||
# type: (str, Iterable[str], int, str, str, **Any) -> int
|
# type: (str, Union[text_type, List[text_type]], int, text_type, text_type, **Any) -> int
|
||||||
sender = get_user_profile_by_email(sender_name)
|
sender = get_user_profile_by_email(sender_name)
|
||||||
if message_type == Recipient.PERSONAL:
|
if message_type == Recipient.PERSONAL:
|
||||||
message_type_name = "private"
|
message_type_name = "private"
|
||||||
else:
|
else:
|
||||||
message_type_name = "stream"
|
message_type_name = "stream"
|
||||||
if isinstance(recipient_list, six.string_types):
|
if isinstance(raw_recipients, six.string_types):
|
||||||
recipient_list = [recipient_list]
|
recipient_list = [raw_recipients]
|
||||||
|
else:
|
||||||
|
recipient_list = raw_recipients
|
||||||
(sending_client, _) = Client.objects.get_or_create(name="test suite")
|
(sending_client, _) = Client.objects.get_or_create(name="test suite")
|
||||||
|
|
||||||
return check_send_message(
|
return check_send_message(
|
||||||
|
|||||||
Reference in New Issue
Block a user