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 rlcompleter | ||||
| import sys | ||||
| import tempfile | ||||
| import unittest | ||||
| from code import InteractiveConsole | ||||
| from functools import partial | ||||
|  | @ -603,26 +604,32 @@ def test_global_namespace_completion(self): | |||
| 
 | ||||
| @patch("_pyrepl.curses.tigetstr", lambda x: b"") | ||||
| class TestUnivEventQueue(TestCase): | ||||
|     def setUp(self): | ||||
|         self.file = tempfile.TemporaryFile() | ||||
| 
 | ||||
|     def tearDown(self) -> None: | ||||
|         self.file.close() | ||||
| 
 | ||||
|     def test_get(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         event = Event("key", "a", b"a") | ||||
|         eq.insert(event) | ||||
|         self.assertEqual(eq.get(), event) | ||||
| 
 | ||||
|     def test_empty(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         self.assertTrue(eq.empty()) | ||||
|         eq.insert(Event("key", "a", b"a")) | ||||
|         self.assertFalse(eq.empty()) | ||||
| 
 | ||||
|     def test_flush_buf(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         eq.buf.extend(b"test") | ||||
|         self.assertEqual(eq.flush_buf(), b"test") | ||||
|         self.assertEqual(eq.buf, bytearray()) | ||||
| 
 | ||||
|     def test_insert(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         event = Event("key", "a", b"a") | ||||
|         eq.insert(event) | ||||
|         self.assertEqual(eq.events[0], event) | ||||
|  | @ -630,30 +637,30 @@ def test_insert(self): | |||
|     @patch("_pyrepl.unix_eventqueue.keymap") | ||||
|     def test_push_with_key_in_keymap(self, mock_keymap): | ||||
|         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.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].data, "b") | ||||
| 
 | ||||
|     @patch("_pyrepl.unix_eventqueue.keymap") | ||||
|     def test_push_without_key_in_keymap(self, mock_keymap): | ||||
|         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.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].data, "a") | ||||
| 
 | ||||
|     @patch("_pyrepl.unix_eventqueue.keymap") | ||||
|     def test_push_with_keymap_in_keymap(self, mock_keymap): | ||||
|         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.push("a") | ||||
|         self.assertTrue(mock_keymap.compile_keymap.called) | ||||
|         mock_keymap.compile_keymap.assert_called() | ||||
|         self.assertTrue(eq.empty()) | ||||
|         eq.push("b") | ||||
|         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") | ||||
|     def test_push_with_keymap_in_keymap_and_escape(self, mock_keymap): | ||||
|         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.push("a") | ||||
|         self.assertTrue(mock_keymap.compile_keymap.called) | ||||
|         mock_keymap.compile_keymap.assert_called() | ||||
|         self.assertTrue(eq.empty()) | ||||
|         eq.flush_buf() | ||||
|         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") | ||||
| 
 | ||||
|     def test_push_special_key(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         eq.keymap = {} | ||||
|         eq.push("\x1b") | ||||
|         eq.push("[") | ||||
|  | @ -688,7 +695,7 @@ def test_push_special_key(self): | |||
|         self.assertEqual(eq.events[0].data, "\x1b") | ||||
| 
 | ||||
|     def test_push_unrecognized_escape_sequence(self): | ||||
|         eq = EventQueue(sys.stdout.fileno(), "utf-8") | ||||
|         eq = EventQueue(self.file.fileno(), "utf-8") | ||||
|         eq.keymap = {} | ||||
|         eq.push("\x1b") | ||||
|         eq.push("[") | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lysandros Nikolaou
						Lysandros Nikolaou