8000 remove threading code · LehmD/server-client-python@21503f4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 21503f4

Browse files
committed
remove threading code
1 parent d79ca4c commit 21503f4

File tree

2 files changed

+11
-45
lines changed

2 files changed

+11
-45
lines changed

tableauserverclient/server/endpoint/endpoint.py

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from threading import Thread
2-
from time import sleep
31
from tableauserverclient import datetime_helpers as datetime
42

53
from packaging.version import Version
@@ -76,55 +74,20 @@ def set_user_agent(parameters):
7674
return parameters
7775

7876
def _blocking_request(self, method, url, parameters={}) -> Optional[Union["Response", Exception]]:
79-
self.async_response = None
8077
response = None
8178
logger.debug("[{}] Begin blocking request to {}".format(datetime.timestamp(), url))
8279
try:
8380
response = method(url, **parameters)
84-
self.async_response = response
8581
logger.debug("[{}] Call finished".format(datetime.timestamp()))
8682
except Exception as e:
8783
logger.debug("Error making request to server: {}".format(e))
88-
self.async_response = e
89-
finally:
90-
if response and not self.async_response:
91-
logger.debug("Request response not saved")
92-
return None
93-
logger.debug("[{}] Request complete".format(datetime.timestamp()))
94-
return self.async_response
84+
raise e
85+
return response
9586

9687
def send_request_while_show_progress_threaded(
9788
self, method, url, parameters={}, request_timeout=None
9889
) -> Optional[Union["Response", Exception]]:
99-
try:
100-
request_thread = Thread(target=self._blocking_request, args=(method, url, parameters))
101-
request_thread.start()
102-
except Exception as e:
103-
logger.debug("Error starting server request on separate thread: {}".format(e))
104-
return None
105-
seconds = 0.05
106-
minutes = 0
107-
last_log_minute = 0
108-
sleep(seconds)
109-
if self.async_response is not None:
110-
# a quick return for any immediate responses
111-
return self.async_response
112-
timed_out: bool = request_timeout is not None and seconds > request_timeout
10000 113-
while (self.async_response is None) and not timed_out:
114-
sleep(DELAY_SLEEP_SECONDS)
115-
seconds = seconds + DELAY_SLEEP_SECONDS
116-
minutes = int(seconds / 60)
117-
last_log_minute = self.log_wait_time(minutes, last_log_minute, url)
118-
return self.async_response
119-
120-
def log_wait_time(self, minutes, last_log_minute, url) -> int:
121-
logger.debug("{} Waiting....".format(datetime.timestamp()))
122-
if minutes > last_log_minute: # detailed log message ~every minute
123-
logger.info("[{}] Waiting ({} minutes so far) for request to {}".format(datetime.timestamp(), minutes, url))
124-
last_log_minute = minutes
125-
else:
126-
logger.debug("[{}] Waiting for request to {}".format(datetime.timestamp(), url))
127-
return last_log_minute
90+
return self._blocking_request(method, url, parameters)
12891

12992
def _make_request(
13093
self,

test/test_endpoint.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from pathlib import Path
2+
import pytest
3+
import requests
24
import unittest
35

46
import tableauserverclient as TSC
@@ -35,11 +37,12 @@ def test_user_friendly_request_returns(self) -> None:
3537
)
3638
self.assertIsNotNone(response)
3739

38-
def test_blocking_request_returns(self) -> None:
39-
url = "http://test/"
40-
endpoint = TSC.server.Endpoint(self.server)
41-
response = endpoint._blocking_request(endpoint.parent_srv.session.get, url=url)
42-
self.assertIsNotNone(response)
40+
def test_blocking_request_raises_request_error(self) -> None:
41+
with pytest.raises(requests.exceptions.ConnectionError):
42+
url = "http://test/"
43+
e 5581 ndpoint = TSC.server.Endpoint(self.server)
44+
response = endpoint._blocking_request(endpoint.parent_srv.session.get, url=url)
45+
self.assertIsNotNone(response)
4346

4447
def test_get_request_stream(self) -> None:
4548
url = "http://test/"

0 commit comments

Comments
 (0)
0