From 397e87a6bf6f9a8e10c0670054254b453aef0856 Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Tue, 21 Apr 2020 20:20:46 +0200 Subject: [PATCH] Add test case for using auto_refresh_kwargs for authentication. Also fix formatting. --- requests_oauthlib/oauth2_session.py | 17 +++++++++++------ tests/test_oauth2_session.py | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/requests_oauthlib/oauth2_session.py b/requests_oauthlib/oauth2_session.py index 02898ad0..d49e6adf 100644 --- a/requests_oauthlib/oauth2_session.py +++ b/requests_oauthlib/oauth2_session.py @@ -419,12 +419,15 @@ def refresh_token( ) kwargs.update(self.auto_refresh_kwargs) - auth = auth or kwargs.pop('auth', None) - client_id = kwargs.get('client_id') - client_secret = kwargs.get('client_secret', '') + auth = auth or kwargs.pop("auth", None) + client_id = kwargs.get("client_id") + client_secret = kwargs.get("client_secret", "") if client_id and (auth is None): - log.debug('Encoding client_id "%s" with client_secret as Basic auth credentials.', client_id) + log.debug( + 'Encoding client_id "%s" with client_secret as Basic auth credentials.', + client_id, + ) auth = requests.auth.HTTPBasicAuth(client_id, client_secret) body = self._client.prepare_refresh_body( @@ -501,8 +504,10 @@ def request( ) token = self.refresh_token( - self.auto_refresh_url, client_id=client_id, - client_secret=client_secret, **kwargs + self.auto_refresh_url, + client_id=client_id, + client_secret=client_secret, + **kwargs ) if self.token_updater: log.debug( diff --git a/tests/test_oauth2_session.py b/tests/test_oauth2_session.py index cfc62368..1fca7cc5 100644 --- a/tests/test_oauth2_session.py +++ b/tests/test_oauth2_session.py @@ -194,6 +194,21 @@ def fake_refresh_with_auth(r, **kwargs): client_secret=self.client_secret, ) + # auto refresh with auth from auto_refresh_kwargs + for client in self.clients: + sess = OAuth2Session( + client=client, + token=self.expired_token, + auto_refresh_url="https://i.b/refresh", + token_updater=token_updater, + auto_refresh_kwargs={ + "client_id": self.client_id, + "client_secret": self.client_secret, + }, + ) + sess.send = fake_refresh_with_auth + sess.get("https://i.b") + @mock.patch("time.time", new=lambda: fake_time) def test_token_from_fragment(self): mobile = MobileApplicationClient(self.client_id)