def test__handle_message_call__execute_command_with_correct_commands(self): tcb = TelegramController() tcb.CHAT_ID = 1234567890 tcb._execute_command = MagicMock() tcb._get_updates = MagicMock( return_value={ "ok": True, "result": [ { "update_id": 402107588, "message": { "message_id": 11, "from": { "id": 1234567890, "is_bot": False, "first_name": "msaltnet", "language_code": "ko", }, "chat": { "id": 1234567890, "first_name": "msaltnet", "type": "private" }, "date": 1627694419, "text": "3", }, }, { "update_id": 402107589, "message": { "message_id": 12, "from": { "id": 1234567891, "is_bot": False, "first_name": "msaltnet", "language_code": "ko", }, "chat": { "id": 1234567891, "first_name": "msaltnet", "type": "private" }, "date": 1627694420, "text": "4", }, }, { "update_id": 402107590, "message": { "message_id": 13, "from": { "id": 1234567890, "is_bot": False, "first_name": "msaltnet", "language_code": "ko", }, "chat": { "id": 1234567890, "first_name": "msaltnet", "type": "private" }, "date": 1627694420, "text": "5", }, }, ], }) tcb._handle_message() self.assertEqual(tcb._execute_command.call_args_list[0][0][0], "3") self.assertEqual(tcb._execute_command.call_args_list[1][0][0], "5") self.assertEqual(tcb.last_update_id, 402107590)
def test__execute_command_should_call_action_correctly(self): tcb = TelegramController() tcb._send_text_message = MagicMock() tcb.main_keyboard = "mango keyboard" dummy_command_list = [ { "guide": "{0:15}자동 거래 시작".format("1. 시작"), "cmd": ["시작", "1", "1. 시작"], "action": MagicMock(), }, { "guide": "{0:15}자동 거래 중지".format("2. 중지"), "cmd": ["중지", "2", "2. 중지"], "action": MagicMock(), }, ] tcb.command_list = dummy_command_list tcb._execute_command("안녕~") tcb._send_text_message.assert_called_once_with( "자동 거래 시작 전입니다.\n명령어를 입력해주세요.\n\n1. 시작 자동 거래 시작\n2. 중지 자동 거래 중지\n", "mango keyboard", ) tcb._execute_command("1") dummy_command_list[0]["action"].assert_called_with("1") tcb._execute_command("시작") dummy_command_list[0]["action"].assert_called_with("시작") tcb._execute_command("2") dummy_command_list[1]["action"].assert_called_with("2") tcb._execute_command("중지") dummy_command_list[1]["action"].assert_called_with("중지") dummy_in_progress = MagicMock() tcb.in_progress = dummy_in_progress tcb._execute_command("2. 중지") dummy_in_progress.assert_called_once_with("2. 중지")