"""Тесты для console_commands/reload.py.""" import importlib from unittest.mock import MagicMock class TestReloadCommand: """Тесты консольной команды reload.""" def _get_module(self): """Импортировать модуль reload.""" return importlib.reload(importlib.import_module("console_commands.reload")) def test_reload_removes_and_adds_cogs(self, capfd): """Удаляет старые cogs и добавляет новые.""" stop_event = MagicMock() stop_event.is_set.return_value = False bot = MagicMock() bot.cogs = {"TestCog1": MagicMock(), "TestCog2": MagicMock()} cog_class1 = MagicMock() cog_class1.__name__ = "TestCog1" cog_instance1 = MagicMock() cog_instance1.__class__.__name__ = "TestCog1" cog_class1.return_value = cog_instance1 cog_class2 = MagicMock() cog_class2.__name__ = "TestCog2" cog_instance2 = MagicMock() cog_instance2.__class__.__name__ = "TestCog2" cog_class2.return_value = cog_instance2 mod = self._get_module() original = mod.ALL_COMMANDS try: mod.ALL_COMMANDS = [cog_class1, cog_class2] mod.reload(stop_event, bot) finally: mod.ALL_COMMANDS = original assert bot.remove_cog.call_count == 2 assert bot.add_cog.call_count == 2 captured = capfd.readouterr() assert "Перезагружено" in captured.out def test_reload_stop_event(self): """Не выполняется если stop_event установлен.""" stop_event = MagicMock() stop_event.is_set.return_value = True bot = MagicMock() mod = self._get_module() result = mod.reload(stop_event, bot) assert result is None