feat: release 1.4.0 with isolated upgrades and device discovery

This commit is contained in:
chenmingxuan committed 2026-10-09 15:46:28 +08:00
1 parent a6a3ee2eb0
commit df66897ff4
41 files changed
+1564 -126

No files matched your search

@@ -310,6 +310,67 @@ async def test_remote_endpoint_blocks_local_wireless_connection(monkeypatch):
assert "Switch to local ADB" in result["message"]
@pytest.mark.asyncio
async def test_restart_reconnects_tcp_devices_after_server_started(monkeypatch):
from artemis.runtime.adb_discovery import adb_device_discovery
monkeypatch.setattr(
adb_server_connection, "current_endpoint", lambda: AdbServerEndpoint("127.0.0.1", 5037)
)
monkeypatch.setattr(
"artemis.core.diagnostics.adb_keys.inspect_adb_keys",
lambda: type("Keys", (), {"is_corrupted": False})(),
)
events = []
def run(args, **kwargs):
events.append(args[-1])
return subprocess.CompletedProcess(args, 0, "", "")
def reconnect(*args, **kwargs):
events.append("reconnect")
assert kwargs["force"] is True
return [{"target": "127.0.0.1:16384", "success": True}]
monkeypatch.setattr(subprocess, "run", run)
monkeypatch.setattr(adb_device_discovery, "refresh", reconnect)
result = await ReadinessEngine().restart_adb_server()
assert events == ["kill-server", "start-server", "reconnect"]
assert result["automatic_connections"][0]["success"] is True
@pytest.mark.asyncio
async def test_manual_tcp_connection_remembers_success_only(monkeypatch):
from unittest.mock import Mock
from artemis.runtime.adb_discovery import adb_device_discovery
monkeypatch.setattr(
adb_server_connection, "current_endpoint", lambda: AdbServerEndpoint("127.0.0.1", 5037)
)
remember = Mock(return_value=True)
monkeypatch.setattr(adb_device_discovery, "remember", remember)
monkeypatch.setattr(
subprocess,
"run",
lambda args, **kwargs: subprocess.CompletedProcess(
args, 0, "connected to 192.0.2.10:5555", ""
),
)
result = await ReadinessEngine().connect_wireless_adb("192.0.2.10", 5555)
assert result["remembered"] is True
remember.assert_called_once_with("192.0.2.10:5555")
remember.reset_mock()
monkeypatch.setattr(
subprocess,
"run",
lambda args, **kwargs: subprocess.CompletedProcess(args, 1, "", "connection refused"),
)
result = await ReadinessEngine().connect_wireless_adb("192.0.2.11", 5555)
assert result["success"] is False
assert result["remembered"] is False
remember.assert_not_called()
@pytest.mark.asyncio
async def test_remote_endpoint_blocks_local_emulator_launch(monkeypatch):
monkeypatch.setattr(