Skip to content

Commit 4417beb

Browse files
authored
chore: pytestify test_endpoint (#1673)
1 parent 2cb03a8 commit 4417beb

File tree

2 files changed

+84
-76
lines changed

2 files changed

+84
-76
lines changed

test/test_dqw.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import unittest
21
import tableauserverclient as TSC
32

43

5-
class DQWTests(unittest.TestCase):
6-
def test_existence(self):
7-
dqw: TSC.DQWItem = TSC.DQWItem()
8-
dqw.message = "message"
9-
dqw.warning_type = TSC.DQWItem.WarningType.STALE
10-
dqw.active = True
11-
dqw.severe = True
4+
def test_dqw_existence():
5+
dqw: TSC.DQWItem = TSC.DQWItem()
6+
dqw.message = "message"
7+
dqw.warning_type = TSC.DQWItem.WarningType.STALE
8+
dqw.active = True
9+
dqw.severe = True

test/test_endpoint.py

Lines changed: 78 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,93 @@
11
from pathlib import Path
22
import pytest
33
import requests
4-
import unittest
54

65
import tableauserverclient as TSC
6+
from tableauserverclient.server.endpoint import Endpoint
77

88
import requests_mock
99

1010
ASSETS = Path(__file__).parent / "assets"
1111

1212

13-
class TestEndpoint(unittest.TestCase):
14-
def setUp(self) -> None:
15-
self.server = TSC.Server("http://test/", use_server_version=False)
13+
@pytest.fixture(scope="function")
14+
def server():
15+
"""Fixture to create a TSC.Server instance for testing."""
16+
server = TSC.Server("http://test", False)
1617

17-
# Fake signin
18-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
19-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
20-
return super().setUp()
18+
# Fake signin
19+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
20+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvS"
2121

22-
def test_fallback_request_logic(self) -> None:
23-
url = "http://test/"
24-
endpoint = TSC.server.Endpoint(self.server)
25-
with requests_mock.mock() as m:
26-
m.get(url)
27-
response = endpoint.get_request(url=url)
28-
self.assertIsNotNone(response)
22+
return server
2923

30-
def test_user_friendly_request_returns(self) -> None:
31-
url = "http://test/"
32-
endpoint = TSC.server.Endpoint(self.server)
33-
with requests_mock.mock() as m:
34-
m.get(url)
35-
response = endpoint.send_request_while_show_progress_threaded(
36-
endpoint.parent_srv.session.get, url=url, request_timeout=2
37-
)
38-
self.assertIsNotNone(response)
39-
40-
def test_blocking_request_raises_request_error(self) -> None:
41-
with pytest.raises(requests.exceptions.ConnectionError):
42-
url = "http://test/"
43-
endpoint = TSC.server.Endpoint(self.server)
44-
response = endpoint._blocking_request(endpoint.parent_srv.session.get, url=url)
45-
self.assertIsNotNone(response)
46-
47-
def test_get_request_stream(self) -> None:
24+
25+
def test_fallback_request_logic(server: TSC.Server) -> None:
26+
url = "http://test/"
27+
endpoint = Endpoint(server)
28+
with requests_mock.mock() as m:
29+
m.get(url)
30+
response = endpoint.get_request(url=url)
31+
assert response is not None
32+
33+
34+
def test_user_friendly_request_returns(server: TSC.Server) -> None:
35+
url = "http://test/"
36+
endpoint = Endpoint(server)
37+
with requests_mock.mock() as m:
38+
m.get(url)
39+
response = endpoint.send_request_while_show_progress_threaded(
40+
endpoint.parent_srv.session.get, url=url, request_timeout=2
41+
)
42+
assert response is not None
43+
44+
45+
def test_blocking_request_raises_request_error(server: TSC.Server) -> None:
46+
with pytest.raises(requests.exceptions.ConnectionError):
4847
url = "http://test/"
49-
endpoint = TSC.server.Endpoint(self.server)
50-
with requests_mock.mock() as m:
51-
m.get(url, headers={"Content-Type": "application/octet-stream"})
52-
response = endpoint.get_request(url, parameters={"stream": True})
53-
54-
self.assertFalse(response._content_consumed)
55-
56-
def test_binary_log_truncated(self):
57-
class FakeResponse:
58-
headers = {"Content-Type": "application/octet-stream"}
59-
content = b"\x1337" * 1000
60-
status_code = 200
61-
62-
endpoint = TSC.server.Endpoint(self.server)
63-
server_response = FakeResponse()
64-
log = endpoint.log_response_safely(server_response)
65-
self.assertTrue(log.find("[Truncated File Contents]") > 0, log)
66-
67-
def test_set_user_agent_from_options_headers(self):
68-
params = {"User-Agent": "1", "headers": {"User-Agent": "2"}}
69-
result = TSC.server.Endpoint.set_user_agent(params)
70-
# it should use the value under 'headers' if more than one is given
71-
print(result)
72-
print(result["headers"]["User-Agent"])
73-
self.assertTrue(result["headers"]["User-Agent"] == "2")
74-
75-
def test_set_user_agent_from_options(self):
76-
params = {"headers": {"User-Agent": "2"}}
77-
result = TSC.server.Endpoint.set_user_agent(params)
78-
self.assertTrue(result["headers"]["User-Agent"] == "2")
79-
80-
def test_set_user_agent_when_blank(self):
81-
params = {"headers": {}}
82-
result = TSC.server.Endpoint.set_user_agent(params)
83-
self.assertTrue(result["headers"]["User-Agent"].startswith("Tableau Server Client"))
48+
endpoint = Endpoint(server)
49+
response = endpoint._blocking_request(endpoint.parent_srv.session.get, url=url)
50+
assert response is not None
51+
52+
53+
def test_get_request_stream(server: TSC.Server) -> None:
54+
url = "http://test/"
55+
endpoint = Endpoint(server)
56+
with requests_mock.mock() as m:
57+
m.get(url, headers={"Content-Type": "application/octet-stream"})
58+
response = endpoint.get_request(url, parameters={"stream": True})
59+
60+
assert response._content_consumed is False
61+
62+
63+
def test_binary_log_truncated(server: TSC.Server) -> None:
64+
class FakeResponse:
65+
headers = {"Content-Type": "application/octet-stream"}
66+
content = b"\x1337" * 1000
67+
status_code = 200
68+
69+
endpoint = Endpoint(server)
70+
server_response = FakeResponse()
71+
log = endpoint.log_response_safely(server_response) # type: ignore
72+
assert log.find("[Truncated File Contents]") > 0
73+
74+
75+
def test_set_user_agent_from_options_headers(server: TSC.Server) -> None:
76+
params = {"User-Agent": "1", "headers": {"User-Agent": "2"}}
77+
result = Endpoint.set_user_agent(params)
78+
# it should use the value under 'headers' if more than one is given
79+
print(result)
80+
print(result["headers"]["User-Agent"])
81+
assert result["headers"]["User-Agent"] == "2"
82+
83+
84+
def test_set_user_agent_from_options(server: TSC.Server) -> None:
85+
params = {"headers": {"User-Agent": "2"}}
86+
result = Endpoint.set_user_agent(params)
87+
assert result["headers"]["User-Agent"] == "2"
88+
89+
90+
def test_set_user_agent_when_blank(server: TSC.Server) -> None:
91+
params = {"headers": {}} # type: ignore
92+
result = Endpoint.set_user_agent(params)
93+
assert result["headers"]["User-Agent"].startswith("Tableau Server Client")

0 commit comments

Comments
 (0)