From bf3d6992b61397e8d7418fbe6cb08e8ac3dacc9e Mon Sep 17 00:00:00 2001 From: can Date: Sat, 17 Aug 2019 13:20:03 +0300 Subject: [PATCH 1/3] added trust_env attribute on the client instance --- httpx/api.py | 16 ++++++++-------- httpx/client.py | 40 +++++++++++++++++++-------------------- tests/client/test_auth.py | 8 ++++++++ 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/httpx/api.py b/httpx/api.py index be3390e430..84892880cb 100644 --- a/httpx/api.py +++ b/httpx/api.py @@ -32,7 +32,7 @@ def request( cert: CertTypes = None, verify: VerifyTypes = True, stream: bool = False, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: with Client() as client: return client.request( @@ -66,7 +66,7 @@ def get( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "GET", @@ -96,7 +96,7 @@ def options( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "OPTIONS", @@ -126,7 +126,7 @@ def head( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "HEAD", @@ -159,7 +159,7 @@ def post( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "POST", @@ -195,7 +195,7 @@ def put( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "PUT", @@ -231,7 +231,7 @@ def patch( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "PATCH", @@ -267,7 +267,7 @@ def delete( cert: CertTypes = None, verify: VerifyTypes = True, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return request( "DELETE", diff --git a/httpx/client.py b/httpx/client.py index 9d704b33e9..4a2fb88ed3 100644 --- a/httpx/client.py +++ b/httpx/client.py @@ -65,7 +65,7 @@ def __init__( app: typing.Callable = None, raise_app_exceptions: bool = True, backend: ConcurrencyBackend = None, - trust_env: bool = True, + trust_env: bool = None, ): if backend is None: backend = AsyncioBackend() @@ -106,7 +106,7 @@ def __init__( self.max_redirects = max_redirects self.dispatch = async_dispatch self.concurrency_backend = backend - self.trust_env = trust_env + self.trust_env = True if trust_env is None else trust_env def merge_url(self, url: URLTypes) -> URL: url = self.base_url.join(relative_url=url) @@ -142,7 +142,7 @@ async def send( verify: VerifyTypes = None, cert: CertTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: if auth is None: auth = self.auth @@ -155,7 +155,7 @@ async def send( if auth is None: if url.username or url.password: auth = HTTPBasicAuth(username=url.username, password=url.password) - elif trust_env: + elif self.trust_env if trust_env is None else trust_env: netrc_login = get_netrc_login(url.authority) if netrc_login: netrc_username, _, netrc_password = netrc_login @@ -342,7 +342,7 @@ async def get( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "GET", @@ -372,7 +372,7 @@ async def options( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "OPTIONS", @@ -402,7 +402,7 @@ async def head( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "HEAD", @@ -435,7 +435,7 @@ async def post( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "POST", @@ -471,7 +471,7 @@ async def put( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "PUT", @@ -507,7 +507,7 @@ async def patch( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "PATCH", @@ -543,7 +543,7 @@ async def delete( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: return await self.request( "DELETE", @@ -580,7 +580,7 @@ async def request( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> AsyncResponse: url = self.merge_url(url) headers = self.merge_headers(headers) @@ -664,7 +664,7 @@ def request( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: url = self.merge_url(url) headers = self.merge_headers(headers) @@ -733,7 +733,7 @@ def get( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "GET", @@ -763,7 +763,7 @@ def options( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "OPTIONS", @@ -793,7 +793,7 @@ def head( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "HEAD", @@ -826,7 +826,7 @@ def post( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "POST", @@ -862,7 +862,7 @@ def put( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "PUT", @@ -898,7 +898,7 @@ def patch( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "PATCH", @@ -934,7 +934,7 @@ def delete( cert: CertTypes = None, verify: VerifyTypes = None, timeout: TimeoutTypes = None, - trust_env: bool = True, + trust_env: bool = None, ) -> Response: return self.request( "DELETE", diff --git a/tests/client/test_auth.py b/tests/client/test_auth.py index 9127df869e..6e615db383 100644 --- a/tests/client/test_auth.py +++ b/tests/client/test_auth.py @@ -92,3 +92,11 @@ def test_trust_env_auth(): assert response.status_code == 200 assert response.json() == {"auth": None} + + with Client(dispatch=MockDispatch()) as client: + response = client.get(url, trust_env=True) + + assert response.status_code == 200 + assert response.json() == { + "auth": "Basic ZXhhbXBsZS11c2VybmFtZTpleGFtcGxlLXBhc3N3b3Jk" + } From 5fa2386cdfc5c9e7fe3a5f4da285a35221a30b4d Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Sat, 17 Aug 2019 09:02:57 -0500 Subject: [PATCH 2/3] Update test_auth.py --- tests/client/test_auth.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/client/test_auth.py b/tests/client/test_auth.py index 6e615db383..a7ddb93f53 100644 --- a/tests/client/test_auth.py +++ b/tests/client/test_auth.py @@ -93,7 +93,8 @@ def test_trust_env_auth(): assert response.status_code == 200 assert response.json() == {"auth": None} - with Client(dispatch=MockDispatch()) as client: + # Test that the setting at the request() level overrides client. + with Client(dispatch=MockDispatch(), trust_env=False) as client: response = client.get(url, trust_env=True) assert response.status_code == 200 From 845472843004ec42496df09cefa076d2072daf2c Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Sat, 17 Aug 2019 09:50:50 -0500 Subject: [PATCH 3/3] Update test_auth.py --- tests/client/test_auth.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/client/test_auth.py b/tests/client/test_auth.py index a7ddb93f53..6cc64a7ea1 100644 --- a/tests/client/test_auth.py +++ b/tests/client/test_auth.py @@ -93,7 +93,6 @@ def test_trust_env_auth(): assert response.status_code == 200 assert response.json() == {"auth": None} - # Test that the setting at the request() level overrides client. with Client(dispatch=MockDispatch(), trust_env=False) as client: response = client.get(url, trust_env=True)