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 "
|
||||
)
|
||||
|
||||
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()
|
||||
|
|
Loading…
Reference in New Issue