diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2015-03-14 23:57:38 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2015-03-14 23:57:38 (GMT) |
commit | 7aaa85932cf576470f2befe8257b29039b2cb411 (patch) | |
tree | 23bd06c7c8a1866ec8dc8e35b122a45fe5b8f5ec /Lib/unittest | |
parent | 102029dfd645123244437dee6fc8c0f72125433b (diff) | |
parent | a785dece572e7f2bcc8a10aab3a661208e94583e (diff) | |
download | cpython-7aaa85932cf576470f2befe8257b29039b2cb411.zip cpython-7aaa85932cf576470f2befe8257b29039b2cb411.tar.gz cpython-7aaa85932cf576470f2befe8257b29039b2cb411.tar.bz2 |
Issue #23568: Add rdivmod support to MagicMock() objects.
Patch by Håkan Lövdahl.
Diffstat (limited to 'Lib/unittest')
-rw-r--r-- | Lib/unittest/mock.py | 4 | ||||
-rw-r--r-- | Lib/unittest/test/testmock/testmagicmethods.py | 15 |
2 files changed, 18 insertions, 1 deletions
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index d6a766d..6a0fd50 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -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 " diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py index f4a292a..3c53ec4 100644 --- a/Lib/unittest/test/testmock/testmagicmethods.py +++ b/Lib/unittest/test/testmock/testmagicmethods.py @@ -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() |