fix: Wi-Fi 恢复失败后继续搜索设备 (#66)
This commit is contained in:
@@ -556,13 +556,14 @@ class SettingsPageEventTest(unittest.TestCase):
|
||||
page.eventBinder.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
def test_manual_wifi_reconnect_failure_keeps_saved_device(self):
|
||||
def test_manual_wifi_reconnect_failure_still_lists_usb_device(self):
|
||||
wifi_serial = "192.168.0.173:5555"
|
||||
self.repository.set(SELECTED_ANDROID_SERIAL_KEY, wifi_serial)
|
||||
service = SequenceAndroidDeviceService(
|
||||
[
|
||||
[AndroidDevice(wifi_serial, "Wi-Fi", "Phone", "14")],
|
||||
AndroidDeviceSearchError("目标设备拒绝连接"),
|
||||
[AndroidDevice("USB-001", "USB", "Pixel 8", "14")],
|
||||
]
|
||||
)
|
||||
page = SettingsPage(
|
||||
@@ -574,16 +575,20 @@ class SettingsPageEventTest(unittest.TestCase):
|
||||
self._wait_until(lambda: page.eventBinder._search_thread is None)
|
||||
|
||||
page.searchButton.click()
|
||||
self._wait_until(lambda: service.call_count == 2)
|
||||
self._wait_until(lambda: service.call_count == 3)
|
||||
self._wait_until(lambda: page.eventBinder._search_thread is None)
|
||||
|
||||
self.assertEqual(
|
||||
self.repository.get(SELECTED_ANDROID_SERIAL_KEY),
|
||||
wifi_serial,
|
||||
)
|
||||
self.assertEqual(page.deviceTableModel.checked_serial, wifi_serial)
|
||||
self.assertIn("无法重新连接", page.deviceStatusLabel.text())
|
||||
self.assertIn("已保存配置未更改", page.deviceStatusLabel.text())
|
||||
self.assertIsNotNone(
|
||||
page.deviceTableModel.device_for_serial("USB-001")
|
||||
)
|
||||
self.assertEqual(page.deviceTableModel.checked_serial, "")
|
||||
self.assertIn("找到 1 台 Android 设备", page.deviceStatusLabel.text())
|
||||
self.assertIn("恢复失败", page.deviceStatusLabel.text())
|
||||
self.assertIn("配置已保留", page.deviceStatusLabel.text())
|
||||
page.eventBinder.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
@@ -591,9 +596,38 @@ class SettingsPageEventTest(unittest.TestCase):
|
||||
wifi_serial = "192.168.0.173:5555"
|
||||
self.repository.set(SELECTED_ANDROID_SERIAL_KEY, wifi_serial)
|
||||
service = SequenceAndroidDeviceService(
|
||||
[AndroidDeviceSearchError("目标设备拒绝连接")]
|
||||
[AndroidDeviceSearchError("目标设备拒绝连接"), []]
|
||||
)
|
||||
|
||||
page = SettingsPage(
|
||||
settings_repository=self.repository,
|
||||
admin_gateway=MockAdminGateway(),
|
||||
android_device_service=service,
|
||||
)
|
||||
self._wait_until(lambda: service.call_count == 2)
|
||||
self._wait_until(lambda: page.eventBinder._search_thread is None)
|
||||
|
||||
self.assertEqual(
|
||||
self.repository.get(SELECTED_ANDROID_SERIAL_KEY),
|
||||
wifi_serial,
|
||||
)
|
||||
self.assertIn("自动恢复未完成", page.deviceStatusLabel.text())
|
||||
self.assertIn("未找到其他 Android 设备", page.deviceStatusLabel.text())
|
||||
self.assertIn("配置已保留", page.deviceStatusLabel.text())
|
||||
self.assertTrue(page.searchButton.isEnabled())
|
||||
page.eventBinder.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
def test_search_failure_after_restore_failure_preserves_previous_rows(self):
|
||||
wifi_serial = "192.168.0.173:5555"
|
||||
self.repository.set(SELECTED_ANDROID_SERIAL_KEY, wifi_serial)
|
||||
service = SequenceAndroidDeviceService(
|
||||
[
|
||||
[AndroidDevice(wifi_serial, "Wi-Fi", "Phone", "14")],
|
||||
AndroidDeviceSearchError("目标设备拒绝连接"),
|
||||
AndroidDeviceSearchError("adb devices 执行失败"),
|
||||
]
|
||||
)
|
||||
page = SettingsPage(
|
||||
settings_repository=self.repository,
|
||||
admin_gateway=MockAdminGateway(),
|
||||
@@ -602,13 +636,16 @@ class SettingsPageEventTest(unittest.TestCase):
|
||||
self._wait_until(lambda: service.call_count == 1)
|
||||
self._wait_until(lambda: page.eventBinder._search_thread is None)
|
||||
|
||||
self.assertEqual(
|
||||
self.repository.get(SELECTED_ANDROID_SERIAL_KEY),
|
||||
wifi_serial,
|
||||
page.searchButton.click()
|
||||
self._wait_until(lambda: service.call_count == 3)
|
||||
self._wait_until(lambda: page.eventBinder._search_thread is None)
|
||||
|
||||
self.assertIsNotNone(
|
||||
page.deviceTableModel.device_for_serial(wifi_serial)
|
||||
)
|
||||
self.assertIn("自动恢复失败", page.deviceStatusLabel.text())
|
||||
self.assertIn("可点击搜索重试", page.deviceStatusLabel.text())
|
||||
self.assertTrue(page.searchButton.isEnabled())
|
||||
self.assertEqual(page.deviceTableModel.checked_serial, wifi_serial)
|
||||
self.assertIn("搜索失败", page.deviceStatusLabel.text())
|
||||
self.assertIn("adb devices 执行失败", page.deviceStatusLabel.text())
|
||||
page.eventBinder.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user