|
15 | 15 |
|
16 | 16 | import pytest |
17 | 17 | import pytz |
| 18 | +import requests |
18 | 19 |
|
19 | 20 | import trino |
20 | 21 | from tests.integration.conftest import trino_version |
@@ -867,3 +868,46 @@ def test_info_uri(trino_connection): |
867 | 868 | cur.fetchall() |
868 | 869 | assert cur.info_uri is not None |
869 | 870 | assert cur._query.query_id in cur.info_uri |
| 871 | + |
| 872 | + |
| 873 | +def test_client_tags_single_tag(run_trino): |
| 874 | + client_tags = ["foo"] |
| 875 | + query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags) |
| 876 | + assert query_client_tags == client_tags |
| 877 | + |
| 878 | + |
| 879 | +def test_client_tags_multiple_tags(run_trino): |
| 880 | + client_tags = ["foo", "bar"] |
| 881 | + query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags) |
| 882 | + assert query_client_tags == client_tags |
| 883 | + |
| 884 | + |
| 885 | +def test_client_tags_special_characters(run_trino): |
| 886 | + client_tags = ["foo %20", "bar=test"] |
| 887 | + query_client_tags = retrieve_client_tags_from_query(run_trino, client_tags) |
| 888 | + assert query_client_tags == client_tags |
| 889 | + |
| 890 | + |
| 891 | +def retrieve_client_tags_from_query(run_trino, client_tags): |
| 892 | + _, host, port = run_trino |
| 893 | + |
| 894 | + trino_connection = trino.dbapi.Connection( |
| 895 | + host=host, |
| 896 | + port=port, |
| 897 | + user="test", |
| 898 | + client_tags=client_tags, |
| 899 | + ) |
| 900 | + |
| 901 | + cur = trino_connection.cursor() |
| 902 | + cur.execute('SELECT 1') |
| 903 | + cur.fetchall() |
| 904 | + |
| 905 | + api_url = "http://" + trino_connection.host + ":" + str(trino_connection.port) |
| 906 | + query_info = requests.post(api_url + "/ui/login", data={ |
| 907 | + "username": "admin", |
| 908 | + "password": "", |
| 909 | + "redirectPath": api_url + '/ui/api/query/' + cur._query.query_id |
| 910 | + }).json() |
| 911 | + |
| 912 | + query_client_tags = query_info['session']['clientTags'] |
| 913 | + return query_client_tags |
0 commit comments