aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_unittest/testmock/testmock.py
diff options
context:
space:
mode:
authorinfohash <46137868+infohash@users.noreply.github.com>2024-05-02 23:06:35 +0530
committerGitHub <noreply@github.com>2024-05-02 18:36:35 +0100
commitb28a3339e4c63ea3a801dba9bbbc6af5af42c3a0 (patch)
tree59596b2a6485be23e5e4af72198816d97ed93495 /Lib/test/test_unittest/testmock/testmock.py
parent6bcbee09df9f6fa6496fb7f68b6d655f190903a7 (diff)
downloadcpython-b28a3339e4c63ea3a801dba9bbbc6af5af42c3a0.tar.gz
cpython-b28a3339e4c63ea3a801dba9bbbc6af5af42c3a0.zip
gh-90848: Fixed create_autospec ignoring configure_mock style kwargs (#118163)
Diffstat (limited to 'Lib/test/test_unittest/testmock/testmock.py')
-rw-r--r--Lib/test/test_unittest/testmock/testmock.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_unittest/testmock/testmock.py b/Lib/test/test_unittest/testmock/testmock.py
index b81b3049d56..77f6f1eb4b7 100644
--- a/Lib/test/test_unittest/testmock/testmock.py
+++ b/Lib/test/test_unittest/testmock/testmock.py
@@ -115,6 +115,19 @@ class MockTest(unittest.TestCase):
with self.assertRaises(TypeError):
mock()
+ def test_create_autospec_should_be_configurable_by_kwargs(self):
+ """If kwargs are given to configure mock, the function must configure
+ the parent mock during initialization."""
+ mocked_result = 'mocked value'
+ class_mock = create_autospec(spec=Something, **{
+ 'return_value.meth.side_effect': [ValueError, DEFAULT],
+ 'return_value.meth.return_value': mocked_result})
+ with self.assertRaises(ValueError):
+ class_mock().meth(a=None, b=None, c=None)
+ self.assertEqual(class_mock().meth(a=None, b=None, c=None), mocked_result)
+ # Only the parent mock should be configurable because the user will
+ # pass kwargs with respect to the parent mock.
+ self.assertEqual(class_mock().return_value.meth.side_effect, None)
def test_repr(self):
mock = Mock(name='foo')