From 9bd8af788d4f788ae678898b5edff035fe2b9a8e Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Thu, 12 Mar 2015 20:42:48 +0200 Subject: Issue #23581: Add matmul support to MagicMock. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch by Håkan Lövdahl. --- Lib/unittest/mock.py | 2 +- Lib/unittest/test/testmock/testmagicmethods.py | 11 +++++++++++ Misc/NEWS | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 3b7c157..d6a766d 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -1668,7 +1668,7 @@ magic_methods = ( ) numerics = ( - "add sub mul div floordiv mod lshift rshift and xor or pow truediv" + "add sub mul matmul 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 --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py index cc0e707..f4a292a 100644 --- a/Lib/unittest/test/testmock/testmagicmethods.py +++ b/Lib/unittest/test/testmock/testmagicmethods.py @@ -424,5 +424,16 @@ class TestMockingMagicMethods(unittest.TestCase): self.assertEqual(list(m), []) + def test_matmul(self): + m = MagicMock() + self.assertIsInstance(m @ 1, MagicMock) + m.__matmul__.return_value = 42 + m.__rmatmul__.return_value = 666 + m.__imatmul__.return_value = 24 + self.assertEqual(m @ 1, 42) + self.assertEqual(1 @ m, 666) + m @= 24 + self.assertEqual(m, 24) + if __name__ == '__main__': unittest.main() diff --git a/Misc/NEWS b/Misc/NEWS index 5c87046..64d77aa 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -18,6 +18,8 @@ Core and Builtins Library ------- +- Issue #23581: Add matmul support to MagicMock. Patch by Håkan Lövdahl. + - Issue #23566: enable(), register(), dump_traceback() and dump_traceback_later() functions of faulthandler now accept file descriptors. Patch by Wei Wu. -- cgit v0.12