Ejemplo n.º 1
0
 async def test_handle_command__other_command(self, handle_command):
     from randtalkbot.admin_handler import StrangerHandler
     message = Mock()
     message.command = 'foo_command'
     message.command_args = 'foo_args'
     await self.admin_handler.handle_command(message)
     handle_command.assert_called_once_with(message)
Ejemplo n.º 2
0
 async def test_handle_command__start_has_invited_himself(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.return_value = {'i': 'foo_invitation'}
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     self.stranger.invitation = 'foo_invitation'
     stranger_service = StrangerService.get_instance.return_value
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, None)
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call(
                 'Don\'t try to fool me. Forward message with the link to your friends and'
                 ' receive well-earned bonuses that will help you to find partner quickly.'
             ),
             call(
                 '*Manual*\n\nUse /begin to start looking for a conversational partner, once'
                 ' you\'re matched you can use /end to end the conversation.'
             ),
         ],
     )
Ejemplo n.º 3
0
 async def test_handle_command__other_command(self, handle_command):
     from randtalkbot.admin_handler import StrangerHandler
     message = Mock()
     message.command = 'foo_command'
     message.command_args = 'foo_args'
     await self.admin_handler.handle_command(message)
     handle_command.assert_called_once_with(message)
 async def test_handle_command__start_no_invitation_is_in_setup(self):
     message = Mock()
     message.command_args = ''
     self.stranger.wizard = 'setup'
     self.stranger.invited_by = None
     await self.stranger_handler._handle_command_start(message)
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_not_called()
Ejemplo n.º 5
0
 async def test_handle_command__start_no_invitation_is_in_setup(self):
     message = Mock()
     message.command_args = ''
     self.stranger.wizard = 'setup'
     self.stranger.invited_by = None
     await self.stranger_handler._handle_command_start(message)
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_not_called()
Ejemplo n.º 6
0
 async def test_handle_command_pay__no_command_args(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     message = Mock()
     message.command_args = None
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_not_called()
     self.sender.send_notification.assert_called_once_with(
         'Please specify Telegram ID and bonus amount like this: `/pay 31416 10 Thanks!`',
         )
Ejemplo n.º 7
0
 async def test_handle_command_pay__no_command_args(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     message = Mock()
     message.command_args = None
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_not_called()
     self.sender.send_notification.assert_called_once_with(
         'Please specify Telegram ID and bonus amount like this: `/pay 31416 10 Thanks!`',
         )
Ejemplo n.º 8
0
 async def test_handle_command__start_no_invitation(self):
     message = Mock()
     message.command_args = ''
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     await self.stranger_handler._handle_command_start(message)
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once'
         ' you\'re matched you can use /end to end the conversation.')
Ejemplo n.º 9
0
 async def test_handle_command_clear(self):
     from randtalkbot.admin_handler import StrangerService
     stranger = CoroutineMock()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger.return_value = stranger
     message = Mock()
     message.command_args = '31416'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     stranger.end_talk.assert_called_once_with()
     self.sender.send_notification.assert_called_once_with('Stranger {0} was cleared', 31416)
Ejemplo n.º 10
0
 async def test_handle_command_pay(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     stranger = CoroutineMock()
     stranger_service.get_stranger.return_value = stranger
     message = Mock()
     message.command_args = '31416 27183 foo gratitude'
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     stranger.pay.assert_called_once_with(27183, 'foo gratitude')
     self.sender.send_notification.assert_called_once_with('Success.')
Ejemplo n.º 11
0
 async def test_handle_command__start_no_invitation(self):
     message = Mock()
     message.command_args = ''
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     await self.stranger_handler._handle_command_start(message)
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once '
             'you\'re matched you can use /end to end the conversation.'
         )
Ejemplo n.º 12
0
 async def test_handle_command_clear(self):
     from randtalkbot.admin_handler import StrangerService
     stranger = CoroutineMock()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger.return_value = stranger
     message = Mock()
     message.command_args = '31416'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     stranger.end_talk.assert_called_once_with()
     self.sender.send_notification.assert_called_once_with('Stranger {0} was cleared', 31416)
Ejemplo n.º 13
0
 async def test_handle_command_pay(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     stranger = CoroutineMock()
     stranger_service.get_stranger.return_value = stranger
     message = Mock()
     message.command_args = '31416 27183 foo gratitude'
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     stranger.pay.assert_called_once_with(27183, 'foo gratitude')
     self.sender.send_notification.assert_called_once_with('Success.')
Ejemplo n.º 14
0
 async def test_handle_command_pay__unknown_stranger(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     error = StrangerServiceError()
     stranger_service.get_stranger.side_effect = error
     message = Mock()
     message.command_args = '31416 27183'
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     self.sender.send_notification.assert_called_once_with(
         'Stranger wasn\'t found: {0}',
         error,
         )
Ejemplo n.º 15
0
 async def test_handle_command_pay__unknown_stranger(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     error = StrangerServiceError()
     stranger_service.get_stranger.side_effect = error
     message = Mock()
     message.command_args = '31416 27183'
     await self.admin_handler._handle_command_pay(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     self.sender.send_notification.assert_called_once_with(
         'Stranger wasn\'t found: {0}',
         error,
         )
Ejemplo n.º 16
0
 async def test_handle_command__start_has_invalid_invitation(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.side_effect = UnsupportedContentError()
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     stranger_service = StrangerService.get_instance.return_value
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once'
         ' you\'re matched you can use /end to end the conversation.')
Ejemplo n.º 17
0
 async def test_handle_command_clear__incorrect_telegram_id(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     message = Mock()
     message.command_args = 'foo'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_not_called()
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call('Is it really telegram_id: \"{0}\"?', 'foo'),
             call('Use it this way: `/clear 31416 27183`'),
             ],
         )
Ejemplo n.º 18
0
 async def test_handle_command_clear__incorrect_telegram_id(self):
     from randtalkbot.admin_handler import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     message = Mock()
     message.command_args = 'foo'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_not_called()
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call('Is it really telegram_id: \"{0}\"?', 'foo'),
             call('Use it this way: `/clear 31416 27183`'),
             ],
         )
Ejemplo n.º 19
0
 async def test_handle_command__start_has_invalid_invitation_json_type(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.return_value = [1, 2, 3]
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     stranger_service = StrangerService.get_instance.return_value
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, None)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once '
             'you\'re matched you can use /end to end the conversation.'
         )
Ejemplo n.º 20
0
 async def test_handle_command_clear__unknown_stranger(self):
     from randtalkbot.admin_handler import StrangerService
     error = StrangerServiceError()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger.side_effect = error
     message = Mock()
     message.command_args = '31416'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call('Stranger {0} wasn\'t found: {1}', 31416, error),
             call('Use it this way: `/clear 31416 27183`'),
             ],
         )
