summaryrefslogtreecommitdiff
path: root/tools/tests/test_ui_flow.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tests/test_ui_flow.py')
-rw-r--r--tools/tests/test_ui_flow.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/tests/test_ui_flow.py b/tools/tests/test_ui_flow.py
index 7e0d336..d98b4c2 100644
--- a/tools/tests/test_ui_flow.py
+++ b/tools/tests/test_ui_flow.py
@@ -1,5 +1,5 @@
# Author: cirakg & claude ai
-# Summary: Tests for the UI flow driver's pure parts: device key layout, JSON lookup and the app-log reader.
+# Summary: Tests for the UI flow driver's pure parts: key layout, JSON lookup, the app-log reader, barcode reading.
from __future__ import annotations
import json
@@ -8,7 +8,9 @@ import time
from pathlib import Path
import pytest
+import segno
import ui_flow
+from PIL import Image
def write_sim(tmp_path: Path, config: dict[str, object]) -> Path:
@@ -71,3 +73,11 @@ def test_app_log_latest_returns_the_last_match(tmp_path: Path) -> None:
match = ui_flow.AppLog(log_path).latest(r"DIAG list_focus y=(\d+)")
assert match is not None and match.group(1) == "42"
assert ui_flow.AppLog(tmp_path / "missing.log").latest("x") is None
+
+
+def test_barcodes_on_reads_a_drawn_code(tmp_path: Path) -> None:
+ path = tmp_path / "qr.png"
+ segno.make("OTPW stress", error="m").save(str(path), scale=4, border=4)
+ screen = Image.open(path).convert("RGB")
+ assert ui_flow.barcodes_on(screen) == ["OTPW stress"]
+ assert ui_flow.barcodes_on(Image.new("RGB", (100, 100), "white")) == []