fix(client): reflect preselected SKU evidence states

This commit is contained in:
QiuSW
2026-08-04 11:38:15 +08:00
parent 3d063b9785
commit dbb69a7d5e
5 changed files with 38 additions and 22 deletions
+14 -9
View File
@@ -124,14 +124,16 @@ class SkuPanelEvidenceTests(unittest.TestCase):
def test_invalid_state_and_url_fail_before_device_access(self) -> None:
adb = FakeAdbClient()
rejected_states = ("initial", "one-dimension-selected", "all-dimensions-selected", "guessed")
with TemporaryDirectory() as temporary:
with self.assertRaises(SkuPanelDeclaredStateError):
self._capturer(adb, FakeUiDevice()).capture(SERIAL, URL, "guessed", Path(temporary) / "state")
for state in rejected_states:
with self.subTest(state=state), self.assertRaises(SkuPanelDeclaredStateError):
self._capturer(adb, FakeUiDevice()).capture(SERIAL, URL, state, Path(temporary) / "state")
with self.assertRaises(ProductUrlError):
self._capturer(adb, FakeUiDevice()).capture(
SERIAL,
"https://mobile.yangkeduo.com/goods.html?goods_id=12x",
"initial",
"panel-opened-target-preselected",
Path(temporary) / "url",
)
@@ -146,7 +148,7 @@ class SkuPanelEvidenceTests(unittest.TestCase):
with self.subTest(error_type=error_type.__name__), TemporaryDirectory() as temporary:
target = Path(temporary) / "evidence"
with self.assertRaises(error_type):
self._capturer(FakeAdbClient(), device).capture(SERIAL, URL, "initial", target)
self._capturer(FakeAdbClient(), device).capture(SERIAL, URL, "panel-opened-target-preselected", target)
self.assertEqual(device.calls, expected_calls)
self.assertFalse(target.exists())
@@ -160,7 +162,7 @@ class SkuPanelEvidenceTests(unittest.TestCase):
with self.subTest(error_type=error_type.__name__), TemporaryDirectory() as temporary:
target = Path(temporary) / "evidence"
with self.assertRaises(error_type):
self._capturer(FakeAdbClient(), device).capture(SERIAL, URL, "initial", target)
self._capturer(FakeAdbClient(), device).capture(SERIAL, URL, "panel-opened-target-preselected", target)
self.assertFalse(target.exists())
self.assertEqual(list(Path(temporary).glob(".evidence.staging-*")), [])
@@ -176,7 +178,7 @@ class SkuPanelEvidenceTests(unittest.TestCase):
with TemporaryDirectory() as temporary:
target = Path(temporary) / "evidence"
with self.assertRaises(SkuPanelEvidenceTimeoutError) as raised:
self._capturer(FakeAdbClient(), TimeoutScreenshotDevice()).capture(SERIAL, URL, "initial", target)
self._capturer(FakeAdbClient(), TimeoutScreenshotDevice()).capture(SERIAL, URL, "panel-opened-target-preselected", target)
self.assertNotIn(SERIAL, str(raised.exception))
self.assertNotIn("adb", str(raised.exception).lower())
@@ -193,7 +195,7 @@ class SkuPanelEvidenceTests(unittest.TestCase):
sentinel.write_text("keep", encoding="utf-8")
with self.assertRaises(SkuPanelEvidenceError):
self._capturer(adb, device).capture(SERIAL, URL, "initial", target)
self._capturer(adb, device).capture(SERIAL, URL, "panel-opened-target-preselected", target)
self.assertEqual(adb.calls, [])
self.assertEqual(device.calls, [])
@@ -224,7 +226,7 @@ class SkuPanelSpikeCliTests(unittest.TestCase):
"serial": SERIAL,
"url": URL,
"goods_id": None,
"state": "initial",
"state": "panel-opened-target-preselected",
"output_dir": Path("evidence"),
"timeout": 10.0,
"adb": "adb",
@@ -234,6 +236,9 @@ class SkuPanelSpikeCliTests(unittest.TestCase):
("timeout", 0),
("timeout", float("inf")),
("state", "not-declared"),
("state", "initial"),
("state", "one-dimension-selected"),
("state", "all-dimensions-selected"),
("url", "https://mobile.yangkeduo.com/goods.html?goods_id=bad"),
)
for field, value in invalid_values:
@@ -248,7 +253,7 @@ class SkuPanelSpikeCliTests(unittest.TestCase):
serial=SERIAL,
url=None,
goods_id="00123",
state="all-dimensions-selected",
state="target-selection-restored",
output_dir=Path("evidence"),
timeout=10.0,
adb="adb",