mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Issue 20968. unittest.mock.MagicMock now supports division
This commit is contained in:
		
							parent
							
								
									604453c9ce
								
							
						
					
					
						commit
						d2623d7786
					
				
					 3 changed files with 31 additions and 1 deletions
				
			
		|  | @ -1634,7 +1634,9 @@ def _patch_stopall(): | |||
|     "bool next " | ||||
| ) | ||||
| 
 | ||||
| numerics = "add sub mul div floordiv mod lshift rshift and xor or pow " | ||||
| numerics = ( | ||||
|     "add sub mul div floordiv mod lshift rshift and xor or pow truediv" | ||||
| ) | ||||
| inplace = ' '.join('i%s' % n for n in numerics.split()) | ||||
| right = ' '.join('r%s' % n for n in numerics.split()) | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,6 +126,31 @@ def iadd(mock): | |||
|         self.assertEqual(7 + mock, mock) | ||||
|         self.assertEqual(mock.value, 16) | ||||
| 
 | ||||
|     def test_division(self): | ||||
|         original = mock = Mock() | ||||
|         mock.value = 32 | ||||
|         self.assertRaises(TypeError, lambda: mock / 2) | ||||
| 
 | ||||
|         def truediv(self, other): | ||||
|             mock.value /= other | ||||
|             return self | ||||
|         mock.__truediv__ = truediv | ||||
|         self.assertEqual(mock / 2, mock) | ||||
|         self.assertEqual(mock.value, 16) | ||||
| 
 | ||||
|         del mock.__truediv__ | ||||
|         def itruediv(mock): | ||||
|             mock /= 4 | ||||
|         self.assertRaises(TypeError, itruediv, mock) | ||||
|         mock.__itruediv__ = truediv | ||||
|         mock /= 8 | ||||
|         self.assertEqual(mock, original) | ||||
|         self.assertEqual(mock.value, 2) | ||||
| 
 | ||||
|         self.assertRaises(TypeError, lambda: 8 / mock) | ||||
|         mock.__rtruediv__ = truediv | ||||
|         self.assertEqual(0.5 / mock, mock) | ||||
|         self.assertEqual(mock.value, 4) | ||||
| 
 | ||||
|     def test_hash(self): | ||||
|         mock = Mock() | ||||
|  |  | |||
|  | @ -30,6 +30,9 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #20968: unittest.mock.MagicMock now supports division. | ||||
|   Patch by Johannes Baiter. | ||||
| 
 | ||||
| - Fix arbitrary memory access in JSONDecoder.raw_decode with a negative second | ||||
|   parameter. Bug reported by Guido Vranken. | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Michael Foord
						Michael Foord