|
| 1 | +import os |
1 | 2 | import tempfile |
2 | 3 | import unittest |
3 | 4 | from unittest.mock import patch |
@@ -167,6 +168,37 @@ def _push(keys): |
167 | 168 | self.assertEqual(eq.get(), _event("key", "b")) |
168 | 169 | self.assertEqual(eq.get(), _event("key", "a")) |
169 | 170 |
|
| 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 | + |
170 | 202 |
|
171 | 203 | class EmptyTermInfo(terminfo.TermInfo): |
172 | 204 | def get(self, cap: str) -> bytes: |
|
0 commit comments