From 8e344b531d14f33be306d64b500257b467640be0 Mon Sep 17 00:00:00 2001 From: Shubham Padkonde Date: Sat, 3 Oct 2026 10:32:00 +0530 Subject: [PATCH] fix: honor disabled timeouts during token refresh --- dropbox/dropbox_client.py | 6 +----- test/unit/test_dropbox_unit.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dropbox/dropbox_client.py b/dropbox/dropbox_client.py index 8d7cf1f..fc08908 100644 --- a/dropbox/dropbox_client.py +++ b/dropbox/dropbox_client.py @@ -444,13 +444,9 @@ def refresh_access_token(self, host=API_HOST, scope=None): scope = " ".join(scope) body["scope"] = scope - timeout = DEFAULT_TIMEOUT - if self._timeout: - timeout = self._timeout - attempt = 0 while True: - res = self._session.post(url, data=body, timeout=timeout) + res = self._session.post(url, data=body, timeout=self._timeout) try: self.raise_dropbox_error_for_resp(res) break diff --git a/test/unit/test_dropbox_unit.py b/test/unit/test_dropbox_unit.py index 0a8bb30..b1abca0 100644 --- a/test/unit/test_dropbox_unit.py +++ b/test/unit/test_dropbox_unit.py @@ -537,6 +537,17 @@ def test_check_refresh_with_legacy_token(self, session_instance): dbx.check_and_refresh_access_token() session_instance.post.assert_not_called() + @pytest.mark.parametrize("timeout", [None, 30]) + def test_refresh_respects_client_timeout(self, session_instance, timeout): + dbx = Dropbox( + oauth2_refresh_token=REFRESH_TOKEN, + app_key=APP_KEY, + session=session_instance, + timeout=timeout, + ) + dbx.refresh_access_token() + assert session_instance.post.call_args.kwargs["timeout"] == timeout + def test_check_refresh_with_valid_online_token(self, session_instance): # Test Online Case w/ valid access dbx = Dropbox(