summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2015-03-12 18:42:48 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2015-03-12 18:42:48 (GMT)
commit9bd8af788d4f788ae678898b5edff035fe2b9a8e (patch)
tree67e57a7ee03bcb0af6cd173a8d158b5dfc7aa21a /Lib/unittest
parent4a0e14730b8cc6ae5b13d634069ea38fa08bc24a (diff)
downloadcpython-9bd8af788d4f788ae678898b5edff035fe2b9a8e.zip
cpython-9bd8af788d4f788ae678898b5edff035fe2b9a8e.tar.gz
cpython-9bd8af788d4f788ae678898b5edff035fe2b9a8e.tar.bz2
Issue #23581: Add matmul support to MagicMock.
Patch by Håkan Lövdahl.
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/mock.py2
-rw-r--r--Lib/unittest/test/testmock/testmagicmethods.py11
2 files changed, 12 insertions, 1 deletions
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()