mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	GH-120804: Remove SafeChildWatcher, FastChildWatcher and MultiLoopChildWatcher from asyncio (#120805)
Remove SafeChildWatcher, FastChildWatcher and MultiLoopChildWatcher from asyncio. These child watchers have been deprecated since Python 3.12. The tests are also removed and some more tests will be added after the rewrite of child watchers.
This commit is contained in:
		
							parent
							
								
									a2f6f7dd26
								
							
						
					
					
						commit
						733dac01b0
					
				
					 5 changed files with 4 additions and 1041 deletions
				
			
		|  | @ -822,52 +822,6 @@ async def client(addr): | |||
|         self.assertEqual(msg1, b"hello world 1!\n") | ||||
|         self.assertEqual(msg2, b"hello world 2!\n") | ||||
| 
 | ||||
|     @unittest.skipIf(sys.platform == 'win32', "Don't have pipes") | ||||
|     @requires_subprocess() | ||||
|     def test_read_all_from_pipe_reader(self): | ||||
|         # See asyncio issue 168.  This test is derived from the example | ||||
|         # subprocess_attach_read_pipe.py, but we configure the | ||||
|         # StreamReader's limit so that twice it is less than the size | ||||
|         # of the data writer.  Also we must explicitly attach a child | ||||
|         # watcher to the event loop. | ||||
| 
 | ||||
|         code = """\ | ||||
| import os, sys | ||||
| fd = int(sys.argv[1]) | ||||
| os.write(fd, b'data') | ||||
| os.close(fd) | ||||
| """ | ||||
|         rfd, wfd = os.pipe() | ||||
|         args = [sys.executable, '-c', code, str(wfd)] | ||||
| 
 | ||||
|         pipe = open(rfd, 'rb', 0) | ||||
|         reader = asyncio.StreamReader(loop=self.loop, limit=1) | ||||
|         protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop) | ||||
|         transport, _ = self.loop.run_until_complete( | ||||
|             self.loop.connect_read_pipe(lambda: protocol, pipe)) | ||||
|         with warnings.catch_warnings(): | ||||
|             warnings.simplefilter('ignore', DeprecationWarning) | ||||
|             watcher = asyncio.SafeChildWatcher() | ||||
|         watcher.attach_loop(self.loop) | ||||
|         try: | ||||
|             with warnings.catch_warnings(): | ||||
|                 warnings.simplefilter('ignore', DeprecationWarning) | ||||
|                 asyncio.set_child_watcher(watcher) | ||||
|             create = asyncio.create_subprocess_exec( | ||||
|                 *args, | ||||
|                 pass_fds={wfd}, | ||||
|             ) | ||||
|             proc = self.loop.run_until_complete(create) | ||||
|             self.loop.run_until_complete(proc.wait()) | ||||
|         finally: | ||||
|             with warnings.catch_warnings(): | ||||
|                 warnings.simplefilter('ignore', DeprecationWarning) | ||||
|                 asyncio.set_child_watcher(None) | ||||
| 
 | ||||
|         os.close(wfd) | ||||
|         data = self.loop.run_until_complete(reader.read(-1)) | ||||
|         self.assertEqual(data, b'data') | ||||
| 
 | ||||
|     def test_streamreader_constructor_without_loop(self): | ||||
|         with self.assertRaisesRegex(RuntimeError, 'no current event loop'): | ||||
|             asyncio.StreamReader() | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Kumar Aditya
						Kumar Aditya