changeset: 90251:445ef3b58109 branch: 3.4 parent: 90246:bdde36cd9048 user: Michael Foord date: Mon Apr 14 11:23:48 2014 -0400 files: Lib/unittest/mock.py Lib/unittest/test/testmock/testmagicmethods.py Misc/NEWS description: Issue 20968. unittest.mock.MagicMock now supports division diff -r bdde36cd9048 -r 445ef3b58109 Lib/unittest/mock.py --- a/Lib/unittest/mock.py Mon Apr 14 10:28:58 2014 -0400 +++ b/Lib/unittest/mock.py Mon Apr 14 11:23:48 2014 -0400 @@ -1634,7 +1634,9 @@ "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()) diff -r bdde36cd9048 -r 445ef3b58109 Lib/unittest/test/testmock/testmagicmethods.py --- a/Lib/unittest/test/testmock/testmagicmethods.py Mon Apr 14 10:28:58 2014 -0400 +++ b/Lib/unittest/test/testmock/testmagicmethods.py Mon Apr 14 11:23:48 2014 -0400 @@ -126,6 +126,31 @@ 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() diff -r bdde36cd9048 -r 445ef3b58109 Misc/NEWS --- a/Misc/NEWS Mon Apr 14 10:28:58 2014 -0400 +++ b/Misc/NEWS Mon Apr 14 11:23:48 2014 -0400 @@ -30,6 +30,9 @@ 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.