From f3c662f7599e6d3fae209bcc71c7f709e26502f9 Mon Sep 17 00:00:00 2001 From: Josh Chorlton Date: Wed, 3 Sep 2025 22:25:27 +0000 Subject: [PATCH] add ability to configure retry time limit --- jira/client.py | 5 ++--- tests/test_client.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/jira/client.py b/jira/client.py index b23aff2de..a6439b020 100644 --- a/jira/client.py +++ b/jira/client.py @@ -480,6 +480,7 @@ def __init__( async_workers: int = 5, logging: bool = True, max_retries: int = 3, + max_retry_delay: int = 60, proxies: Any | None = None, timeout: None | float | tuple[float, float] | tuple[float, None] | None = None, auth: tuple[str, str] | None = None, @@ -611,7 +612,7 @@ def __init__( assert isinstance(self._options["headers"], dict) # for mypy benefit # Create Session object and update with config options first - self._session = ResilientSession(timeout=timeout) + self._session = ResilientSession(timeout=timeout, max_retries=max_retries, max_retry_delay=max_retry_delay) # Add the client authentication certificate to the request if configured self._add_client_cert_to_session() # Add the SSL Cert to the request if configured @@ -622,8 +623,6 @@ def __init__( if "cookies" in self._options: self._session.cookies.update(self._options["cookies"]) - self._session.max_retries = max_retries - if proxies: self._session.proxies = proxies diff --git a/tests/test_client.py b/tests/test_client.py index c7e3d72e3..20c53ffcd 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -407,3 +407,16 @@ def test_experimental_non_200_not_404_405( assert ex.value.status_code == status_code assert isinstance(ex.value, JIRAError) + + +def test_client_retry_config(): + client = jira.client.JIRA( + server="https://jira.example.com", + get_server_info=False, + validate=False, + max_retries=81, + max_retry_delay=111, + ) + + assert client._session.max_retries == 81 + assert client._session.max_retry_delay == 111