feat: 保存当前使用的 Android 设备 (#22)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
"""当前使用 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()
|
||||
Reference in New Issue
Block a user