Files
cmautobuy/client/test/test_selected_android_device_service.py
T

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()