Skip to content

Commit 7fb2826

Browse files
committed
chore: pytestify test_endpoint
1 parent fd187ba commit 7fb2826

2 files changed

Lines changed: 83 additions & 76 deletions

File tree

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: 77 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from pathlib import Path
22
import pytest
33
import requests
4-
import unittest
54

65
import tableauserverclient as TSC
76

@@ -10,74 +9,84 @@
109
ASSETS = Path(__file__).parent / "assets"
1110

1211

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

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

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)
21+
return server
2922

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

0 commit comments

Comments
 (0)