38 lines
982 B
Python
38 lines
982 B
Python
from __future__ import annotations
|
|
|
|
from types import SimpleNamespace
|
|
|
|
from bot_digitador.core.application import select_document_type
|
|
|
|
|
|
class FakeWrapper:
|
|
def __init__(self):
|
|
self.keys: list[str] = []
|
|
|
|
def type_keys(self, value: str, **_kwargs) -> None:
|
|
self.keys.append(value)
|
|
|
|
|
|
def test_select_document_type_uses_home_and_exact_c_sequence():
|
|
wrapper = FakeWrapper()
|
|
window = SimpleNamespace(wrapper_object=lambda: wrapper)
|
|
clicks: list[tuple[int, int]] = []
|
|
logs: list[str] = []
|
|
|
|
ok = select_document_type(
|
|
window,
|
|
"CC",
|
|
log=logs.append,
|
|
sleep=lambda _seconds: None,
|
|
click=lambda _window, x, y: clicks.append((x, y)),
|
|
)
|
|
|
|
assert ok is True
|
|
assert clicks == [(729, 279)]
|
|
assert wrapper.keys == ["{HOME}", "c", "c", "c", "{ENTER}"]
|
|
|
|
|
|
def test_select_document_type_rejects_unknown_type():
|
|
assert select_document_type(SimpleNamespace(), "XX", log=lambda _message: None) is False
|
|
|