From e741635e5452ba8013d926bddf2be3a292910dca Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Sat, 21 Jun 2025 09:54:43 +0800 Subject: [PATCH] Use `Self` in `TestClient.__enter__` (#2951) --- starlette/testclient.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/starlette/testclient.py b/starlette/testclient.py index df8e1138..575b1a71 100644 --- a/starlette/testclient.py +++ b/starlette/testclient.py @@ -35,6 +35,11 @@ if sys.version_info >= (3, 10): # pragma: no cover else: # pragma: no cover from typing_extensions import TypeGuard +if sys.version_info >= (3, 11): # pragma: no cover + from typing import Self +else: # pragma: no cover + from typing_extensions import Self + try: import httpx except ModuleNotFoundError: # pragma: no cover @@ -667,7 +672,7 @@ class TestClient(httpx.Client): return session - def __enter__(self) -> TestClient: + def __enter__(self) -> Self: with contextlib.ExitStack() as stack: self.portal = portal = stack.enter_context(anyio.from_thread.start_blocking_portal(**self.async_backend)) -- 2.47.2