summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_unittest
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_unittest')
-rw-r--r--Lib/test/test_unittest/testmock/testasync.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_unittest/testmock/testasync.py b/Lib/test/test_unittest/testmock/testasync.py
index e05a228..52a3b71 100644
--- a/Lib/test/test_unittest/testmock/testasync.py
+++ b/Lib/test/test_unittest/testmock/testasync.py
@@ -300,6 +300,19 @@ class AsyncSpecTest(unittest.TestCase):
self.assertIsInstance(mock.async_method, AsyncMock)
self.assertIsInstance(mock.normal_method, Mock)
+ def test_spec_async_attributes_instance(self):
+ async_instance = AsyncClass()
+ async_instance.async_func_attr = async_func
+ async_instance.later_async_func_attr = normal_func
+
+ mock_async_instance = Mock(spec_set=async_instance)
+
+ async_instance.later_async_func_attr = async_func
+
+ self.assertIsInstance(mock_async_instance.async_func_attr, AsyncMock)
+ # only the shape of the spec at the time of mock construction matters
+ self.assertNotIsInstance(mock_async_instance.later_async_func_attr, AsyncMock)
+
def test_spec_mock_type_kw(self):
def inner_test(mock_type):
async_mock = mock_type(spec=async_func)