Files
cthulhu/tests/test_sleep_mode_manager_compat.py

56 lines
1.7 KiB
Python

"""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)