コード例 #1
0
 def test_init__message_with_reply(self, telepot):
     telepot.glance.return_value = 'text', 'private', 31416
     self.message_json['text'] = 'foo'
     message = Message(self.message_json)
     self.assertFalse(message.is_reply)
     self.message_json['reply_to_message'] = None
     message = Message(self.message_json)
     self.assertTrue(message.is_reply)
コード例 #2
0
 async def test_on_chat_message__command_setup(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     message_json = {
         'text': 'some_command_text'
         }
     message = Mock()
     message.command = 'foo_command'
     Message.return_value = message
     self.stranger_setup_wizard.handle_command.return_value = True
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_not_called()
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #3
0
 async def test_on_chat_message__command_setup(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     message_json = {
         'text': 'some_command_text'
         }
     message = Mock()
     message.command = 'foo_command'
     Message.return_value = message
     self.stranger_setup_wizard.handle_command.return_value = True
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_not_called()
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #4
0
 async def test_on_chat_message__text(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text'
         }
     message = Message.return_value
     message.command = None
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(Message.return_value)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #5
0
 async def test_on_chat_message__text(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text'
         }
     message = Message.return_value
     message.command = None
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(Message.return_value)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #6
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__ok(self):
     message = Mock()
     message.command_args = 'eyJmb28iOiAiYmFyIn0='
     self.assertEqual(
         Message.decode_command_args(message),
         {"foo": "bar"},
         )
コード例 #7
0
 async def test_on_chat_message__setup(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     # This means, message was handled by StrangerSetupWizard.
     self.stranger_setup_wizard.handle.return_value = True
     message_json = {
         'text': 'message_text',
         }
     message = Message.return_value
     message.command = None
     self.stranger_setup_wizard.handle.return_value = True
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #8
0
 def test_decode_command_args__ok(self):
     message = Mock()
     message.command_args = 'eyJmb28iOiAiYmFyIn0='
     self.assertEqual(
         Message.decode_command_args(message),
         {"foo": "bar"},
     )
コード例 #9
0
 def test_init__sticker(self):
     self.message_json['sticker'] = self.sticker
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {'sticker': 'BQADAgAD7gAD9HsZAAFCdfFWtd5o1gI'},
     )
コード例 #10
0
 def test_init__invalid_location(self, telepot):
     self.message_json['location'] = {
         'latitude': 'foo',
     }
     telepot.glance.return_value = 'location', 'private', 31416
     with self.assertRaises(UnsupportedContentError):
         Message(self.message_json)
コード例 #11
0
 async def test_on_chat_message__setup(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     telepot.glance.return_value = 'text', 'private', 31416
     # This means, message was handled by StrangerSetupWizard.
     self.stranger_setup_wizard.handle.return_value = True
     message_json = {
         'text': 'message_text',
         }
     message = Message.return_value
     message.command = None
     self.stranger_setup_wizard.handle.return_value = True
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #12
0
 def test_init__text(self):
     self.message_json['text'] = 'foo'
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {'text': 'foo'},
     )
     self.assertEqual(message.text, 'foo')
コード例 #13
0
 async def test_on_chat_message__not_supported_by_message_cls_content(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.stranger_handler import StrangerError
     telepot.glance.return_value = 'unsupported_content', 'private', 31416
     message_json = Mock()
     message = Message.return_value
     message.command = None
     self.stranger.send_to_partner = CoroutineMock()
     self.stranger_setup_wizard.handle.return_value = False
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_not_called()
     self.sender.send_notification.assert_called_once_with(
         'Messages of this type aren\'t supported.',
         )
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #14
0
 async def test_on_chat_message__text_no_partner(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.errors import MissingPartnerError
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text',
         }
     self.stranger.send_to_partner = CoroutineMock(side_effect=MissingPartnerError())
     message = Message.return_value
     message.command = None
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(message)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #15
0
 async def test_on_chat_message__text_no_partner(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.errors import MissingPartnerError
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text',
         }
     self.stranger.send_to_partner = CoroutineMock(side_effect=MissingPartnerError())
     message = Message.return_value
     message.command = None
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(message)
     self.stranger_setup_wizard.handle.assert_called_once_with(message)
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #16
0
 async def test_on_chat_message__not_supported_by_message_cls_content(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.stranger_handler import StrangerError
     telepot.glance.return_value = 'unsupported_content', 'private', 31416
     message_json = Mock()
     message = Message.return_value
     message.command = None
     self.stranger.send_to_partner = CoroutineMock()
     self.stranger_setup_wizard.handle.return_value = False
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_not_called()
     self.sender.send_notification.assert_called_once_with(
         'Messages of this type aren\'t supported.',
         )
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #17
0
 async def test_on_chat_message__text_stranger_error(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.stranger_handler import StrangerError
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text',
         }
     Message.return_value.command = None
     self.stranger.send_to_partner = CoroutineMock(side_effect=StrangerError())
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(Message.return_value)
     self.sender.send_notification.assert_called_once_with(
         'Messages of this type aren\'t supported.',
         )
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #18
0
 async def test_on_chat_message__text_stranger_error(self, handle_command_mock):
     from randtalkbot.stranger_handler import Message
     from randtalkbot.stranger_handler import telepot
     from randtalkbot.stranger_handler import StrangerError
     telepot.glance.return_value = 'text', 'private', 31416
     self.stranger_setup_wizard.handle.return_value = False
     message_json = {
         'text': 'message_text',
         }
     Message.return_value.command = None
     self.stranger.send_to_partner = CoroutineMock(side_effect=StrangerError())
     await self.stranger_handler.on_chat_message(message_json)
     self.stranger.send_to_partner.assert_called_once_with(Message.return_value)
     self.sender.send_notification.assert_called_once_with(
         'Messages of this type aren\'t supported.',
         )
     Message.assert_called_once_with(message_json)
     handle_command_mock.assert_not_called()
コード例 #19
0
 def test_init__document(self):
     self.message_json['document'] = {
         'file_id': 'foo',
     }
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'document': 'foo',
         },
     )
コード例 #20
0
 def test_init__voice(self):
     self.message_json['voice'] = {
         'file_id': 'foo',
     }
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'voice': 'foo',
             'duration': None,
         },
     )
