Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 8e750b8

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

File tree

Expand file treeCollapse file tree

1 file changed

+21
-14
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+21
-14
lines changed

‎Lib/test/test_pyrepl.py

Copy file name to clipboardExpand all lines: Lib/test/test_pyrepl.py
+21-14Lines changed: 21 additions & 14 deletions
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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.