From 92cdb18c70a33e37652e563df5c482d166a052ec Mon Sep 17 00:00:00 2001 From: annatisch Date: Wed, 28 Aug 2019 16:42:37 -0700 Subject: [PATCH 1/3] Fix aiohttp auto-headers --- sdk/core/azure-core/azure/core/pipeline/transport/aiohttp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/core/azure-core/azure/core/pipeline/transport/aiohttp.py b/sdk/core/azure-core/azure/core/pipeline/transport/aiohttp.py index 5b54f508bf24..064e72129c80 100644 --- a/sdk/core/azure-core/azure/core/pipeline/transport/aiohttp.py +++ b/sdk/core/azure-core/azure/core/pipeline/transport/aiohttp.py @@ -90,7 +90,8 @@ async def open(self): if not self.session and self._session_owner: self.session = aiohttp.ClientSession( loop=self._loop, - trust_env=self._use_env_settings + trust_env=self._use_env_settings, + skip_auto_headers=['Content-Type'] ) if self.session is not None: await self.session.__aenter__() From e7aef82c8770688abd8b5b81986d39747ceae97e Mon Sep 17 00:00:00 2001 From: annatisch Date: Wed, 28 Aug 2019 16:46:21 -0700 Subject: [PATCH 2/3] Test for auto-header in aiohttp --- .../azure_core_asynctests/test_universal_http.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sdk/core/azure-core/tests/azure_core_asynctests/test_universal_http.py b/sdk/core/azure-core/tests/azure_core_asynctests/test_universal_http.py index 653718e2ab9b..698cbaa09159 100644 --- a/sdk/core/azure-core/tests/azure_core_asynctests/test_universal_http.py +++ b/sdk/core/azure-core/tests/azure_core_asynctests/test_universal_http.py @@ -48,6 +48,15 @@ async def test_basic_aiohttp(): assert sender.session is None assert response.status_code == 200 +@pytest.mark.asyncio +async def test_aiohttp_auto_headers(): + + request = HttpRequest("POST", "https://www.bing.com/") + async with AioHttpTransport() as sender: + response = await sender.send(request) + auto_headers = response.internal_response.request_info.headers + assert 'Content-Type' not in auto_headers + @pytest.mark.asyncio async def test_basic_async_requests(): @@ -77,4 +86,4 @@ async def do(): assert response.body() is not None response = trio.run(do) - assert response.status_code == 200 \ No newline at end of file + assert response.status_code == 200 From a068fc33683aed8f5aa6af2dc1efbe524d0cac6c Mon Sep 17 00:00:00 2001 From: annatisch Date: Wed, 28 Aug 2019 16:47:49 -0700 Subject: [PATCH 3/3] Test auto headers in requests --- sdk/core/azure-core/tests/test_requests_universal.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sdk/core/azure-core/tests/test_requests_universal.py b/sdk/core/azure-core/tests/test_requests_universal.py index c0514b3781dc..6bb8ada25ca4 100644 --- a/sdk/core/azure-core/tests/test_requests_universal.py +++ b/sdk/core/azure-core/tests/test_requests_universal.py @@ -46,3 +46,10 @@ def thread_body(local_sender): with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor: future = executor.submit(thread_body, sender) assert future.result() + +def test_requests_auto_headers(): + request = HttpRequest("POST", "https://www.bing.com/") + with RequestsTransport() as sender: + response = sender.send(request) + auto_headers = response.internal_response.request.headers + assert 'Content-Type' not in auto_headers