56 lines
1.7 KiB
Python
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)
|