discordBot/tests/test_help_discord.py
deadzilla 2188a7d3fd feat: упростить вывод команды !hp, добавить тесты
- Убран discord.Embed в пользу простого текста без timestamp ошибки
- Добавлены разделители = вокруг заголовка
- Создан tests/test_help_discord.py с 2 тестами для Discord команды
- Создан tests/test_help_console.py с 2 тестами для консольной команды
- Закрыто: AttributeError 'Message' object has no attribute 'timestamp'
2026-06-02 23:14:37 +05:00

57 lines
1.9 KiB
Python

"""Тесты для команды !hp (help)."""
import pytest
from unittest.mock import AsyncMock, MagicMock
class TestHelpCommandDiscord:
"""Тесты для команды help на Discord."""
async def test_show_help_sends_simple_text(self):
"""Проверка, что команда отправляет простое текстовое сообщение."""
from commands.help import Help
mock_ctx = MagicMock()
mock_ctx.send = AsyncMock(return_value=None)
helper = Help()
await helper._show_help(mock_ctx)
mock_ctx.send.assert_awaited_once()
async def test_show_help_message_content(self):
"""Проверка содержания отправленного сообщения."""
from commands.help import Help
message_calls = []
def send_side_effect(text: str, *args, **kwargs):
message_calls.append(text)
return MagicMock()
mock_ctx = MagicMock()
mock_ctx.send = AsyncMock(side_effect=send_side_effect)
helper = Help()
await helper._show_help(mock_ctx)
assert len(message_calls) == 1
message = message_calls[0]
# Проверка структуры сообщения
assert "Discord Bot — Доступные команды" in message
assert "=" * 40 in message
# Проверяем наличие всех команд без кавычек
commands = ["!pg", "!nw", "!morning", "!cat", "!msg"]
for cmd in commands:
assert cmd in message, f"Команда {cmd} не найдена"
# Проверяем разделение тире между командой и описанием
lines = [l.strip() for l in message.split("\n") if "" in l]
assert len(lines) >= 5
if __name__ == "__main__":
pytest.main([__file__, "-v"])