Fix stream unsetting auth (#1312)

* Fix ASGITransport path escaping

* Add failing test case for auth with streaming

* Fix .stream setting auth=None
This commit is contained in:
Tom Christie 2020-09-23 11:25:54 +01:00 committed by GitHub
parent 257b8fab6a
commit d25f2bfeff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 2 deletions

View File

@ -234,7 +234,7 @@ class BaseClient:
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 @@ class StreamContextManager:
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,

View File

@ -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/"