fix(client): reflect preselected SKU evidence states
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user