nvda.keys
Sending gestures through NVDA’s own input pipeline — not simulated at the OS level, so it
exercises the same gesture-handling code your add-on’s __gestures map runs under.
def test_a_gesture_reaches_nvda(nvda):
nvda.keys.press("NVDA+shift+control+F12")
assert "NVDA+shift+control+F12" in [entry["gesture"] for entry in nvda.keys.sent()]
sent() returns every gesture NVDA has processed this session, in order — useful for asserting
that a gesture was actually delivered even when it produces no speech or log line of its own.
press(gesture, *, timeout=10.0) returns once the gesture has run on NVDA’s main thread. It
does not wait for whatever NVDA does next, so wait on speech or state
(nvda.speech.wait_for, wait_for) before asserting the effect. press_all(*gestures, timeout=10.0) sends gestures one after another, and
type_text(text, *, timeout=30.0) types a string.