Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions tableauserverclient/server/endpoint/auth_endpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ def sign_in(self, auth_req: "Credentials") -> contextmgr:
auth_token = parsed_response.find("t:credentials", namespaces=self.parent_srv.namespace).get("token", None)
self.parent_srv._set_auth(site_id, user_id, auth_token, site_url)
logger.info(f"Signed into {self.parent_srv.server_address} as user with id {user_id}")
if self.parent_srv._use_server_version:
self.parent_srv.use_server_version()
return Auth.contextmgr(self.sign_out)

# We use the same request that username/password login uses for all auth types.
Expand Down
3 changes: 1 addition & 2 deletions tableauserverclient/server/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,7 @@ def __init__(self, server_address, use_server_version=False, http_options=None,
self.validate_connection_settings() # does not make an actual outgoing request

self.version = default_server_version
if use_server_version:
self.use_server_version() # this makes a server call
self._use_server_version = use_server_version

def validate_connection_settings(self):
try:
Expand Down
6 changes: 4 additions & 2 deletions test/http/test_http_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,11 @@ def test_init_server_model_bad_server_name_not_version_check():
server = TSC.Server("fake-url", use_server_version=False)


@mock.patch("requests.sessions.Session.get", side_effect=mocked_requests_get)
def test_init_server_model_bad_server_name_do_version_check(mock_get):
def test_init_server_model_bad_server_name_do_version_check():
# use_server_version=True no longer makes a network call at construction;
# version detection is deferred until sign_in
server = TSC.Server("fake-url", use_server_version=True)
assert server._use_server_version is True


def test_init_server_model_bad_server_name_not_version_check_random_options():
Expand Down
10 changes: 5 additions & 5 deletions test/test_server_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ def test_server_info_use_highest_version_upgrades(server: TSC.Server) -> None:


def test_server_use_server_version_flag(server: TSC.Server) -> None:
si_response_xml = SERVER_INFO_25_XML.read_text()
with requests_mock.mock() as m:
m.get("http://test/api/2.4/serverInfo", text=si_response_xml)
server = TSC.Server("http://test", use_server_version=True)
assert server.version == "2.5"
# use_server_version=True defers version detection to sign_in, so the
# version is not updated at construction time
server = TSC.Server("http://test", use_server_version=True)
assert server._use_server_version is True
assert server.version == "2.4" # still at default until sign_in


def test_server_wrong_site(server: TSC.Server) -> None:
Expand Down
Loading