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:51:56 +02:00
parent b19542d062
commit a785dece57
3 changed files with 21 additions and 1 deletions

View File

@ -1644,7 +1644,9 @@ magic_methods = (
"len contains iter " "len contains iter "
"hash str sizeof " "hash str sizeof "
"enter exit " "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 " "complex int float index "
"trunc floor ceil " "trunc floor ceil "
"bool next " "bool next "

View File

@ -424,5 +424,20 @@ class TestMockingMagicMethods(unittest.TestCase):
self.assertEqual(list(m), []) self.assertEqual(list(m), [])
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__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

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