Skip to content

Commit 8e750b8

Browse files
authored
gh-111201: Fix event queue tests for pyrepl (#118635)
1 parent 153b3f7 commit 8e750b8

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

Lib/test/test_pyrepl.py

+21-14
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import rlcompleter
44
import sys
5+
import tempfile
56
import unittest
67
from code import InteractiveConsole
78
from functools import partial
@@ -603,57 +604,63 @@ def test_global_namespace_completion(self):
603604

604605
@patch("_pyrepl.curses.tigetstr", lambda x: b"")
605606
class TestUnivEventQueue(TestCase):
607+
def setUp(self):
608+
self.file = tempfile.TemporaryFile()
609+
610+
def tearDown(self) -> None:
611+
self.file.close()
612+
606613
def test_get(self):
607-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
614+
eq = EventQueue(self.file.fileno(), "utf-8")
608615
event = Event("key", "a", b"a")
609616
eq.insert(event)
610617
self.assertEqual(eq.get(), event)
611618

612619
def test_empty(self):
613-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
620+
eq = EventQueue(self.file.fileno(), "utf-8")
614621
self.assertTrue(eq.empty())
615622
eq.insert(Event("key", "a", b"a"))
616623
self.assertFalse(eq.empty())
617624

618625
def test_flush_buf(self):
619-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
626+
eq = EventQueue(self.file.fileno(), "utf-8")
620627
eq.buf.extend(b"test")
621628
self.assertEqual(eq.flush_buf(), b"test")
622629
self.assertEqual(eq.buf, bytearray())
623630

624631
def test_insert(self):
625-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
632+
eq = EventQueue(self.file.fileno(), "utf-8")
626633
event = Event("key", "a", b"a")
627634
eq.insert(event)
628635
self.assertEqual(eq.events[0], event)
629636

630637
@patch("_pyrepl.unix_eventqueue.keymap")
631638
def test_push_with_key_in_keymap(self, mock_keymap):
632639
mock_keymap.compile_keymap.return_value = {"a": "b"}
633-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
640+
eq = EventQueue(self.file.fileno(), "utf-8")
634641
eq.keymap = {b"a": "b"}
635642
eq.push("a")
636-
self.assertTrue(mock_keymap.compile_keymap.called)
643+
mock_keymap.compile_keymap.assert_called()
637644
self.assertEqual(eq.events[0].evt, "key")
638645
self.assertEqual(eq.events[0].data, "b")
639646

640647
@patch("_pyrepl.unix_eventqueue.keymap")
641648
def test_push_without_key_in_keymap(self, mock_keymap):
642649
mock_keymap.compile_keymap.return_value = {"a": "b"}
643-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
650+
eq = EventQueue(self.file.fileno(), "utf-8")
644651
eq.keymap = {b"c": "d"}
645652
eq.push("a")
646-
self.assertTrue(mock_keymap.compile_keymap.called)
653+
mock_keymap.compile_keymap.assert_called()
647654
self.assertEqual(eq.events[0].evt, "key")
648655
self.assertEqual(eq.events[0].data, "a")
649656

650657
@patch("_pyrepl.unix_eventqueue.keymap")
651658
def test_push_with_keymap_in_keymap(self, mock_keymap):
652659
mock_keymap.compile_keymap.return_value = {"a": "b"}
653-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
660+
eq = EventQueue(self.file.fileno(), "utf-8")
654661
eq.keymap = {b"a": {b"b": "c"}}
655662
eq.push("a")
656-
self.assertTrue(mock_keymap.compile_keymap.called)
663+
mock_keymap.compile_keymap.assert_called()
657664
self.assertTrue(eq.empty())
658665
eq.push("b")
659666
self.assertEqual(eq.events[0].evt, "key")
@@ -665,10 +672,10 @@ def test_push_with_keymap_in_keymap(self, mock_keymap):
665672
@patch("_pyrepl.unix_eventqueue.keymap")
666673
def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap):
667674
mock_keymap.compile_keymap.return_value = {"a": "b"}
668-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
675+
eq = EventQueue(self.file.fileno(), "utf-8")
669676
eq.keymap = {b"a": {b"b": "c"}}
670677
eq.push("a")
671-
self.assertTrue(mock_keymap.compile_keymap.called)
678+
mock_keymap.compile_keymap.assert_called()
672679
self.assertTrue(eq.empty())
673680
eq.flush_buf()
674681
eq.push("\033")
@@ -679,7 +686,7 @@ def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap):
679686
self.assertEqual(eq.events[1].data, "b")
680687

681688
def test_push_special_key(self):
682-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
689+
eq = EventQueue(self.file.fileno(), "utf-8")
683690
eq.keymap = {}
684691
eq.push("\x1b")
685692
eq.push("[")
@@ -688,7 +695,7 @@ def test_push_special_key(self):
688695
self.assertEqual(eq.events[0].data, "\x1b")
689696

690697
def test_push_unrecognized_escape_sequence(self):
691-
eq = EventQueue(sys.stdout.fileno(), "utf-8")
698+
eq = EventQueue(self.file.fileno(), "utf-8")
692699
eq.keymap = {}
693700
eq.push("\x1b")
694701
eq.push("[")

0 commit comments

Comments
 (0)