discordBot/tests/test_admin.py
deadzilla 12ed515cca feat: admin.py для управления ботом через docker exec
- Добавлен console_commands/admin.py — CLI-скрипт с командами
  pogoda, news, cat, morning, help
- Добавлен docstring к методу pg (отображается в !hp)
- Обновлён README.md: архитектура, администрирование в Docker, тесты
- Добавлены тесты test_admin.py (5 тестов)
- Итого тестов: 223
2026-06-12 16:06:35 +05:00

66 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Тесты для admin.py — управление через docker exec."""
import subprocess
import sys
import pytest
ADMIN_SCRIPT = "console_commands/admin.py"
class TestAdminHelp:
"""Тесты команды help."""
def test_help_shows_commands(self, capfd):
"""Команда help выводит список команд."""
result = subprocess.run(
[sys.executable, ADMIN_SCRIPT, "help"],
capture_output=True,
text=True,
)
assert result.returncode == 0
output = result.stdout
assert "pogoda" in output
assert "news" in output
assert "cat" in output
assert "morning" in output
assert "help" in output
def test_no_args_shows_help(self, capfd):
"""Без аргументов выводит help и завершается с кодом 1."""
result = subprocess.run(
[sys.executable, ADMIN_SCRIPT],
capture_output=True,
text=True,
)
assert result.returncode == 1
assert "pogoda" in result.stdout
def test_unknown_command(self, capfd):
"""Неизвестная команда завершается с кодом 1."""
result = subprocess.run(
[sys.executable, ADMIN_SCRIPT, "unknown"],
capture_output=True,
text=True,
)
assert result.returncode == 1
assert "unknown" in result.stdout.lower()
class TestAdminImport:
"""Тесты импорта модуля."""
def test_admin_module_imports(self):
"""Модуль admin импортируется без ошибок."""
from console_commands import admin
assert hasattr(admin, "main")
assert hasattr(admin, "COMMANDS")
assert len(admin.COMMANDS) == 5
def test_commands_mapping(self):
"""Все команды зарегистрированы в маппинге."""
from console_commands.admin import COMMANDS
expected = {"pogoda", "news", "cat", "morning", "help"}
assert set(COMMANDS.keys()) == expected