Add execution incidents, action bursts and shared Flash history. Expose verification and Explorer settings with streamed check results. Support graceful cancellation, recording recovery and bundled UI resources. Add CI quality checks and clean up comments and documentation.
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""Unit tests for platform-specific emulator process startup."""
|
|
|
|
from types import SimpleNamespace
|
|
from unittest.mock import MagicMock
|
|
|
|
from mcp_server.utils import device_utils
|
|
|
|
|
|
def test_ensure_emulator_uses_windows_creation_flags(monkeypatch) -> None:
|
|
popen = MagicMock()
|
|
monkeypatch.setattr(device_utils.sys, "platform", "win32")
|
|
monkeypatch.setattr(device_utils, "is_emulator_running", lambda _adb: False)
|
|
monkeypatch.setattr(device_utils.os.path, "exists", lambda _path: True)
|
|
monkeypatch.setattr(device_utils.subprocess, "Popen", popen)
|
|
monkeypatch.setattr(
|
|
device_utils.subprocess,
|
|
"run",
|
|
lambda *_args, **_kwargs: SimpleNamespace(stdout="1"),
|
|
)
|
|
monkeypatch.setattr(device_utils.time, "sleep", lambda _seconds: None)
|
|
|
|
assert device_utils.ensure_emulator(
|
|
adb_path="adb.exe", emulator_path="emulator.exe", timeout_seconds=1
|
|
)
|
|
|
|
kwargs = popen.call_args.kwargs
|
|
assert kwargs["creationflags"] == (
|
|
device_utils.subprocess.CREATE_NEW_PROCESS_GROUP | device_utils.subprocess.DETACHED_PROCESS
|
|
)
|
|
assert "start_new_session" not in kwargs
|
|
|
|
|
|
def test_ensure_emulator_starts_new_session_on_posix(monkeypatch) -> None:
|
|
popen = MagicMock()
|
|
monkeypatch.setattr(device_utils.sys, "platform", "linux")
|
|
monkeypatch.setattr(device_utils, "is_emulator_running", lambda _adb: False)
|
|
monkeypatch.setattr(device_utils.os.path, "exists", lambda _path: True)
|
|
monkeypatch.setattr(device_utils.subprocess, "Popen", popen)
|
|
monkeypatch.setattr(
|
|
device_utils.subprocess,
|
|
"run",
|
|
lambda *_args, **_kwargs: SimpleNamespace(stdout="1"),
|
|
)
|
|
monkeypatch.setattr(device_utils.time, "sleep", lambda _seconds: None)
|
|
|
|
assert device_utils.ensure_emulator(adb_path="adb", emulator_path="emulator", timeout_seconds=1)
|
|
|
|
kwargs = popen.call_args.kwargs
|
|
assert kwargs["start_new_session"] is True
|
|
assert "creationflags" not in kwargs
|