Add SSLContext.set_default_verify_paths to asyncio blocking detection (#140648)

This one loads a significant number of files from /etc/ssl
This commit is contained in:
J. Nick Koston 2025-03-21 11:50:18 -10:00 committed by GitHub
parent 2571725eb9
commit 6027a26761
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 0 deletions

View File

@ -178,6 +178,15 @@ _BLOCKING_CALLS: tuple[BlockingCall, ...] = (
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=SSLContext.set_default_verify_paths,
object=SSLContext,
function="set_default_verify_paths",
check_allowed=None,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.open,
object=Path,

View File

@ -459,3 +459,14 @@ async def test_open_calls_ignored_in_tests(caplog: pytest.LogCaptureFixture) ->
pass
assert "Detected blocking call to open with args" not in caplog.text
async def test_protect_loop_set_default_verify_paths(
hass: HomeAssistant, caplog: pytest.LogCaptureFixture
) -> None:
"""Test SSLContext.set_default_verify_paths calls in the loop are logged."""
with patch.object(block_async_io, "_IN_TESTS", False):
block_async_io.enable()
context = ssl.create_default_context()
context.set_default_verify_paths()
assert "Detected blocking call to set_default_verify_paths" in caplog.text