"""Тесты для команды !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"])