Skip to content

Commit 116a6c0

Browse files
GitHKAndrei Neagu
and
Andrei Neagu
authored
🐛 Fixed issue with query params validation in dynamic-scheduler (#6989)
Co-authored-by: Andrei Neagu <[email protected]>
1 parent 61a78bc commit 116a6c0

File tree

5 files changed

+17
-9
lines changed

5 files changed

+17
-9
lines changed

packages/common-library/src/common_library/unset.py renamed to packages/common-library/src/common_library/exclude.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,7 @@ class UnSet:
1010

1111
def as_dict_exclude_unset(**params) -> dict[str, Any]:
1212
return {k: v for k, v in params.items() if not isinstance(v, UnSet)}
13+
14+
15+
def as_dict_exclude_none(**params) -> dict[str, Any]:
16+
return {k: v for k, v in params.items() if v is not None}

packages/common-library/tests/test_unset.py renamed to packages/common-library/tests/test_exclude.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any
22

3-
from common_library.unset import UnSet, as_dict_exclude_unset
3+
from common_library.exclude import UnSet, as_dict_exclude_none, as_dict_exclude_unset
44

55

66
def test_as_dict_exclude_unset():
@@ -13,3 +13,10 @@ def f(
1313
assert f(par1="hi") == {"par1": "hi"}
1414
assert f(par2=4) == {"par2": 4}
1515
assert f(par1="hi", par2=4) == {"par1": "hi", "par2": 4}
16+
17+
# still expected behavior
18+
assert as_dict_exclude_unset(par1=None) == {"par1": None}
19+
20+
21+
def test_as_dict_exclude_none():
22+
assert as_dict_exclude_none(par1=None) == {}

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/director_v2/_thin_client.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import datetime
22
from typing import cast
33

4+
from common_library.exclude import as_dict_exclude_none
45
from common_library.json_serialization import json_dumps
5-
from common_library.unset import UnSet, as_dict_exclude_unset
66
from fastapi import FastAPI, status
77
from httpx import Response, Timeout
88
from models_library.api_schemas_dynamic_scheduler.dynamic_services import (
@@ -133,14 +133,11 @@ async def dynamic_service_retrieve(
133133
@retry_on_errors()
134134
@expect_status(status.HTTP_200_OK)
135135
async def get_dynamic_services(
136-
self,
137-
*,
138-
user_id: UserID | None | UnSet = UnSet.VALUE,
139-
project_id: ProjectID | None | UnSet = UnSet.VALUE,
136+
self, *, user_id: UserID | None = None, project_id: ProjectID | None = None
140137
) -> Response:
141138
return await self.client.get(
142139
"/dynamic_services",
143-
params=as_dict_exclude_unset(user_id=user_id, project_id=project_id),
140+
params=as_dict_exclude_none(user_id=user_id, project_id=project_id),
144141
)
145142

146143
@retry_on_errors()

services/web/server/src/simcore_service_webserver/folders/_folders_db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import sqlalchemy as sa
1212
from aiohttp import web
13-
from common_library.unset import UnSet, as_dict_exclude_unset
13+
from common_library.exclude import UnSet, as_dict_exclude_unset
1414
from models_library.folders import (
1515
FolderDB,
1616
FolderID,

services/web/server/src/simcore_service_webserver/projects/_folders_db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from datetime import datetime
99

1010
from aiohttp import web
11-
from common_library.unset import UnSet, as_dict_exclude_unset
11+
from common_library.exclude import UnSet, as_dict_exclude_unset
1212
from models_library.folders import FolderID
1313
from models_library.projects import ProjectID
1414
from models_library.users import UserID

0 commit comments

Comments
 (0)