fix: session object was never used in aiohttp request (#700) (#701)
* fix: session object was never used in aiohttp request (#700)
* fixup! fix: session object was never used in aiohttp request (#700)
* fixup! fixup! fix: session object was never used in aiohttp request (#700)
Co-authored-by: arithmetic1728 <58957152+arithmetic1728@users.noreply.github.com>
diff --git a/google/auth/transport/_aiohttp_requests.py b/google/auth/transport/_aiohttp_requests.py
index 4293810..ab7dfef 100644
--- a/google/auth/transport/_aiohttp_requests.py
+++ b/google/auth/transport/_aiohttp_requests.py
@@ -138,7 +138,12 @@
"""
def __init__(self, session=None):
- self.session = None
+ # TODO: Use auto_decompress property for aiohttp 3.7+
+ if session is not None and session._auto_decompress:
+ raise ValueError(
+ "Client sessions with auto_decompress=True are not supported."
+ )
+ self.session = session
async def __call__(
self,
diff --git a/system_tests/system_tests_async/conftest.py b/system_tests/system_tests_async/conftest.py
index 47a473e..9669099 100644
--- a/system_tests/system_tests_async/conftest.py
+++ b/system_tests/system_tests_async/conftest.py
@@ -26,9 +26,7 @@
from google.auth.transport import _aiohttp_requests as aiohttp_requests
from system_tests.system_tests_sync import conftest as sync_conftest
-ASYNC_REQUESTS_SESSION = aiohttp.ClientSession()
-ASYNC_REQUESTS_SESSION.verify = False
TOKEN_INFO_URL = "https://www.googleapis.com/oauth2/v3/tokeninfo"
@@ -49,10 +47,18 @@
"""The full path to a valid authorized user file."""
yield sync_conftest.AUTHORIZED_USER_FILE
+
+@pytest.fixture
+async def aiohttp_session():
+ async with aiohttp.ClientSession(auto_decompress=False) as session:
+ yield session
+
+
@pytest.fixture(params=["aiohttp"])
-async def http_request(request):
+async def http_request(request, aiohttp_session):
"""A transport.request object."""
- yield aiohttp_requests.Request(ASYNC_REQUESTS_SESSION)
+ yield aiohttp_requests.Request(aiohttp_session)
+
@pytest.fixture
async def token_info(http_request):
diff --git a/tests_async/transport/test_aiohttp_requests.py b/tests_async/transport/test_aiohttp_requests.py
index 10c31db..a64a4ee 100644
--- a/tests_async/transport/test_aiohttp_requests.py
+++ b/tests_async/transport/test_aiohttp_requests.py
@@ -112,11 +112,18 @@
return aiohttp_requests.Request()
def make_with_parameter_request(self):
- http = mock.create_autospec(aiohttp.ClientSession, instance=True)
+ http = aiohttp.ClientSession(auto_decompress=False)
return aiohttp_requests.Request(http)
+ def test_unsupported_session(self):
+ http = aiohttp.ClientSession(auto_decompress=True)
+ with pytest.raises(ValueError):
+ aiohttp_requests.Request(http)
+
def test_timeout(self):
- http = mock.create_autospec(aiohttp.ClientSession, instance=True)
+ http = mock.create_autospec(
+ aiohttp.ClientSession, instance=True, _auto_decompress=False
+ )
request = aiohttp_requests.Request(http)
request(url="http://example.com", method="GET", timeout=5)
@@ -142,7 +149,9 @@
assert authed_session.credentials == mock.sentinel.credentials
def test_constructor_with_auth_request(self):
- http = mock.create_autospec(aiohttp.ClientSession)
+ http = mock.create_autospec(
+ aiohttp.ClientSession, instance=True, _auto_decompress=False
+ )
auth_request = aiohttp_requests.Request(http)
authed_session = aiohttp_requests.AuthorizedSession(