Skip to content

Commit b7466cf

Browse files
committed
Test BaseEventQueue.pending() and .flush()
1 parent 277ada7 commit b7466cf

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

Lib/test/test_pyrepl/test_eventqueue.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
import tempfile
23
import unittest
34
from unittest.mock import patch
@@ -167,6 +168,37 @@ def _push(keys):
167168
self.assertEqual(eq.get(), _event("key", "b"))
168169
self.assertEqual(eq.get(), _event("key", "a"))
169170

171+
def test_pending(self):
172+
eq = base_eventqueue.BaseEventQueue("utf-8", {})
173+
eq.compiled_keymap = eq.keymap = {b"\x1b": {b"[": "down"}}
174+
self.assertFalse(eq.pending())
175+
eq.push(b"\x1b")
176+
self.assertTrue(eq.pending())
177+
eq.push(b"[")
178+
self.assertFalse(eq.pending())
179+
self.assertEqual(eq.get().data, "down")
180+
181+
def test_flush(self):
182+
eq = base_eventqueue.BaseEventQueue("utf-8", {})
183+
eq.compiled_keymap = eq.keymap = {b"\x1b": {b"[": "down"}}
184+
eq.push(b"\x1b")
185+
self.assertTrue(eq.pending())
186+
eq.flush()
187+
self.assertFalse(eq.pending())
188+
event = eq.get()
189+
self.assertIsNotNone(event)
190+
self.assertEqual(event.evt, "key")
191+
self.assertEqual(event.data, "\x1b")
192+
self.assertEqual(event.raw, b"\x1b")
193+
194+
def test_esc_timeout_override(self):
195+
eq = base_eventqueue.BaseEventQueue("utf-8", {}, esc_timeout=0.3)
196+
self.assertAlmostEqual(eq.esc_timeout, 0.3)
197+
198+
with patch.dict(os.environ, {"PYREPL_ESC_TIMEOUT": "0.25"}):
199+
eq = base_eventqueue.BaseEventQueue("utf-8", {})
200+
self.assertAlmostEqual(eq.esc_timeout, 0.25)
201+
170202

171203
class EmptyTermInfo(terminfo.TermInfo):
172204
def get(self, cap: str) -> bytes:

0 commit comments

Comments
 (0)