Example #1
0
    def send_json_payload(self, user_profile: UserProfile, url: str,
                          payload: Union[str, Dict[str, Any]],
                          stream_name: Optional[str]=None, **post_params: Any) -> Message:
        if stream_name is not None:
            self.subscribe(user_profile, stream_name)

        prior_msg = self.get_last_message()

        result = self.client_post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()

        if msg.id == prior_msg.id:
            raise Exception('''
                Your test code called an endpoint that did
                not write any new messages.  It is probably
                broken (but still returns 200 due to exception
                handling).
                ''')  # nocoverage

        self.assertEqual(msg.sender.email, user_profile.email)
        if stream_name is not None:
            self.assertEqual(get_display_recipient(msg.recipient), stream_name)
        # TODO: should also validate recipient for private messages

        return msg
Example #2
0
 def get_streams(self, email: Text, realm: Realm) -> List[Text]:
     """
     Helper function to get the stream names for a user
     """
     user_profile = get_user(email, realm)
     subs = get_stream_subscriptions_for_user(user_profile).filter(
         active=True,
     )
     return [cast(Text, get_display_recipient(sub.recipient)) for sub in subs]
Example #3
0
 def get_streams(self, email):
     """
     Helper function to get the stream names for a user
     """
     user_profile = get_user_profile_by_email(email)
     subs = Subscription.objects.filter(user_profile=user_profile,
                                        active=True,
                                        recipient__type=Recipient.STREAM)
     return [get_display_recipient(sub.recipient) for sub in subs]
Example #4
0
 def get_streams(self, email):
     """
     Helper function to get the stream names for a user
     """
     user_profile = get_user_profile_by_email(email)
     subs = Subscription.objects.filter(
         user_profile    = user_profile,
         active          = True,
         recipient__type = Recipient.STREAM)
     return [get_display_recipient(sub.recipient) for sub in subs]
Example #5
0
 def get_streams(self, email, realm):
     # type: (Text, Realm) -> List[Text]
     """
     Helper function to get the stream names for a user
     """
     user_profile = get_user(email, realm)
     subs = Subscription.objects.filter(
         user_profile=user_profile,
         active=True,
         recipient__type=Recipient.STREAM)
     return [cast(Text, get_display_recipient(sub.recipient)) for sub in subs]
Example #6
0
 def get_streams(self, email, realm):
     # type: (Text, Realm) -> List[Text]
     """
     Helper function to get the stream names for a user
     """
     user_profile = get_user(email, realm)
     subs = Subscription.objects.filter(
         user_profile=user_profile,
         active=True,
         recipient__type=Recipient.STREAM)
     return [cast(Text, get_display_recipient(sub.recipient)) for sub in subs]
Example #7
0
    def send_json_payload(self, email, url, payload, stream_name=None, **post_params):
        if stream_name != None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client.post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, email)
        self.assertEqual(get_display_recipient(msg.recipient), stream_name)

        return msg
Example #8
0
    def send_json_payload(self, email, url, payload, stream_name=None, **post_params):
        if stream_name != None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client.post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = Message.objects.filter().order_by('-id')[0]
        self.assertEqual(msg.sender.email, email)
        self.assertEqual(get_display_recipient(msg.recipient), stream_name)

        return msg
Example #9
0
    def send_json_payload(self, email, url, payload, stream_name=None, **post_params):
        # type: (text_type, text_type, Union[text_type, Dict[str, Any]], Optional[text_type], **Any) -> Message
        if stream_name is not None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client.post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, email)
        self.assertEqual(get_display_recipient(msg.recipient), stream_name)

        return msg
Example #10
0
    def send_json_payload(self, email, url, payload, stream_name=None, **post_params):
        # type: (Text, Text, Union[Text, Dict[str, Any]], Optional[Text], **Any) -> Message
        if stream_name is not None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client_post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, email)
        if stream_name is not None:
            self.assertEqual(get_display_recipient(msg.recipient), stream_name)
        # TODO: should also validate recipient for private messages

        return msg
Example #11
0
    def send_json_payload(self, email, url, payload, stream_name=None, **post_params):
        # type: (text_type, text_type, Union[text_type, Dict[str, Any]], Optional[text_type], **Any) -> Message
        if stream_name is not None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client_post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, email)
        if stream_name is not None:
            self.assertEqual(get_display_recipient(msg.recipient), stream_name)
        # TODO: should also validate recipient for private messages

        return msg
Example #12
0
    def send_json_payload(self, user_profile: UserProfile, url: Text,
                          payload: Union[Text, Dict[str, Any]],
                          stream_name: Optional[Text]=None, **post_params: Any) -> Message:
        if stream_name is not None:
            self.subscribe(user_profile, stream_name)

        result = self.client_post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, user_profile.email)
        if stream_name is not None:
            self.assertEqual(get_display_recipient(msg.recipient), stream_name)
        # TODO: should also validate recipient for private messages

        return msg
Example #13
0
    def send_json_payload(self,
                          email,
                          url,
                          payload,
                          stream_name=None,
                          **post_params):
        # type: (str, str, Dict[str, Any], Optional[str], **Any) -> Message
        if stream_name is not None:
            self.subscribe_to_stream(email, stream_name)

        result = self.client.post(url, payload, **post_params)
        self.assert_json_success(result)

        # Check the correct message was sent
        msg = self.get_last_message()
        self.assertEqual(msg.sender.email, email)
        self.assertEqual(get_display_recipient(msg.recipient), stream_name)

        return msg