diff --git a/authlib/oauth1/client.py b/authlib/oauth1/client.py index 000252e7..b51df50a 100644 --- a/authlib/oauth1/client.py +++ b/authlib/oauth1/client.py @@ -172,4 +172,5 @@ def handle_error(error_type, error_description): raise ValueError(f'{error_type}: {error_description}') def __del__(self): - del self.session + if self.session: + del self.session diff --git a/authlib/oauth2/rfc7521/client.py b/authlib/oauth2/rfc7521/client.py index cf431047..5df03518 100644 --- a/authlib/oauth2/rfc7521/client.py +++ b/authlib/oauth2/rfc7521/client.py @@ -90,3 +90,7 @@ def _refresh_token(self, data): 'POST', self.token_endpoint, data=data, withhold_token=True) return self.parse_response_token(resp) + + def __del__(self): + if self.session: + del self.session diff --git a/tests/clients/test_starlette/test_user_mixin.py b/tests/clients/test_starlette/test_user_mixin.py index 88064dd7..48132e3c 100644 --- a/tests/clients/test_starlette/test_user_mixin.py +++ b/tests/clients/test_starlette/test_user_mixin.py @@ -1,4 +1,5 @@ import pytest +from httpx import ASGITransport from starlette.requests import Request from authlib.integrations.starlette_client import OAuth from authlib.jose import JsonWebKey @@ -16,9 +17,9 @@ async def run_fetch_userinfo(payload): async def fetch_token(request): return get_bearer_token() - app = AsyncPathMapDispatch({ + transport = ASGITransport(AsyncPathMapDispatch({ '/userinfo': {'body': payload} - }) + })) client = oauth.register( 'dev', @@ -27,7 +28,7 @@ async def fetch_token(request): fetch_token=fetch_token, userinfo_endpoint='https://i.b/userinfo', client_kwargs={ - 'app': app, + 'transport': transport, } ) @@ -110,9 +111,9 @@ async def test_force_fetch_jwks_uri(): ) token['id_token'] = id_token - app = AsyncPathMapDispatch({ + transport = ASGITransport(AsyncPathMapDispatch({ '/jwks': {'body': read_key_file('jwks_public.json')} - }) + })) oauth = OAuth() client = oauth.register( @@ -123,7 +124,7 @@ async def test_force_fetch_jwks_uri(): jwks_uri='https://i.b/jwks', issuer='https://i.b', client_kwargs={ - 'app': app, + 'transport': transport, } ) user = await client.parse_id_token(token, nonce='n')