From 69e59831b17b549270ba628ef30dac075fbbfbb2 Mon Sep 17 00:00:00 2001 From: MrwanBaghdad Date: Tue, 13 Sep 2022 12:41:02 +0200 Subject: [PATCH 1/4] Allow injection of sessions --- tableauserverclient/server/server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index 4522bc272..f83db1dde 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -55,12 +55,12 @@ class PublishMode: Overwrite = "Overwrite" CreateNew = "CreateNew" - def __init__(self, server_address, use_server_version=True, http_options=None): + def __init__(self, server_address, session=None,use_server_version=True, http_options=None): self._server_address = server_address self._auth_token = None self._site_id = None self._user_id = None - self._session = requests.Session() + self._session = session or requests.Session() self._http_options = dict() self.version = "2.3" From 766c570a04dd79737062c68a60dcb0bb37f93cd4 Mon Sep 17 00:00:00 2001 From: MrwanBaghdad Date: Tue, 20 Sep 2022 02:01:02 +0200 Subject: [PATCH 2/4] Rearrange the session parameter --- tableauserverclient/server/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index 91e7d9db0..cd66447e9 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -60,7 +60,7 @@ class PublishMode: Overwrite = "Overwrite" CreateNew = "CreateNew" - def __init__(self, server_address, session=None,use_server_version=True, http_options=None): + def __init__(self, server_address, use_server_version=True, http_options=None, session=None): self._server_address = server_address self._auth_token = None self._site_id = None From a0c83cf386a17a8a86b35340d6c2c9f7a7622aac Mon Sep 17 00:00:00 2001 From: MrwanBaghdad Date: Tue, 20 Sep 2022 14:27:15 +0200 Subject: [PATCH 3/4] Allow injection of session_factory to allow recreation of a new session within the server lifecycle specific usecase is when calling `_clear_auth` --- tableauserverclient/server/server.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index cd66447e9..2f7d1995d 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -60,12 +60,13 @@ class PublishMode: Overwrite = "Overwrite" CreateNew = "CreateNew" - def __init__(self, server_address, use_server_version=True, http_options=None, session=None): + def __init__(self, server_address, use_server_version=True, http_options=None, session_factory=requests.Session): self._server_address = server_address self._auth_token = None self._site_id = None self._user_id = None - self._session = session or requests.Session() + self._session_factory = session_factory + self._session = session_factory() self._http_options = dict() self.version = default_server_version @@ -120,7 +121,7 @@ def _clear_auth(self): self._site_id = None self._user_id = None self._auth_token = None - self._session = requests.Session() + self._session = self._session_factory() def _set_auth(self, site_id, user_id, auth_token): self._site_id = site_id From b229e78a79756e03db0a6b4398c7a66b1556cb7a Mon Sep 17 00:00:00 2001 From: MrwanBaghdad Date: Tue, 20 Sep 2022 14:31:00 +0200 Subject: [PATCH 4/4] Revert change for --- tableauserverclient/server/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index 2f7d1995d..8e8035770 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -60,7 +60,7 @@ class PublishMode: Overwrite = "Overwrite" CreateNew = "CreateNew" - def __init__(self, server_address, use_server_version=True, http_options=None, session_factory=requests.Session): + def __init__(self, server_address, use_server_version=False, http_options=None, session_factory=requests.Session): self._server_address = server_address self._auth_token = None self._site_id = None