From dd6c0b09567e9f0aa4f8ef39fd4526fac86e9d3e Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Tue, 6 Jun 2023 18:27:16 +0200 Subject: [PATCH] Add clear error message when httpx is not installed --- starlette/testclient.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/starlette/testclient.py b/starlette/testclient.py index a66b901d6..7d4f3e396 100644 --- a/starlette/testclient.py +++ b/starlette/testclient.py @@ -13,13 +13,21 @@ import anyio import anyio.from_thread -import httpx from anyio.streams.stapled import StapledObjectStream from starlette._utils import is_async_callable from starlette.types import ASGIApp, Message, Receive, Scope, Send from starlette.websockets import WebSocketDisconnect +try: + import httpx +except ModuleNotFoundError: # pragma: no cover + raise RuntimeError( + "The starlette.testclient module requires the httpx package to be installed.\n" + "You can install this with:\n" + " $ pip install httpx\n" + ) + if sys.version_info >= (3, 8): # pragma: no cover from typing import TypedDict else: # pragma: no cover