"""Тесты для 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) == 6 def test_commands_mapping(self): """Все команды зарегистрированы в маппинге.""" from console_commands.admin import COMMANDS expected = {"pogoda", "news", "cat", "morning", "logs", "help"} assert set(COMMANDS.keys()) == expected