Skip to content

Commit 7101c5e

Browse files
larsgeorge-dbnfx
andauthored
Replace model fixture with the standard one (#169)
Same issue as with experiments, that is, the `make_model` fixture is missing. --------- Co-authored-by: Serge Smertin <[email protected]> Co-authored-by: Serge Smertin <[email protected]>
1 parent 930825b commit 7101c5e

File tree

3 files changed

+36
-38
lines changed

3 files changed

+36
-38
lines changed

src/databricks/labs/ucx/providers/mixins/fixtures.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,23 @@ def create(**kwargs):
474474
yield from factory("job", create, lambda item: ws.jobs.delete(item.job_id))
475475

476476

477+
@pytest.fixture
478+
def make_model(ws, make_random):
479+
def create(
480+
*,
481+
model_name: str | None = None,
482+
**kwargs,
483+
):
484+
if model_name is None:
485+
model_name = f"sdk-{make_random(4)}"
486+
487+
return ws.model_registry.get_model(
488+
ws.model_registry.create_model(model_name, **kwargs).registered_model.name
489+
).registered_model_databricks
490+
491+
yield from factory("model", create, lambda item: ws.model_registry.delete_model(item.id))
492+
493+
477494
@pytest.fixture
478495
def make_pipeline(ws, make_random, make_notebook):
479496
def create(**kwargs) -> pipelines.CreatePipelineResponse:

tests/integration/conftest.py

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
from databricks.sdk.core import Config
1212
from databricks.sdk.service.compute import CreatePolicyResponse
1313
from databricks.sdk.service.iam import AccessControlRequest, PermissionLevel
14-
from databricks.sdk.service.ml import ModelDatabricks
15-
from databricks.sdk.service.ml import PermissionLevel as ModelPermissionLevel
1614
from databricks.sdk.service.workspace import ObjectInfo, ObjectType
1715

1816
from databricks.labs.ucx.config import InventoryTable
@@ -36,7 +34,6 @@
3634
NUM_TEST_GROUPS = int(os.environ.get("NUM_TEST_GROUPS", 5))
3735
NUM_TEST_INSTANCE_PROFILES = int(os.environ.get("NUM_TEST_INSTANCE_PROFILES", 3))
3836
NUM_TEST_CLUSTER_POLICIES = int(os.environ.get("NUM_TEST_CLUSTER_POLICIES", 3))
39-
NUM_TEST_MODELS = int(os.environ.get("NUM_TEST_MODELS", 3))
4037
NUM_TEST_TOKENS = int(os.environ.get("NUM_TEST_TOKENS", 3))
4138

4239
NUM_THREADS = int(os.environ.get("NUM_TEST_THREADS", 20))
@@ -280,39 +277,6 @@ def cluster_policies(env: EnvironmentInfo, ws: WorkspaceClient) -> list[CreatePo
280277
Threader(executables).run()
281278

282279

283-
@pytest.fixture
284-
def models(ws: WorkspaceClient, env: EnvironmentInfo) -> list[ModelDatabricks]:
285-
logger.debug("Creating models")
286-
287-
test_models: list[ModelDatabricks] = [
288-
ws.model_registry.get_model(
289-
ws.model_registry.create_model(f"{env.test_uid}-test-{i}").registered_model.name
290-
).registered_model_databricks
291-
for i in range(NUM_TEST_MODELS)
292-
]
293-
294-
_set_random_permissions(
295-
test_models,
296-
"id",
297-
RequestObjectType.REGISTERED_MODELS,
298-
env,
299-
ws,
300-
permission_levels=[
301-
ModelPermissionLevel.CAN_READ,
302-
ModelPermissionLevel.CAN_MANAGE,
303-
ModelPermissionLevel.CAN_MANAGE_PRODUCTION_VERSIONS,
304-
ModelPermissionLevel.CAN_MANAGE_STAGING_VERSIONS,
305-
],
306-
)
307-
308-
yield test_models
309-
310-
logger.debug("Deleting test models")
311-
executables = [partial(ws.model_registry.delete_model, m.name) for m in test_models]
312-
Threader(executables).run()
313-
logger.debug("Test models deleted")
314-
315-
316280
@pytest.fixture
317281
def tokens(ws: WorkspaceClient, env: EnvironmentInfo) -> list[AccessControlRequest]:
318282
logger.debug("Adding token-level permissions to groups")
@@ -389,15 +353,13 @@ def workspace_objects(ws: WorkspaceClient, env: EnvironmentInfo) -> WorkspaceObj
389353
@pytest.fixture
390354
def verifiable_objects(
391355
cluster_policies,
392-
models,
393356
tokens,
394357
workspace_objects,
395358
) -> list[tuple[list, str, RequestObjectType | None]]:
396359
_verifiable_objects = [
397360
(workspace_objects, "workspace_objects", None),
398361
(tokens, "tokens", RequestObjectType.AUTHORIZATION),
399362
(cluster_policies, "policy_id", RequestObjectType.CLUSTER_POLICIES),
400-
(models, "id", RequestObjectType.REGISTERED_MODELS),
401363
]
402364
yield _verifiable_objects
403365

tests/integration/test_e2e.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ def test_e2e(
134134
make_instance_pool_permissions,
135135
make_cluster,
136136
make_cluster_permissions,
137+
make_model,
138+
make_registered_model_permissions,
137139
make_experiment,
138140
make_experiment_permissions,
139141
make_job,
@@ -168,6 +170,23 @@ def test_e2e(
168170
([cluster], "cluster_id", RequestObjectType.CLUSTERS),
169171
)
170172

173+
model = make_model()
174+
make_registered_model_permissions(
175+
object_id=model.id,
176+
permission_level=random.choice(
177+
[
178+
PermissionLevel.CAN_READ,
179+
PermissionLevel.CAN_MANAGE,
180+
PermissionLevel.CAN_MANAGE_PRODUCTION_VERSIONS,
181+
PermissionLevel.CAN_MANAGE_STAGING_VERSIONS,
182+
]
183+
),
184+
group_name=ws_group.display_name,
185+
)
186+
verifiable_objects.append(
187+
([model], "experiment_id", RequestObjectType.EXPERIMENTS),
188+
)
189+
171190
experiment = make_experiment()
172191
make_experiment_permissions(
173192
object_id=experiment.experiment_id,

0 commit comments

Comments
 (0)