diff --git a/libs/labelbox/src/labelbox/schema/project.py b/libs/labelbox/src/labelbox/schema/project.py index 605da9cce..dc634c0a6 100644 --- a/libs/labelbox/src/labelbox/schema/project.py +++ b/libs/labelbox/src/labelbox/schema/project.py @@ -18,6 +18,7 @@ LabelboxError, ProcessingWaitTimeout, ResourceConflict, + ResourceNotFoundError ) from labelbox.orm import query from labelbox.orm.db_object import DbObject, Deletable, Updateable, experimental @@ -33,6 +34,7 @@ from labelbox.schema.identifiable import DataRowIdentifier, GlobalKey, UniqueId from labelbox.schema.identifiables import DataRowIdentifiers, UniqueIds from labelbox.schema.media_type import MediaType +from labelbox.schema.model_config import ModelConfig from labelbox.schema.project_model_config import ProjectModelConfig from labelbox.schema.queue_mode import QueueMode from labelbox.schema.resource_tag import ResourceTag @@ -1271,6 +1273,8 @@ def add_model_config(self, model_config_id: str) -> str: "modelConfigId": model_config_id, } result = self.client.execute(query, params) + if not result: + raise ResourceNotFoundError(ModelConfig, params) return result["createProjectModelConfig"]["projectModelConfigId"] def delete_project_model_config(self, project_model_config_id: str) -> bool: @@ -1292,6 +1296,8 @@ def delete_project_model_config(self, project_model_config_id: str) -> bool: "id": project_model_config_id, } result = self.client.execute(query, params) + if not result: + raise ResourceNotFoundError(ProjectModelConfig, params) return result["deleteProjectModelConfig"]["success"] def set_labeling_parameter_overrides( diff --git a/libs/labelbox/tests/integration/test_project_model_config.py b/libs/labelbox/tests/integration/test_project_model_config.py index e4adf90a2..2979406de 100644 --- a/libs/labelbox/tests/integration/test_project_model_config.py +++ b/libs/labelbox/tests/integration/test_project_model_config.py @@ -1,4 +1,5 @@ import pytest +from labelbox.exceptions import ResourceNotFoundError def test_add_single_model_config(configured_project, model_config): project_model_config_id = configured_project.add_model_config(model_config.uid) @@ -23,3 +24,7 @@ def test_add_multiple_model_config(client, rand_gen, configured_project, model_c def test_delete_project_model_config(configured_project, model_config): assert configured_project.delete_project_model_config(configured_project.add_model_config(model_config.uid)) assert not len(configured_project.project_model_configs()) + +def test_delete_nonexistant_project_model_config(configured_project): + with pytest.raises(ResourceNotFoundError): + configured_project.delete_project_model_config("nonexistant_project_model_config")