← 返回首页
unittest.mock.seal doesn't work as expected with AsyncMock · Issue #100287 · python/cpython · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

unittest.mock.seal doesn't work as expected with AsyncMock #100287

New issue
New issue

Description

I noticed this while reviewing #100252 (comment)

I believe the following test case should pass, but it doesn't on main

import unittest from unittest.mock import Mock, seal class AsyncClass: async def async_method(self): pass def normal_method(self): pass class Case(unittest.TestCase): def test_spec_normal_methods_on_class_with_mock_seal(self): mock = Mock(AsyncClass) seal(mock) # test passes, aka this raises AttributError with self.assertRaises(AttributeError): mock.normal_method # test fails, aka this does not raise AttributError with self.assertRaises(AttributeError): mock.async_method unittest.main()

It's easy to fix, just need to move the clause that handles AsyncMock after the if self._mock_sealed: check.

cc @sobolevn who moved the if self._mock_sealed: check earlier in https://github.com/python/cpython/pull/28300/files , but not all the way

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    • Open in GitHub Copilot app

    Footer

    © 2026 GitHub, Inc.