Skip to content

Commit

Permalink
[API] Support with_mlrun attribute as bool in build function endpoi…
Browse files Browse the repository at this point in the history
…nt (#1295)
  • Loading branch information
Hedingber committed Sep 7, 2021
1 parent 82e1e55 commit 870a878
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
5 changes: 4 additions & 1 deletion mlrun/api/api/endpoints/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ async def build_function(
mlrun.api.schemas.AuthorizationAction.update,
auth_verifier.auth_info,
)
with_mlrun = strtobool(data.get("with_mlrun", "on"))
if isinstance(data.get("with_mlrun"), bool):
with_mlrun = data.get("with_mlrun")
else:
with_mlrun = strtobool(data.get("with_mlrun", "on"))
skip_deployed = data.get("skip_deployed", False)
mlrun_version_specifier = data.get("mlrun_version_specifier")
fn, ready = await run_in_threadpool(
Expand Down
29 changes: 29 additions & 0 deletions tests/api/api/test_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from fastapi.testclient import TestClient
from sqlalchemy.orm import Session

import mlrun.api.api.endpoints.functions
import mlrun.api.crud
import mlrun.api.schemas
import mlrun.api.utils.singletons.db
Expand Down Expand Up @@ -45,3 +46,31 @@ def test_build_status_pod_not_found(db: Session, client: TestClient):
},
)
assert response.status_code == HTTPStatus.NOT_FOUND.value


def test_build_function_with_mlrun_bool(db: Session, client: TestClient):
function_dict = {
"kind": "job",
"metadata": {
"name": "function-name",
"project": "project-name",
"tag": "latest",
},
}
original_build_function = mlrun.api.api.endpoints.functions._build_function
for with_mlrun in [True, False]:
request_body = {
"function": function_dict,
"with_mlrun": with_mlrun,
}
function = mlrun.new_function(runtime=function_dict)
mlrun.api.api.endpoints.functions._build_function = unittest.mock.Mock(
return_value=(function, True)
)
response = client.post("/api/build/function", json=request_body,)
assert response.status_code == HTTPStatus.OK.value
assert (
mlrun.api.api.endpoints.functions._build_function.call_args[0][3]
== with_mlrun
)
mlrun.api.api.endpoints.functions._build_function = original_build_function

0 comments on commit 870a878

Please sign in to comment.