mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	gh-111201: Fix event queue tests for pyrepl (#118635)
This commit is contained in:
		
							parent
							
								
									153b3f7530
								
							
						
					
					
						commit
						8e750b83a8
					
				
					 1 changed files with 21 additions and 14 deletions
				
			
		|  | @ -2,6 +2,7 @@ | ||||||
| import os | import os | ||||||
| import rlcompleter | import rlcompleter | ||||||
| import sys | import sys | ||||||
|  | import tempfile | ||||||
| import unittest | import unittest | ||||||
| from code import InteractiveConsole | from code import InteractiveConsole | ||||||
| from functools import partial | from functools import partial | ||||||
|  | @ -603,26 +604,32 @@ def test_global_namespace_completion(self): | ||||||
| 
 | 
 | ||||||
| @patch("_pyrepl.curses.tigetstr", lambda x: b"") | @patch("_pyrepl.curses.tigetstr", lambda x: b"") | ||||||
| class TestUnivEventQueue(TestCase): | class TestUnivEventQueue(TestCase): | ||||||
|  |     def setUp(self): | ||||||
|  |         self.file = tempfile.TemporaryFile() | ||||||
|  | 
 | ||||||
|  |     def tearDown(self) -> None: | ||||||
|  |         self.file.close() | ||||||
|  | 
 | ||||||
|     def test_get(self): |     def test_get(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         event = Event("key", "a", b"a") |         event = Event("key", "a", b"a") | ||||||
|         eq.insert(event) |         eq.insert(event) | ||||||
|         self.assertEqual(eq.get(), event) |         self.assertEqual(eq.get(), event) | ||||||
| 
 | 
 | ||||||
|     def test_empty(self): |     def test_empty(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         self.assertTrue(eq.empty()) |         self.assertTrue(eq.empty()) | ||||||
|         eq.insert(Event("key", "a", b"a")) |         eq.insert(Event("key", "a", b"a")) | ||||||
|         self.assertFalse(eq.empty()) |         self.assertFalse(eq.empty()) | ||||||
| 
 | 
 | ||||||
|     def test_flush_buf(self): |     def test_flush_buf(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.buf.extend(b"test") |         eq.buf.extend(b"test") | ||||||
|         self.assertEqual(eq.flush_buf(), b"test") |         self.assertEqual(eq.flush_buf(), b"test") | ||||||
|         self.assertEqual(eq.buf, bytearray()) |         self.assertEqual(eq.buf, bytearray()) | ||||||
| 
 | 
 | ||||||
|     def test_insert(self): |     def test_insert(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         event = Event("key", "a", b"a") |         event = Event("key", "a", b"a") | ||||||
|         eq.insert(event) |         eq.insert(event) | ||||||
|         self.assertEqual(eq.events[0], event) |         self.assertEqual(eq.events[0], event) | ||||||
|  | @ -630,30 +637,30 @@ def test_insert(self): | ||||||
|     @patch("_pyrepl.unix_eventqueue.keymap") |     @patch("_pyrepl.unix_eventqueue.keymap") | ||||||
|     def test_push_with_key_in_keymap(self, mock_keymap): |     def test_push_with_key_in_keymap(self, mock_keymap): | ||||||
|         mock_keymap.compile_keymap.return_value = {"a": "b"} |         mock_keymap.compile_keymap.return_value = {"a": "b"} | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {b"a": "b"} |         eq.keymap = {b"a": "b"} | ||||||
|         eq.push("a") |         eq.push("a") | ||||||
|         self.assertTrue(mock_keymap.compile_keymap.called) |         mock_keymap.compile_keymap.assert_called() | ||||||
|         self.assertEqual(eq.events[0].evt, "key") |         self.assertEqual(eq.events[0].evt, "key") | ||||||
|         self.assertEqual(eq.events[0].data, "b") |         self.assertEqual(eq.events[0].data, "b") | ||||||
| 
 | 
 | ||||||
|     @patch("_pyrepl.unix_eventqueue.keymap") |     @patch("_pyrepl.unix_eventqueue.keymap") | ||||||
|     def test_push_without_key_in_keymap(self, mock_keymap): |     def test_push_without_key_in_keymap(self, mock_keymap): | ||||||
|         mock_keymap.compile_keymap.return_value = {"a": "b"} |         mock_keymap.compile_keymap.return_value = {"a": "b"} | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {b"c": "d"} |         eq.keymap = {b"c": "d"} | ||||||
|         eq.push("a") |         eq.push("a") | ||||||
|         self.assertTrue(mock_keymap.compile_keymap.called) |         mock_keymap.compile_keymap.assert_called() | ||||||
|         self.assertEqual(eq.events[0].evt, "key") |         self.assertEqual(eq.events[0].evt, "key") | ||||||
|         self.assertEqual(eq.events[0].data, "a") |         self.assertEqual(eq.events[0].data, "a") | ||||||
| 
 | 
 | ||||||
|     @patch("_pyrepl.unix_eventqueue.keymap") |     @patch("_pyrepl.unix_eventqueue.keymap") | ||||||
|     def test_push_with_keymap_in_keymap(self, mock_keymap): |     def test_push_with_keymap_in_keymap(self, mock_keymap): | ||||||
|         mock_keymap.compile_keymap.return_value = {"a": "b"} |         mock_keymap.compile_keymap.return_value = {"a": "b"} | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {b"a": {b"b": "c"}} |         eq.keymap = {b"a": {b"b": "c"}} | ||||||
|         eq.push("a") |         eq.push("a") | ||||||
|         self.assertTrue(mock_keymap.compile_keymap.called) |         mock_keymap.compile_keymap.assert_called() | ||||||
|         self.assertTrue(eq.empty()) |         self.assertTrue(eq.empty()) | ||||||
|         eq.push("b") |         eq.push("b") | ||||||
|         self.assertEqual(eq.events[0].evt, "key") |         self.assertEqual(eq.events[0].evt, "key") | ||||||
|  | @ -665,10 +672,10 @@ def test_push_with_keymap_in_keymap(self, mock_keymap): | ||||||
|     @patch("_pyrepl.unix_eventqueue.keymap") |     @patch("_pyrepl.unix_eventqueue.keymap") | ||||||
|     def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap): |     def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap): | ||||||
|         mock_keymap.compile_keymap.return_value = {"a": "b"} |         mock_keymap.compile_keymap.return_value = {"a": "b"} | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {b"a": {b"b": "c"}} |         eq.keymap = {b"a": {b"b": "c"}} | ||||||
|         eq.push("a") |         eq.push("a") | ||||||
|         self.assertTrue(mock_keymap.compile_keymap.called) |         mock_keymap.compile_keymap.assert_called() | ||||||
|         self.assertTrue(eq.empty()) |         self.assertTrue(eq.empty()) | ||||||
|         eq.flush_buf() |         eq.flush_buf() | ||||||
|         eq.push("\033") |         eq.push("\033") | ||||||
|  | @ -679,7 +686,7 @@ def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap): | ||||||
|         self.assertEqual(eq.events[1].data, "b") |         self.assertEqual(eq.events[1].data, "b") | ||||||
| 
 | 
 | ||||||
|     def test_push_special_key(self): |     def test_push_special_key(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {} |         eq.keymap = {} | ||||||
|         eq.push("\x1b") |         eq.push("\x1b") | ||||||
|         eq.push("[") |         eq.push("[") | ||||||
|  | @ -688,7 +695,7 @@ def test_push_special_key(self): | ||||||
|         self.assertEqual(eq.events[0].data, "\x1b") |         self.assertEqual(eq.events[0].data, "\x1b") | ||||||
| 
 | 
 | ||||||
|     def test_push_unrecognized_escape_sequence(self): |     def test_push_unrecognized_escape_sequence(self): | ||||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") |         eq = EventQueue(self.file.fileno(), "utf-8") | ||||||
|         eq.keymap = {} |         eq.keymap = {} | ||||||
|         eq.push("\x1b") |         eq.push("\x1b") | ||||||
|         eq.push("[") |         eq.push("[") | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lysandros Nikolaou
						Lysandros Nikolaou