mirror of
https://github.com/Balshgit/gpt_chat_bot.git
synced 2025-12-16 21:20:39 +03:00
add start entry test (#20)
This commit is contained in:
@@ -12,7 +12,7 @@ from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
||||
from constants import BotStagesEnum
|
||||
from core.bot import BotApplication, BotQueue
|
||||
from main import Application
|
||||
from settings.config import AppSettings
|
||||
from settings.config import AppSettings, settings
|
||||
from tests.integration.bot.conftest import mocked_ask_question_api
|
||||
from tests.integration.bot.networking import MockedRequest
|
||||
from tests.integration.factories.bot import (
|
||||
@@ -101,6 +101,40 @@ async def test_help_command(
|
||||
)
|
||||
|
||||
|
||||
async def test_start_entry(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
) -> None:
|
||||
with mock.patch.object(
|
||||
telegram._bot.Bot, "send_message", return_value=lambda *args, **kwargs: (args, kwargs)
|
||||
) as mocked_send_message:
|
||||
bot_update = BotUpdateFactory(message=BotMessageFactory.create_instance(text="/start"))
|
||||
|
||||
await main_application.bot_app.application.process_update(
|
||||
update=Update.de_json(data=bot_update, bot=main_application.bot_app.bot)
|
||||
)
|
||||
|
||||
assert_that(mocked_send_message.call_args.kwargs).is_equal_to(
|
||||
{
|
||||
"text": "Выберете команду:",
|
||||
"chat_id": bot_update["message"]["chat"]["id"],
|
||||
"reply_markup": InlineKeyboardMarkup(
|
||||
inline_keyboard=(
|
||||
(
|
||||
InlineKeyboardButton(callback_data="about_me", text="Обо мне"),
|
||||
InlineKeyboardButton(callback_data="website", text="Веб версия"),
|
||||
),
|
||||
(
|
||||
InlineKeyboardButton(callback_data="help", text="Помощь"),
|
||||
InlineKeyboardButton(callback_data="about_bot", text="О боте"),
|
||||
),
|
||||
)
|
||||
),
|
||||
},
|
||||
include=["text", "chat_id", "reply_markup"],
|
||||
)
|
||||
|
||||
|
||||
async def test_about_me_callback_action(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
@@ -134,9 +168,9 @@ async def test_about_bot_callback_action(
|
||||
)
|
||||
|
||||
assert mocked_reply_text.call_args.args == (
|
||||
"Бот использует бесплатную модель Chat-GPT3.5 для ответов на вопросы. Принимает запросы на разных языках. "
|
||||
"\n\nБот так же умеет переводить голосовые сообщения в текст. Просто пришлите голосовуху и получите поток "
|
||||
"сознания без запятых в виде текста",
|
||||
f"Бот использует бесплатную модель {settings.GPT_MODEL} для ответов на вопросы. "
|
||||
f"Принимает запросы на разных языках.\n\nБот так же умеет переводить русские голосовые сообщения в текст. "
|
||||
f"Просто пришлите голосовуху и получите поток сознания в виде текста, но без знаков препинания",
|
||||
)
|
||||
assert mocked_reply_text.call_args.kwargs == {"parse_mode": "Markdown"}
|
||||
|
||||
@@ -178,3 +212,19 @@ async def test_ask_question_action(
|
||||
},
|
||||
include=["text", "chat_id"],
|
||||
)
|
||||
|
||||
|
||||
async def test_no_update_message(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
) -> None:
|
||||
with mock.patch.object(
|
||||
telegram._bot.Bot, "send_message", return_value=lambda *args, **kwargs: (args, kwargs)
|
||||
) as mocked_send_message:
|
||||
bot_update = BotUpdateFactory(message=None)
|
||||
|
||||
await main_application.bot_app.application.process_update(
|
||||
update=Update.de_json(data=bot_update, bot=main_application.bot_app.bot)
|
||||
)
|
||||
|
||||
assert mocked_send_message.called is False
|
||||
|
||||
Reference in New Issue
Block a user