Skip to content

Commit 246c3de

Browse files
authored
[internal] port over existing UCX integration tests (#44)
1 parent 0c5347c commit 246c3de

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

tests/integration/fixtures/test_catalog.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import pytest
33

44

5+
6+
7+
58
logger = logging.getLogger(__name__)
69

710

@@ -56,3 +59,23 @@ def test_storage_credential(env_or_skip, make_storage_credential, make_random):
5659
credential_name=credential_name,
5760
aws_iam_role_arn=env_or_skip("TEST_UBER_ROLE_ID"),
5861
)
62+
63+
64+
def test_remove_after_property_table(ws, make_table, sql_backend):
65+
new_table = make_table()
66+
# TODO: tables.get is currently failing with
67+
# databricks.sdk.errors.platform.NotFound: Catalog 'hive_metastore' does not exist.
68+
sql_response = list(sql_backend.fetch(f"DESCRIBE TABLE EXTENDED {new_table.full_name}"))
69+
for row in sql_response:
70+
if row.col_name == "Table Properties":
71+
assert "RemoveAfter" in row[1]
72+
73+
74+
def test_remove_after_property_schema(ws, make_schema, sql_backend):
75+
new_schema = make_schema()
76+
# TODO: schemas.get is currently failing with
77+
# databricks.sdk.errors.platform.NotFound: Catalog 'hive_metastore' does not exist.
78+
sql_response = list(sql_backend.fetch(f"DESCRIBE SCHEMA EXTENDED {new_schema.full_name}"))
79+
for row in sql_response:
80+
if row.database_description_item == "Properties":
81+
assert "RemoveAfter" in row[1]

tests/integration/fixtures/test_compute.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import logging
2+
from datetime import datetime, timedelta, timezone
23

34
from databricks.sdk.service.iam import PermissionLevel
45

6+
from databricks.labs.pytester.fixtures.watchdog import TEST_RESOURCE_PURGE_TIMEOUT
7+
58
logger = logging.getLogger(__name__)
69

710

@@ -36,3 +39,41 @@ def test_warehouse_has_remove_after_tag(ws, make_warehouse):
3639
created_warehouse = ws.warehouses.get(new_warehouse.response.id)
3740
warehouse_tags = created_warehouse.tags.as_dict()
3841
assert warehouse_tags["custom_tags"][0]["key"] == "RemoveAfter"
42+
43+
44+
def test_remove_after_tag_jobs(ws, env_or_skip, make_job):
45+
new_job = make_job()
46+
created_job = ws.jobs.get(new_job.job_id)
47+
job_tags = created_job.settings.tags
48+
assert "RemoveAfter" in job_tags
49+
50+
purge_time = datetime.strptime(job_tags["RemoveAfter"], "%Y%m%d%H").replace(tzinfo=timezone.utc)
51+
assert (purge_time - datetime.now(timezone.utc)) < (TEST_RESOURCE_PURGE_TIMEOUT + timedelta(hours=1)) # noqa: F405
52+
53+
54+
def test_remove_after_tag_clusters(ws, env_or_skip, make_cluster):
55+
new_cluster = make_cluster(single_node=True, instance_pool_id=env_or_skip('TEST_INSTANCE_POOL_ID'))
56+
created_cluster = ws.clusters.get(new_cluster.cluster_id)
57+
cluster_tags = created_cluster.custom_tags
58+
assert "RemoveAfter" in cluster_tags
59+
purge_time = datetime.strptime(cluster_tags["RemoveAfter"], "%Y%m%d%H").replace(tzinfo=timezone.utc)
60+
assert (purge_time - datetime.now(timezone.utc)) < (TEST_RESOURCE_PURGE_TIMEOUT + timedelta(hours=1)) # noqa: F405
61+
62+
63+
def test_remove_after_tag_warehouse(ws, env_or_skip, make_warehouse):
64+
new_warehouse = make_warehouse()
65+
created_warehouse = ws.warehouses.get(new_warehouse.response.id)
66+
warehouse_tags = created_warehouse.tags.as_dict()
67+
assert warehouse_tags["custom_tags"][0]["key"] == "RemoveAfter"
68+
remove_after_tag = warehouse_tags["custom_tags"][0]["value"]
69+
purge_time = datetime.strptime(remove_after_tag, "%Y%m%d%H").replace(tzinfo=timezone.utc)
70+
assert (purge_time - datetime.now(timezone.utc)) < (TEST_RESOURCE_PURGE_TIMEOUT + timedelta(hours=1)) # noqa: F405
71+
72+
73+
def test_remove_after_tag_instance_pool(ws, make_instance_pool):
74+
new_instance_pool = make_instance_pool()
75+
created_instance_pool = ws.instance_pools.get(new_instance_pool.instance_pool_id)
76+
pool_tags = created_instance_pool.custom_tags
77+
assert "RemoveAfter" in pool_tags
78+
purge_time = datetime.strptime(pool_tags["RemoveAfter"], "%Y%m%d%H").replace(tzinfo=timezone.utc)
79+
assert (purge_time - datetime.now(timezone.utc)) < (TEST_RESOURCE_PURGE_TIMEOUT + timedelta(hours=1)) # noqa: F405

0 commit comments

Comments
 (0)