Skip to content

Commit def72dc

Browse files
authored
Merge pull request #510 from kognity/fix-load-server-metadata-2
Add support for default timeout in OAuth2Session
2 parents 676645c + d644ad7 commit def72dc

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

authlib/integrations/requests_client/oauth2_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def __init__(self, client_id=None, client_secret=None,
8080
token=None, token_placement='header',
8181
update_token=None, **kwargs):
8282

83+
self.default_timeout = kwargs.get('timeout')
8384
Session.__init__(self)
8485
update_session_configure(self, kwargs)
8586

@@ -99,6 +100,7 @@ def fetch_access_token(self, url=None, **kwargs):
99100

100101
def request(self, method, url, withhold_token=False, auth=None, **kwargs):
101102
"""Send request with auto refresh token feature (if available)."""
103+
kwargs['timeout'] = kwargs.get('timeout') or self.default_timeout
102104
if not withhold_token and auth is None:
103105
if not self.token:
104106
raise MissingTokenError()

tests/clients/test_requests/test_oauth2_session.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,3 +506,40 @@ def verifier(r, **kwargs):
506506
sess = requests.Session()
507507
sess.send = verifier
508508
sess.get('https://i.b', auth=client.token_auth)
509+
510+
def test_use_default_request_timeout(self):
511+
expected_timeout = 10
512+
513+
def verifier(r, **kwargs):
514+
timeout = kwargs.get('timeout')
515+
self.assertEqual(timeout, expected_timeout)
516+
resp = mock.MagicMock()
517+
return resp
518+
519+
client = OAuth2Session(
520+
client_id=self.client_id,
521+
token=self.token,
522+
timeout=expected_timeout,
523+
)
524+
525+
client.send = verifier
526+
client.request('GET', 'https://i.b', withhold_token=False)
527+
528+
def test_override_default_request_timeout(self):
529+
default_timeout = 15
530+
expected_timeout = 10
531+
532+
def verifier(r, **kwargs):
533+
timeout = kwargs.get('timeout')
534+
self.assertEqual(timeout, expected_timeout)
535+
resp = mock.MagicMock()
536+
return resp
537+
538+
client = OAuth2Session(
539+
client_id=self.client_id,
540+
token=self.token,
541+
timeout=default_timeout,
542+
)
543+
544+
client.send = verifier
545+
client.request('GET', 'https://i.b', withhold_token=False, timeout=expected_timeout)

0 commit comments

Comments
 (0)