コード例 #21
0
 def test_init__location(self):
     self.message_json['location'] = {
         'latitude': 'foo',
         'longitude': 'bar',
     }
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'latitude': 'foo',
             'longitude': 'bar',
         },
     )
コード例 #22
0
 def test_init__audio(self):
     self.message_json['audio'] = {
         'file_id': 'foo',
     }
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'audio': 'foo',
             'duration': None,
             'performer': None,
             'title': None,
         },
     )
コード例 #23
0
 def test_init__photo_with_caption(self):
     self.message_json['photo'] = [
         {'file_id': 'foo'},
         {'file_id': 'bar'},
         ]
     self.message_json['caption'] = 'baz'
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'caption': 'baz',
             'photo': 'foo',
             },
         )
コード例 #24
0
 def test_init__photo(self):
     self.message_json['photo'] = [
         {'file_id': 'foo'},
         {'file_id': 'bar'},
         ]
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'caption': None,
             'photo': 'foo',
             },
         )
     self.assertEqual(message.text, None)
コード例 #25
0
 def test_init__video_with_info(self):
     self.message_json['video'] = {
         'duration': 85,
         'file_id': 'foo',
     }
     self.message_json['caption'] = 'Pink Floyd'
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'video': 'foo',
             'duration': 85,
             'caption': 'Pink Floyd',
         },
     )
コード例 #26
0
 def test_init__audio_with_info(self):
     self.message_json['audio'] = {
         'duration': 85,
         'file_id': 'foo',
         'performer': 'Pink Floyd',
         'title': 'Another Brick In The Wall Part 3',
     }
     message = Message(self.message_json)
     self.assertEqual(
         message.sending_kwargs,
         {
             'audio': 'foo',
             'duration': 85,
             'performer': 'Pink Floyd',
             'title': 'Another Brick In The Wall Part 3',
         },
     )
コード例 #27
0
 def test_init__text_without_command_has_empty_comand_field(self, telepot):
     telepot.glance.return_value = 'text', 'private', 31416
     self.message_json['text'] = 'foo'
     message = Message(self.message_json)
     self.assertEqual(message.command, None)
     self.assertEqual(message.command_args, None)
コード例 #28
0
 def test_init__invalid_voice(self, telepot):
     telepot.glance.return_value = 'voice', 'private', 31416
     with self.assertRaises(UnsupportedContentError):
         Message(self.message_json)
コード例 #29
0
 def test_init__message_with_forward(self, telepot):
     telepot.glance.return_value = 'text', 'private', 31416
     self.message_json['forward_from'] = None
     with self.assertRaises(UnsupportedContentError):
         Message(self.message_json)
コード例 #30
0
 def test_init__invalid_json(self):
     with self.assertRaises(UnsupportedContentError):
         Message(self.message_json)
コード例 #31
0
 def test_init__unknown_content_type(self, telepot):
     telepot.glance.return_value = 'foo_content_type', 'private', 31416
     with self.assertRaises(UnsupportedContentError):
         Message(self.message_json)
コード例 #32
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__b64decode_type_error(self):
     message = Mock()
     message.command_args = None
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #33
0
 def test_decode_command_args__b64decode_incorrect_padding(self):
     message = Mock()
     message.command_args = 'NoonfowfVyZSwg'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #34
0
 def test_decode_command_args__b64decode_value_error(self):
     message = Mock()
     message.command_args = 'кириллица'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #35
0
 def test_decode_command_args__unicode_decode_error(self):
     message = Mock()
     message.command_args = '_w=='  # b'\xff'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #36
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__loading_json_error(self):
     message = Mock()
     message.command_args = 'Ww==' # b'['
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #37
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__unicode_decode_error(self):
     message = Mock()
     message.command_args = '_w==' # b'\xff'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #38
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__b64decode_value_error(self):
     message = Mock()
     message.command_args = 'кириллица'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #39
0
ファイル: test_message.py プロジェクト: quasiyoke/RandTalkBot
 def test_decode_command_args__b64decode_incorrect_padding(self):
     message = Mock()
     message.command_args = 'NoonfowfVyZSwg'
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #40
0
 def test_init__command_with_underscore(self, telepot):
     telepot.glance.return_value = 'text', 'private', 31416
     self.message_json['text'] = '/begin_chat here'
     message = Message(self.message_json)
     self.assertEqual(message.command, 'begin_chat')
     self.assertEqual(message.command_args, 'here')
コード例 #41
0
 def test_decode_command_args__loading_json_error(self):
     message = Mock()
     message.command_args = 'Ww=='  # b'['
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)
コード例 #42
0
 def test_decode_command_args__b64decode_type_error(self):
     message = Mock()
     message.command_args = None
     with self.assertRaises(UnsupportedContentError):
         Message.decode_command_args(message)