Skip to content

Commit fd8efd1

Browse files
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 <[email protected]>
1 parent 4f8f6b6 commit fd8efd1

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

packages/google-auth/google/auth/transport/_aiohttp_requests.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,12 @@ class Request(transport.Request):
138138
"""
139139

140140
def __init__(self, session=None):
141-
self.session = None
141+
# TODO: Use auto_decompress property for aiohttp 3.7+
142+
if session is not None and session._auto_decompress:
143+
raise ValueError(
144+
"Client sessions with auto_decompress=True are not supported."
145+
)
146+
self.session = session
142147

143148
async def __call__(
144149
self,

packages/google-auth/system_tests/system_tests_async/conftest.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
from google.auth.transport import _aiohttp_requests as aiohttp_requests
2727
from system_tests.system_tests_sync import conftest as sync_conftest
2828

29-
ASYNC_REQUESTS_SESSION = aiohttp.ClientSession()
3029

31-
ASYNC_REQUESTS_SESSION.verify = False
3230
TOKEN_INFO_URL = "https://www.googleapis.com/oauth2/v3/tokeninfo"
3331

3432

@@ -49,10 +47,18 @@ def authorized_user_file():
4947
"""The full path to a valid authorized user file."""
5048
yield sync_conftest.AUTHORIZED_USER_FILE
5149

50+
51+
@pytest.fixture
52+
async def aiohttp_session():
53+
async with aiohttp.ClientSession(auto_decompress=False) as session:
54+
yield session
55+
56+
5257
@pytest.fixture(params=["aiohttp"])
53-
async def http_request(request):
58+
async def http_request(request, aiohttp_session):
5459
"""A transport.request object."""
55-
yield aiohttp_requests.Request(ASYNC_REQUESTS_SESSION)
60+
yield aiohttp_requests.Request(aiohttp_session)
61+
5662

5763
@pytest.fixture
5864
async def token_info(http_request):

packages/google-auth/tests_async/transport/test_aiohttp_requests.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,18 @@ def make_request(self):
112112
return aiohttp_requests.Request()
113113

114114
def make_with_parameter_request(self):
115-
http = mock.create_autospec(aiohttp.ClientSession, instance=True)
115+
http = aiohttp.ClientSession(auto_decompress=False)
116116
return aiohttp_requests.Request(http)
117117

118+
def test_unsupported_session(self):
119+
http = aiohttp.ClientSession(auto_decompress=True)
120+
with pytest.raises(ValueError):
121+
aiohttp_requests.Request(http)
122+
118123
def test_timeout(self):
119-
http = mock.create_autospec(aiohttp.ClientSession, instance=True)
124+
http = mock.create_autospec(
125+
aiohttp.ClientSession, instance=True, _auto_decompress=False
126+
)
120127
request = aiohttp_requests.Request(http)
121128
request(url="http://example.com", method="GET", timeout=5)
122129

@@ -142,7 +149,9 @@ def test_constructor(self):
142149
assert authed_session.credentials == mock.sentinel.credentials
143150

144151
def test_constructor_with_auth_request(self):
145-
http = mock.create_autospec(aiohttp.ClientSession)
152+
http = mock.create_autospec(
153+
aiohttp.ClientSession, instance=True, _auto_decompress=False
154+
)
146155
auth_request = aiohttp_requests.Request(http)
147156

148157
authed_session = aiohttp_requests.AuthorizedSession(

0 commit comments

Comments
 (0)