34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Regression tests for focus manager API compatibility."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from cthulhu import focus_manager
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_is_in_preferences_window_tracks_cthulhu_active_window(monkeypatch):
|
|
manager = focus_manager.FocusManager.__new__(focus_manager.FocusManager)
|
|
window = object()
|
|
app = object()
|
|
manager._window = window
|
|
|
|
monkeypatch.setattr(focus_manager.AXObject, "get_application", lambda obj: app)
|
|
monkeypatch.setattr(focus_manager.AXObject, "get_name", lambda obj: "Cthulhu")
|
|
|
|
assert manager.is_in_preferences_window() is True
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_is_in_preferences_window_is_false_for_non_cthulhu_window(monkeypatch):
|
|
manager = focus_manager.FocusManager.__new__(focus_manager.FocusManager)
|
|
window = object()
|
|
app = object()
|
|
manager._window = window
|
|
|
|
monkeypatch.setattr(focus_manager.AXObject, "get_application", lambda obj: app)
|
|
monkeypatch.setattr(focus_manager.AXObject, "get_name", lambda obj: "Terminal")
|
|
|
|
assert manager.is_in_preferences_window() is False
|