"""Compatibility tests for the sleep mode manager.""" from __future__ import annotations import importlib import sys from typing import TYPE_CHECKING import pytest if TYPE_CHECKING: from .cthulhu_test_context import CthulhuTestContext @pytest.mark.unit def test_get_manager_alias_matches_legacy_get_manager( test_context: CthulhuTestContext, ) -> None: """The default script expects the snake_case singleton accessor.""" test_context.setup_shared_dependencies() sys.modules.pop("cthulhu.sleep_mode_manager", None) sleep_mode_manager = importlib.import_module("cthulhu.sleep_mode_manager") assert sleep_mode_manager.get_manager is sleep_mode_manager.getManager assert sleep_mode_manager.get_manager() is sleep_mode_manager.getManager() @pytest.mark.unit def test_sleep_mode_manager_exposes_default_extension_setup_hook( test_context: CthulhuTestContext, ) -> None: """The default script calls set_up_commands() on all extensions.""" test_context.setup_shared_dependencies() sys.modules.pop("cthulhu.sleep_mode_manager", None) sleep_mode_manager = importlib.import_module("cthulhu.sleep_mode_manager") assert hasattr(sleep_mode_manager.get_manager(), "set_up_commands") @pytest.mark.unit def test_sleep_mode_manager_exposes_snake_case_app_state_accessor( test_context: CthulhuTestContext, ) -> None: """The script manager checks sleep mode using the snake_case method name.""" test_context.setup_shared_dependencies() sys.modules.pop("cthulhu.sleep_mode_manager", None) sleep_mode_manager = importlib.import_module("cthulhu.sleep_mode_manager") manager = sleep_mode_manager.get_manager() app = object() assert manager.is_active_for_app(app) == manager.isActiveForApp(app)