Skip to content

Commit 9d4e43e

Browse files
authored
fix: datasource id on ConnectionItem (#1538)
Closes #1536 Populates the datasource id and name on the `ConnectionItem`s as they return. Co-authored-by: Jordan Woods <[email protected]>
1 parent 9826cbf commit 9d4e43e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

Diff for: tableauserverclient/server/endpoint/datasources_endpoint.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,15 @@ def connections_fetcher():
102102
datasource_item._set_connections(connections_fetcher)
103103
logger.info(f"Populated connections for datasource (ID: {datasource_item.id})")
104104

105-
def _get_datasource_connections(self, datasource_item, req_options=None):
105+
def _get_datasource_connections(
106+
self, datasource_item: DatasourceItem, req_options: Optional[RequestOptions] = None
107+
) -> list[ConnectionItem]:
106108
url = f"{self.baseurl}/{datasource_item.id}/connections"
107109
server_response = self.get_request(url, req_options)
108110
connections = ConnectionItem.from_response(server_response.content, self.parent_srv.namespace)
111+
for connection in connections:
112+
connection._datasource_id = datasource_item.id
113+
connection._datasource_name = datasource_item.name
109114
return connections
110115

111116
# Delete 1 datasource by id

Diff for: test/test_datasource.py

+5
Original file line numberDiff line numberDiff line change
@@ -174,17 +174,22 @@ def test_populate_connections(self) -> None:
174174
connections: Optional[list[ConnectionItem]] = single_datasource.connections
175175

176176
self.assertIsNotNone(connections)
177+
assert connections is not None
177178
ds1, ds2 = connections
178179
self.assertEqual("be786ae0-d2bf-4a4b-9b34-e2de8d2d4488", ds1.id)
179180
self.assertEqual("textscan", ds1.connection_type)
180181
self.assertEqual("forty-two.net", ds1.server_address)
181182
self.assertEqual("duo", ds1.username)
182183
self.assertEqual(True, ds1.embed_password)
184+
self.assertEqual(ds1.datasource_id, single_datasource.id)
185+
self.assertEqual(single_datasource.name, ds1.datasource_name)
183186
self.assertEqual("970e24bc-e200-4841-a3e9-66e7d122d77e", ds2.id)
184187
self.assertEqual("sqlserver", ds2.connection_type)
185188
self.assertEqual("database.com", ds2.server_address)
186189
self.assertEqual("heero", ds2.username)
187190
self.assertEqual(False, ds2.embed_password)
191+
self.assertEqual(ds2.datasource_id, single_datasource.id)
192+
self.assertEqual(single_datasource.name, ds2.datasource_name)
188193

189194
def test_update_connection(self) -> None:
190195
populate_xml, response_xml = read_xml_assets(POPULATE_CONNECTIONS_XML, UPDATE_CONNECTION_XML)

0 commit comments

Comments
 (0)