diff --git a/httpx/_client.py b/httpx/_client.py index 6208535f0b..4661b221c5 100644 --- a/httpx/_client.py +++ b/httpx/_client.py @@ -234,7 +234,7 @@ def stream( params: QueryParamTypes = None, headers: HeaderTypes = None, cookies: CookieTypes = None, - auth: AuthTypes = None, + auth: typing.Union[AuthTypes, UnsetType] = UNSET, allow_redirects: bool = True, timeout: typing.Union[TimeoutTypes, UnsetType] = UNSET, ) -> "StreamContextManager": @@ -1786,7 +1786,7 @@ def __init__( client: BaseClient, request: Request, *, - auth: AuthTypes = None, + auth: typing.Union[AuthTypes, UnsetType] = UNSET, allow_redirects: bool = True, timeout: typing.Union[TimeoutTypes, UnsetType] = UNSET, close_client: bool = False, diff --git a/tests/client/test_auth.py b/tests/client/test_auth.py index e3d328c6fa..efbfcc36c4 100644 --- a/tests/client/test_auth.py +++ b/tests/client/test_auth.py @@ -162,6 +162,23 @@ async def test_basic_auth() -> None: assert response.json() == {"auth": "Basic dG9tY2hyaXN0aWU6cGFzc3dvcmQxMjM="} +@pytest.mark.asyncio +async def test_basic_auth_with_stream() -> None: + """ + See: https://github.com/encode/httpx/pull/1312 + """ + url = "https://example.org/" + auth = ("tomchristie", "password123") + app = App() + + async with httpx.AsyncClient(transport=MockTransport(app), auth=auth) as client: + async with client.stream("GET", url) as response: + response.read() + + assert response.status_code == 200 + assert response.json() == {"auth": "Basic dG9tY2hyaXN0aWU6cGFzc3dvcmQxMjM="} + + @pytest.mark.asyncio async def test_basic_auth_in_url() -> None: url = "https://tomchristie:password123@example.org/"