From 0e1e911f88e91efd7233da6acc0d4f9d75e3b7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Guillot?= Date: Fri, 16 Jan 2026 15:33:22 -0800 Subject: [PATCH] fix: ensure separate sessions for each client instance --- miniflux.py | 4 ++-- tests/test_client.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/miniflux.py b/miniflux.py index 92a4f56..a664797 100644 --- a/miniflux.py +++ b/miniflux.py @@ -111,7 +111,7 @@ def __init__( timeout: float = 30.0, api_key: Optional[str] = None, user_agent: str = DEFAULT_USER_AGENT, - session: requests.Session = requests.Session(), + session: Optional[requests.Session] = None, ): """ Initializes the Miniflux API client. @@ -141,7 +141,7 @@ def __init__( self._base_url = base_url.rstrip("/") self._timeout = timeout - self._session = session + self._session = session or requests.Session() self._session.headers.update({"User-Agent": user_agent}) if api_key: diff --git a/tests/test_client.py b/tests/test_client.py index 5cc069a..3a7c212 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -49,6 +49,14 @@ def test_get_error_reason(self): self.assertEqual(error.status_code, 404) self.assertEqual(error.get_error_reason(), "some error") + def test_default_session_not_shared(self): + client_one = miniflux.Client("http://localhost", api_key="token-one") + client_two = miniflux.Client("http://localhost", api_key="token-two") + + self.assertIsNot(client_one._session, client_two._session) + self.assertEqual(client_one._session.headers.get("X-Auth-Token"), "token-one") + self.assertEqual(client_two._session.headers.get("X-Auth-Token"), "token-two") + def test_get_error_without_reason(self): response = mock.Mock() response.status_code = 404