Skip to content

Commit 53f69c0

Browse files
authored
use tags instead of name suffix for queries (#47)
## Changes Current implementation uses name suffix, which makes query names less readable This PR implements watchdog query tags instead ### Linked issues None ### Tests - [x] ran unit tests --------- Co-authored-by: Eric Vergnaud <[email protected]>
1 parent 0fa2127 commit 53f69c0

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,7 @@ def test_permissions_for_redash(
10331033
)
10341034
```
10351035

1036-
See also [`ws`](#ws-fixture), [`make_table`](#make_table-fixture), [`make_random`](#make_random-fixture), [`watchdog_purge_suffix`](#watchdog_purge_suffix-fixture).
1036+
See also [`ws`](#ws-fixture), [`make_table`](#make_table-fixture), [`make_random`](#make_random-fixture), [`watchdog_remove_after`](#watchdog_remove_after-fixture).
10371037

10381038

10391039
[[back to top](#python-testing-for-databricks)]
@@ -1104,15 +1104,15 @@ See also [`ws`](#ws-fixture).
11041104
### `watchdog_remove_after` fixture
11051105
Purge time for test objects, representing the (UTC-based) hour from which objects may be purged.
11061106

1107-
See also [`make_cluster`](#make_cluster-fixture), [`make_instance_pool`](#make_instance_pool-fixture), [`make_job`](#make_job-fixture), [`make_model`](#make_model-fixture), [`make_pipeline`](#make_pipeline-fixture), [`make_schema`](#make_schema-fixture), [`make_serving_endpoint`](#make_serving_endpoint-fixture), [`make_table`](#make_table-fixture), [`make_warehouse`](#make_warehouse-fixture), [`watchdog_purge_suffix`](#watchdog_purge_suffix-fixture).
1107+
See also [`make_cluster`](#make_cluster-fixture), [`make_instance_pool`](#make_instance_pool-fixture), [`make_job`](#make_job-fixture), [`make_model`](#make_model-fixture), [`make_pipeline`](#make_pipeline-fixture), [`make_query`](#make_query-fixture), [`make_schema`](#make_schema-fixture), [`make_serving_endpoint`](#make_serving_endpoint-fixture), [`make_table`](#make_table-fixture), [`make_warehouse`](#make_warehouse-fixture), [`watchdog_purge_suffix`](#watchdog_purge_suffix-fixture).
11081108

11091109

11101110
[[back to top](#python-testing-for-databricks)]
11111111

11121112
### `watchdog_purge_suffix` fixture
11131113
HEX-encoded purge time suffix for test objects.
11141114

1115-
See also [`make_acc_group`](#make_acc_group-fixture), [`make_cluster_policy`](#make_cluster_policy-fixture), [`make_directory`](#make_directory-fixture), [`make_experiment`](#make_experiment-fixture), [`make_group`](#make_group-fixture), [`make_notebook`](#make_notebook-fixture), [`make_pipeline`](#make_pipeline-fixture), [`make_query`](#make_query-fixture), [`make_repo`](#make_repo-fixture), [`make_user`](#make_user-fixture), [`watchdog_remove_after`](#watchdog_remove_after-fixture).
1115+
See also [`make_acc_group`](#make_acc_group-fixture), [`make_cluster_policy`](#make_cluster_policy-fixture), [`make_directory`](#make_directory-fixture), [`make_experiment`](#make_experiment-fixture), [`make_group`](#make_group-fixture), [`make_notebook`](#make_notebook-fixture), [`make_pipeline`](#make_pipeline-fixture), [`make_repo`](#make_repo-fixture), [`make_user`](#make_user-fixture), [`watchdog_remove_after`](#watchdog_remove_after-fixture).
11161116

11171117

11181118
[[back to top](#python-testing-for-databricks)]

src/databricks/labs/pytester/fixtures/redash.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import json
12
from collections.abc import Generator
23

34
from pytest import fixture
@@ -12,7 +13,7 @@ def make_query(
1213
make_table,
1314
make_random,
1415
log_workspace_link,
15-
watchdog_purge_suffix,
16+
watchdog_remove_after,
1617
) -> Generator[LegacyQuery, None, None]:
1718
"""
1819
Create a query and remove it after the test is done. Returns the `databricks.sdk.service.sql.LegacyQuery` object.
@@ -39,16 +40,23 @@ def test_permissions_for_redash(
3940
```
4041
"""
4142

42-
def create(sql_query: str | None = None) -> LegacyQuery:
43+
def create(sql_query: str | None = None, **kwargs) -> LegacyQuery:
4344
if sql_query is None:
4445
table = make_table()
4546
sql_query = f"SELECT * FROM {table.catalog_name}.{table.schema_name}.{table.name}"
46-
query_name = f"dummy_query_Q{make_random(4)}_{watchdog_purge_suffix}"
47+
# add RemoveAfter tag for watchdog
48+
remove_after_tag = json.dumps({"key": "RemoveAfter", "value": watchdog_remove_after})
49+
tags: list[str] | None = kwargs.get('tags', None)
50+
if tags:
51+
tags.append(remove_after_tag)
52+
else:
53+
tags = [remove_after_tag]
54+
query_name = f"dummy_query_Q{make_random(4)}"
4755
query = ws.queries_legacy.create(
4856
name=query_name,
4957
description="TEST QUERY FOR UCX",
5058
query=sql_query,
51-
tags=["original_query_tag"],
59+
tags=tags,
5260
)
5361
log_workspace_link(f"{query_name} query", f'sql/editor/{query.id}')
5462
return query

0 commit comments

Comments
 (0)