mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15: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 @@ magic_methods = (
|
|||
"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 @@ class TestMockingMagicMethods(unittest.TestCase):
|
|||
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