[Python-checkins] cpython: Issue #23581: Add matmul support to MagicMock.

berker.peksag python-checkins at python.org
Thu Mar 12 19:41:50 CET 2015


https://hg.python.org/cpython/rev/8c65480a1e19
changeset:   94960:8c65480a1e19
user:        Berker Peksag <berker.peksag at gmail.com>
date:        Thu Mar 12 20:42:48 2015 +0200
summary:
  Issue #23581: Add matmul support to MagicMock.

Patch by Håkan Lövdahl.

files:
  Lib/unittest/mock.py                           |   2 +-
  Lib/unittest/test/testmock/testmagicmethods.py |  11 ++++++++++
  Misc/NEWS                                      |   2 +
  3 files changed, 14 insertions(+), 1 deletions(-)


diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -1668,7 +1668,7 @@
 )
 
 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
--- a/Lib/unittest/test/testmock/testmagicmethods.py
+++ b/Lib/unittest/test/testmock/testmagicmethods.py
@@ -424,5 +424,16 @@
         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
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,8 @@
 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.

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list