Ejemplo n.º 21
0
 async def test_handle_command_clear__unknown_stranger(self):
     from randtalkbot.admin_handler import StrangerService
     error = StrangerServiceError()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger.side_effect = error
     message = Mock()
     message.command_args = '31416'
     await self.admin_handler._handle_command_clear(message)
     stranger_service.get_stranger.assert_called_once_with(31416)
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call('Stranger {0} wasn\'t found: {1}', 31416, error),
             call('Use it this way: `/clear 31416 27183`'),
             ],
         )
 async def test_handle_command__start_has_invitation_and_already_invited_by(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.return_value = {'i': 'foo_invitation'}
     new_invited_by = CoroutineMock()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger_by_invitation.return_value = new_invited_by
     self.stranger.wizard = 'none'
     invited_by = CoroutineMock()
     self.stranger.invited_by = invited_by
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, invited_by)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once '
             'you\'re matched you can use /end to end the conversation.'
         )
Ejemplo n.º 23
0
 async def test_handle_command__start_has_invitation_and_already_invited_by(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.return_value = {'i': 'foo_invitation'}
     new_invited_by = CoroutineMock()
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_stranger_by_invitation.return_value = new_invited_by
     self.stranger.wizard = 'none'
     invited_by = CoroutineMock()
     self.stranger.invited_by = invited_by
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, invited_by)
     self.sender.send_notification.assert_called_once_with(
         '*Manual*\n\nUse /begin to start looking for a conversational partner, once '
             'you\'re matched you can use /end to end the conversation.'
         )
Ejemplo n.º 24
0
 async def test_handle_command__start_has_invited_himself(self):
     from randtalkbot.stranger_handler import StrangerService
     message = Mock()
     message.command_args = 'foo_args'
     message.decode_command_args.return_value = {'i': 'foo_invitation'}
     self.stranger.wizard = 'none'
     self.stranger.invited_by = None
     self.stranger.invitation = 'foo_invitation'
     stranger_service = StrangerService.get_instance.return_value
     await self.stranger_handler._handle_command_start(message)
     stranger_service.get_stranger_by_invitation.assert_not_called()
     self.assertEqual(self.stranger.invited_by, None)
     self.assertEqual(
         self.sender.send_notification.call_args_list,
         [
             call('Don\'t try to fool me. Forward message with the link to your friends and '
                 'receive well-earned bonuses that will help you to find partner quickly.'),
             call('*Manual*\n\nUse /begin to start looking for a conversational partner, once '
                 'you\'re matched you can use /end to end the conversation.'),
             ],
         )
Ejemplo n.º 25
0
 async def test_handle_command__other_command(self, handle_command):
     message = Mock()
     message.command = 'foo_command'
     message.command_args = 'foo_args'
     await self.admin_handler.handle_command(message)
     handle_command.assert_called_once_with(message)