Skip to content

Commit 760b925

Browse files
committed
Change client_tags from List to Set to match trino-cli
1 parent f475091 commit 760b925

5 files changed

Lines changed: 11 additions & 9 deletions

File tree

tests/integration/test_dbapi_integration.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1502,19 +1502,19 @@ def test_info_uri(trino_connection):
15021502
def test_client_tags_single_tag(run_trino):
15031503
client_tags = ["foo"]
15041504
query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags)
1505-
assert query_client_tags == client_tags
1505+
assert set(query_client_tags) == set(client_tags)
15061506

15071507

15081508
def test_client_tags_multiple_tags(run_trino):
15091509
client_tags = ["foo", "bar"]
15101510
query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags)
1511-
assert query_client_tags == client_tags
1511+
assert set(query_client_tags) == set(client_tags)
15121512

15131513

15141514
def test_client_tags_special_characters(run_trino):
15151515
client_tags = ["foo %20", "bar=test"]
15161516
query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags)
1517-
assert query_client_tags == client_tags
1517+
assert set(query_client_tags) == set(client_tags)
15181518

15191519

15201520
def retrieve_client_tags_from_query(run_trino, client_tags):

tests/unit/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def test_request_client_tags_headers(mock_get_and_post):
250250
)
251251

252252
def assert_headers(headers):
253-
assert headers[constants.HEADER_CLIENT_TAGS] == "tag1,tag2"
253+
assert set(headers[constants.HEADER_CLIENT_TAGS].split(",")) == {"tag1", "tag2"}
254254

255255
req.post("URL")
256256
_, post_kwargs = post.call_args

tests/unit/test_client_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def test_client_session_extra_credential() -> None:
6969

7070
def test_client_session_extra_client_tags() -> None:
7171
session = ClientSession(user="user")
72-
assert session.client_tags == []
72+
assert session.client_tags == set()
7373

7474

7575
def test_client_session_client_info() -> None:

trino/client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import warnings
4848
from abc import abstractmethod
4949
from collections.abc import Iterator
50+
from collections.abc import Sequence
5051
from concurrent.futures import ThreadPoolExecutor
5152
from dataclasses import dataclass
5253
from datetime import datetime
@@ -59,6 +60,7 @@
5960
from typing import List
6061
from typing import Literal
6162
from typing import Optional
63+
from typing import Set
6264
from typing import Tuple
6365
from typing import TypedDict
6466
from typing import Union
@@ -189,7 +191,7 @@ def __init__(
189191
headers: Optional[Dict[str, str]] = None,
190192
transaction_id: Optional[str] = None,
191193
extra_credential: Optional[List[Tuple[str, str]]] = None,
192-
client_tags: Optional[List[str]] = None,
194+
client_tags: Optional[Sequence[str]] = None,
193195
client_info: Optional[str] = None,
194196
trace_token: Optional[str] = None,
195197
sql_path: Optional[str] = None,
@@ -210,7 +212,7 @@ def __init__(
210212
self._headers = headers.copy() if headers is not None else {}
211213
self._transaction_id = transaction_id
212214
self._extra_credential = extra_credential
213-
self._client_tags = client_tags.copy() if client_tags is not None else list()
215+
self._client_tags = set(client_tags) if client_tags is not None else set()
214216
self._client_info = client_info
215217
self._trace_token = trace_token
216218
self._sql_path = sql_path
@@ -291,7 +293,7 @@ def extra_credential(self) -> Optional[List[Tuple[str, str]]]:
291293
return self._extra_credential
292294

293295
@property
294-
def client_tags(self) -> List[str]:
296+
def client_tags(self) -> Set[str]:
295297
return self._client_tags
296298

297299
@property

trino/sqlalchemy/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def _url(
8989
trino_url += f"&extra_credential={quote_plus(json.dumps(extra_credential))}"
9090

9191
if client_tags is not None:
92-
trino_url += f"&client_tags={quote_plus(json.dumps(client_tags))}"
92+
trino_url += f"&client_tags={quote_plus(json.dumps(sorted(client_tags)))}"
9393

9494
if client_info is not None:
9595
trino_url += f"&client_info={quote_plus(client_info)}"

0 commit comments

Comments
 (0)