Skip to content

Commit

Permalink
[Test] Uncomment delete artifact data unit test (#5528)
Browse files Browse the repository at this point in the history
  • Loading branch information
alonmr committed May 16, 2024
1 parent fb7d21e commit e5eb3b8
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 56 deletions.
4 changes: 2 additions & 2 deletions automation/patch_igz/patch_remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ def patch_mlrun_api(self):

if self._reset_db:
self._reset_mlrun_db()
self._wait_deployment_ready()
else:
self._rollout_deployment()
self._wait_deployment_ready()

self._wait_deployment_ready()

finally:
out = self._exec_remote(
Expand Down
19 changes: 9 additions & 10 deletions tests/api/api/test_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@

import mlrun.artifacts
import mlrun.common.schemas
import server.api.api.endpoints.artifacts_v2
import server.api.crud.files
from mlrun.common.constants import MYSQL_MEDIUMBLOB_SIZE_BYTES

PROJECT = "prj"
Expand Down Expand Up @@ -273,14 +271,15 @@ def test_fails_deleting_artifact_data(
def test_delete_artifact_data_default_deletion_strategy(
db: Session, unversioned_client: TestClient
):
server.api.crud.Files.delete_artifact_data = unittest.mock.MagicMock()

# checking metadata-only as default deletion_strategy
url = DELETE_API_ARTIFACTS_V2_PATH.format(project=PROJECT, key=KEY)
resp = unversioned_client.delete(url)
server.api.crud.Files.delete_artifact_data.assert_not_called()
server.api.crud.Files.delete_artifact_data.reset_mock()
assert resp.status_code == HTTPStatus.NO_CONTENT.value
with unittest.mock.patch(
"server.api.crud.Files.delete_artifact_data"
) as delete_artifact_data:
# checking metadata-only as default deletion_strategy
url = DELETE_API_ARTIFACTS_V2_PATH.format(project=PROJECT, key=KEY)
resp = unversioned_client.delete(url)
delete_artifact_data.assert_not_called()
delete_artifact_data.reset_mock()
assert resp.status_code == HTTPStatus.NO_CONTENT.value


@pytest.mark.parametrize(
Expand Down
88 changes: 44 additions & 44 deletions tests/api/crud/test_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,47 +11,47 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# import unittest.mock
#
# import fastapi.testclient
# import sqlalchemy.orm
#
# import mlrun.common.schemas
# import server.api.crud
#
#
# def test_delete_artifact_data(
# db: sqlalchemy.orm.Session,
# client: fastapi.testclient.TestClient,
# k8s_secrets_mock,
# ) -> None:
# path = "s3://somebucket/some/path/file"
# project = "proj1"
#
# env_secrets = {"V3IO_ACCESS_KEY": None}
# project_secrets = {"secret1": "value1", "secret2": "value2"}
# full_secrets = project_secrets.copy()
# full_secrets.update(env_secrets)
# k8s_secrets_mock.store_project_secrets(project, project_secrets)
# mlrun.datastore.store_manager.object = unittest.mock.Mock()
#
# server.api.crud.Files().delete_artifact_data(
# mlrun.common.schemas.AuthInfo(), project, path
# )
# mlrun.datastore.store_manager.object.assert_called_once_with(
# url=path, secrets=full_secrets, project=project
# )
# mlrun.datastore.store_manager.object.reset_mock()
#
# # user supplied secrets - use the same key to override project secrets
# user_secrets = {"secret1": "user-secret"}
# override_secrets = full_secrets.copy()
# override_secrets.update(user_secrets)
# server.api.crud.Files().delete_artifact_data(
# mlrun.common.schemas.AuthInfo(), project, path, secrets=user_secrets
# )
# mlrun.datastore.store_manager.object.assert_called_once_with(
# url=path, secrets=override_secrets, project=project
# )
# mlrun.datastore.store_manager.object.reset_mock()

import unittest.mock

import fastapi.testclient
import sqlalchemy.orm

import mlrun.common.schemas
import server.api.crud


def test_delete_artifact_data(
db: sqlalchemy.orm.Session,
client: fastapi.testclient.TestClient,
k8s_secrets_mock,
) -> None:
path = "s3://somebucket/some/path/file"
project = "proj1"

env_secrets = {"V3IO_ACCESS_KEY": None}
project_secrets = {"secret1": "value1", "secret2": "value2"}
full_secrets = project_secrets.copy()
full_secrets.update(env_secrets)
k8s_secrets_mock.store_project_secrets(project, project_secrets)
with unittest.mock.patch(
"mlrun.datastore.store_manager.object"
) as store_manager_object_mock:
server.api.crud.Files().delete_artifact_data(
mlrun.common.schemas.AuthInfo(), project, path
)
store_manager_object_mock.assert_called_once_with(
url=path, secrets=full_secrets, project=project
)
store_manager_object_mock.reset_mock()

# user supplied secrets - use the same key to override project secrets
user_secrets = {"secret1": "user-secret"}
override_secrets = full_secrets.copy()
override_secrets.update(user_secrets)
server.api.crud.Files().delete_artifact_data(
mlrun.common.schemas.AuthInfo(), project, path, secrets=user_secrets
)
store_manager_object_mock.assert_called_once_with(
url=path, secrets=override_secrets, project=project
)

0 comments on commit e5eb3b8

Please sign in to comment.