]> granicus.if.org Git - python/commitdiff
Issue #23581: Add matmul support to MagicMock.
authorBerker Peksag <berker.peksag@gmail.com>
Thu, 12 Mar 2015 18:42:48 +0000 (20:42 +0200)
committerBerker Peksag <berker.peksag@gmail.com>
Thu, 12 Mar 2015 18:42:48 +0000 (20:42 +0200)
Patch by Håkan Lövdahl.

Lib/unittest/mock.py
Lib/unittest/test/testmock/testmagicmethods.py
Misc/NEWS

index 3b7c157c7d475e819e4eb883864f842503f6e5a4..d6a766d3834a953a9d91b2c699cf50b0449c73f9 100644 (file)
@@ -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())
index cc0e707ece656282ba8373eae3f4fa6bf8842e85..f4a292afdac15aea6e421afdbc72005fe9f5c5b5 100644 (file)
@@ -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()
index 5c870467254871e0c5a740269381bbec7bd891f9..64d77aa59b5ae8d54aa831cf1f5d9cf345b39dab 100644 (file)
--- 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.