61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
"""当前使用 Android 设备设置服务测试。"""
|
|
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from src.selected_android_device_service import (
|
|
SELECTED_ANDROID_SERIAL_KEY,
|
|
SelectedAndroidDeviceService,
|
|
)
|
|
from src.settings_repository import SettingsRepository
|
|
|
|
|
|
class SelectedAndroidDeviceServiceTest(unittest.TestCase):
|
|
def setUp(self):
|
|
self.temp_directory = tempfile.TemporaryDirectory()
|
|
db_path = Path(self.temp_directory.name) / "client.db"
|
|
self.repository = SettingsRepository(db_path)
|
|
self.service = SelectedAndroidDeviceService(self.repository)
|
|
|
|
def tearDown(self):
|
|
self.temp_directory.cleanup()
|
|
|
|
def test_missing_setting_loads_as_empty(self):
|
|
self.assertEqual(self.service.load(), "")
|
|
|
|
def test_save_normalizes_and_persists_serial(self):
|
|
serial = self.service.save(" 192.168.0.173:5555 ")
|
|
|
|
self.assertEqual(serial, "192.168.0.173:5555")
|
|
self.assertEqual(
|
|
self.repository.get(SELECTED_ANDROID_SERIAL_KEY), serial
|
|
)
|
|
|
|
def test_invalid_serial_is_rejected(self):
|
|
for serial in ("", "USB 001", None):
|
|
with self.subTest(serial=serial):
|
|
with self.assertRaises(ValueError):
|
|
self.service.save(serial)
|
|
|
|
def test_corrupted_setting_loads_as_empty(self):
|
|
self.repository.set(SELECTED_ANDROID_SERIAL_KEY, {"serial": "bad"})
|
|
|
|
self.assertEqual(self.service.load(), "")
|
|
|
|
def test_delete_removes_only_selected_serial(self):
|
|
self.repository.set("android.pdd_package", "com.xunmeng.pinduoduo")
|
|
self.service.save("USB-001")
|
|
|
|
self.assertTrue(self.service.delete())
|
|
|
|
self.assertIsNone(self.repository.get(SELECTED_ANDROID_SERIAL_KEY))
|
|
self.assertEqual(
|
|
self.repository.get("android.pdd_package"),
|
|
"com.xunmeng.pinduoduo",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|