feat: 内置并统一使用项目 ADB (#149)

This commit is contained in:
chengma
2026-08-11 12:01:07 +08:00
parent 56b1a46c5c
commit 8f2037db2f
21 changed files with 355 additions and 46 deletions
+20
View File
@@ -5,6 +5,7 @@ import tempfile
import time
import unittest
from pathlib import Path
from unittest.mock import patch
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
@@ -12,6 +13,7 @@ from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtTest import QTest
from PyQt5.QtWidgets import QApplication
from src.adb_runtime import BundledAdbError
from src.android_device_service import (
AndroidDevice,
AndroidDeviceConversionCancelled,
@@ -218,6 +220,24 @@ class SettingsPageEventTest(unittest.TestCase):
page.eventBinder.shutdown()
page.deleteLater()
def test_missing_bundled_adb_disables_device_commands(self):
message = "内置 ADB 文件缺失:adb.exe。请重新安装完整的软件包。"
with patch(
"src.settings_ui_event.validate_bundled_adb",
side_effect=BundledAdbError(message),
):
page = SettingsPage(
settings_repository=self.repository,
admin_gateway=MockAdminGateway(),
)
self.assertEqual(page.deviceStatusLabel.text(), message)
self.assertFalse(page.searchButton.isEnabled())
self.assertFalse(page.convertWifiButton.isEnabled())
self.assertTrue(page.currentDeviceSaveButton.isEnabled())
page.eventBinder.shutdown()
page.deleteLater()
def test_compact_form_layout_keeps_related_fields_on_same_row(self):
page = SettingsPage(
settings_repository=self.repository,