Issue #23568: Add rdivmod support to MagicMock() objects.

Patch by Håkan Lövdahl.
This commit is contained in:
Berker Peksag 2015-03-15 01:57:38 +02:00
commit 7aaa85932c
3 changed files with 21 additions and 1 deletions

View File

@ -1661,7 +1661,9 @@ magic_methods = (
"len contains iter "
"hash str sizeof "
"enter exit "
"divmod neg pos abs invert "
# we added divmod and rdivmod here instead of numerics
# because there is no idivmod
"divmod rdivmod neg pos abs invert "
"complex int float index "
"trunc floor ceil "
"bool next "

View File

@ -435,5 +435,20 @@ class TestMockingMagicMethods(unittest.TestCase):
m @= 24
self.assertEqual(m, 24)
def test_divmod_and_rdivmod(self):
m = MagicMock()
self.assertIsInstance(divmod(5, m), MagicMock)
m.__divmod__.return_value = (2, 1)
self.assertEqual(divmod(m, 2), (2, 1))
m = MagicMock()
foo = divmod(2, m)
self.assertIsInstance(foo, MagicMock)
foo_direct = m.__divmod__(2)
self.assertIsInstance(foo_direct, MagicMock)
bar = divmod(m, 2)
self.assertIsInstance(bar, MagicMock)
bar_direct = m.__rdivmod__(2)
self.assertIsInstance(bar_direct, MagicMock)
if __name__ == '__main__':
unittest.main()

View File

@ -18,6 +18,9 @@ Core and Builtins
Library
-------
- Issue #23568: Add rdivmod support to MagicMock() objects.
Patch by Håkan Lövdahl.
- Issue #2052: Add charset parameter to HtmlDiff.make_file().
- Issue #23138: Fixed parsing cookies with absent keys or values in cookiejar.