mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Follow-up of r67300: correct a failure in socket.makefile().
SocketIO objects now always have 'name' and 'mode' attributes.
This commit is contained in:
		
							parent
							
								
									304da21138
								
							
						
					
					
						commit
						9d24ff027f
					
				
					 2 changed files with 16 additions and 5 deletions
				
			
		|  | @ -149,8 +149,6 @@ def makefile(self, mode="r", buffering=None, *, | ||||||
|         if buffering == 0: |         if buffering == 0: | ||||||
|             if not binary: |             if not binary: | ||||||
|                 raise ValueError("unbuffered streams must be binary") |                 raise ValueError("unbuffered streams must be binary") | ||||||
|             raw.name = self.fileno() |  | ||||||
|             raw.mode = mode |  | ||||||
|             return raw |             return raw | ||||||
|         if reading and writing: |         if reading and writing: | ||||||
|             buffer = io.BufferedRWPair(raw, raw, buffering) |             buffer = io.BufferedRWPair(raw, raw, buffering) | ||||||
|  | @ -160,11 +158,8 @@ def makefile(self, mode="r", buffering=None, *, | ||||||
|             assert writing |             assert writing | ||||||
|             buffer = io.BufferedWriter(raw, buffering) |             buffer = io.BufferedWriter(raw, buffering) | ||||||
|         if binary: |         if binary: | ||||||
|             buffer.name = self.fileno() |  | ||||||
|             buffer.mode = mode |  | ||||||
|             return buffer |             return buffer | ||||||
|         text = io.TextIOWrapper(buffer, encoding, newline) |         text = io.TextIOWrapper(buffer, encoding, newline) | ||||||
|         text.name = self.fileno() |  | ||||||
|         text.mode = mode |         text.mode = mode | ||||||
|         return text |         return text | ||||||
| 
 | 
 | ||||||
|  | @ -230,6 +225,14 @@ def writable(self): | ||||||
|     def fileno(self): |     def fileno(self): | ||||||
|         return self._sock.fileno() |         return self._sock.fileno() | ||||||
| 
 | 
 | ||||||
|  |     @property | ||||||
|  |     def name(self): | ||||||
|  |         return self._sock.fileno() | ||||||
|  | 
 | ||||||
|  |     @property | ||||||
|  |     def mode(self): | ||||||
|  |         return self._mode | ||||||
|  | 
 | ||||||
|     def close(self): |     def close(self): | ||||||
|         if self.closed: |         if self.closed: | ||||||
|             return |             return | ||||||
|  |  | ||||||
|  | @ -848,6 +848,14 @@ def testClosedAttr(self): | ||||||
|     def _testClosedAttr(self): |     def _testClosedAttr(self): | ||||||
|         self.assert_(not self.cli_file.closed) |         self.assert_(not self.cli_file.closed) | ||||||
| 
 | 
 | ||||||
|  |     def testAttributes(self): | ||||||
|  |         self.assertEqual(self.serv_file.mode, 'r') | ||||||
|  |         self.assertEqual(self.serv_file.name, self.cli_conn.fileno()) | ||||||
|  | 
 | ||||||
|  |     def _testAttributes(self): | ||||||
|  |         self.assertEqual(self.cli_file.mode, 'w') | ||||||
|  |         self.assertEqual(self.cli_file.name, self.serv_conn.fileno()) | ||||||
|  | 
 | ||||||
| class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase): | class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase): | ||||||
| 
 | 
 | ||||||
|     """Repeat the tests from FileObjectClassTestCase with bufsize==0. |     """Repeat the tests from FileObjectClassTestCase with bufsize==0. | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Amaury Forgeot d'Arc
						Amaury Forgeot d'Arc