"""Тесты для console_commands/trigger_morning.py.""" import importlib from unittest.mock import MagicMock, patch class TestTriggerMorningCommand: """Тесты консольной команды trigger morning.""" def test_trigger_morning_no_scheduler(self, capfd): """Выводит сообщение если scheduler не найден.""" stop_event = MagicMock() stop_event.is_set.return_value = False bot = MagicMock() # Убедимся что _scheduler не установлен через getattr type(bot)._scheduler = None mod = importlib.import_module("console_commands.trigger_morning") mod.trigger_morning(stop_event, bot) captured = capfd.readouterr() assert "не запущен" in captured.out def test_trigger_morning_stop_event(self): """Не выполняется если stop_event установлен.""" stop_event = MagicMock() stop_event.is_set.return_value = True bot = MagicMock() mod = importlib.import_module("console_commands.trigger_morning") result = mod.trigger_morning(stop_event, bot) assert result is None def test_trigger_morning_calls_scheduler(self, capfd): """Вызывает scheduler._run_morning().""" stop_event = MagicMock() stop_event.is_set.return_value = False scheduler = MagicMock() bot = MagicMock() bot._scheduler = scheduler mock_future = MagicMock() mock_future.result.return_value = None mod = importlib.import_module("console_commands.trigger_morning") with patch.object( mod, "asyncio", MagicMock(run_coroutine_threadsafe=MagicMock(return_value=mock_future)) ): mod.trigger_morning(stop_event, bot) captured = capfd.readouterr() assert "запущен вручную" in captured.out