summaryrefslogtreecommitdiffstats
path: root/Lib/unittest/test/testmock/testhelpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/unittest/test/testmock/testhelpers.py')
-rw-r--r--Lib/unittest/test/testmock/testhelpers.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/unittest/test/testmock/testhelpers.py b/Lib/unittest/test/testmock/testhelpers.py
index 301bca4..f3c7acb 100644
--- a/Lib/unittest/test/testmock/testhelpers.py
+++ b/Lib/unittest/test/testmock/testhelpers.py
@@ -334,6 +334,26 @@ class CallTest(unittest.TestCase):
self.assertEqual(_Call((('bar', 'barz'),),)[0], '')
self.assertEqual(_Call((('bar', 'barz'), {'hello': 'world'}),)[0], '')
+ def test_dunder_call(self):
+ m = MagicMock()
+ m().foo()['bar']()
+ self.assertEqual(
+ m.mock_calls,
+ [call(), call().foo(), call().foo().__getitem__('bar'), call().foo().__getitem__()()]
+ )
+ m = MagicMock()
+ m().foo()['bar'] = 1
+ self.assertEqual(
+ m.mock_calls,
+ [call(), call().foo(), call().foo().__setitem__('bar', 1)]
+ )
+ m = MagicMock()
+ iter(m().foo())
+ self.assertEqual(
+ m.mock_calls,
+ [call(), call().foo(), call().foo().__iter__()]
+ )
+
class SpecSignatureTest(unittest.TestCase):