mirror of https://github.com/python/cpython
Issue 20968. unittest.mock.MagicMock now supports division
This commit is contained in:
parent
604453c9ce
commit
d2623d7786
|
@ -1634,7 +1634,9 @@ magic_methods = (
|
||||||
"bool next "
|
"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())
|
inplace = ' '.join('i%s' % n for n in numerics.split())
|
||||||
right = ' '.join('r%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(7 + mock, mock)
|
||||||
self.assertEqual(mock.value, 16)
|
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):
|
def test_hash(self):
|
||||||
mock = Mock()
|
mock = Mock()
|
||||||
|
|
|
@ -30,6 +30,9 @@ Core and Builtins
|
||||||
Library
|
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
|
- Fix arbitrary memory access in JSONDecoder.raw_decode with a negative second
|
||||||
parameter. Bug reported by Guido Vranken.
|
parameter. Bug reported by Guido Vranken.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue