Skip to content

Commit 82d2ea8

Browse files
committed
fixing test
1 parent fa032ee commit 82d2ea8

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

packages/models-library/src/models_library/rest_ordering.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def create_ordering_query_model_classes(
5151
msg_direction_options = "|".join(sorted(OrderDirection))
5252

5353
class _OrderBy(OrderBy):
54-
@validator("field", allow_reuse=True)
54+
@validator("field", allow_reuse=True, always=True)
5555
@classmethod
5656
def _check_if_ordering_field(cls, v):
5757
if v not in ordering_fields:

services/web/server/src/simcore_service_webserver/resource_usage/_service_runs_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class ServicesResourceUsagesReportQueryParams(
9191
example='{"started_at": {"from": "yyyy-mm-dd", "until": "yyyy-mm-dd"}}',
9292
)
9393

94-
@validator("order_by")
94+
@validator("order_by", always=True)
9595
@classmethod
9696
def _post_rename_order_by_field(cls, v):
9797
if v.field == "credit_cost":

services/web/server/src/simcore_service_webserver/workspaces/_workspaces_handlers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,11 @@ class WorkspacesListQueryParams(
8989
PageQueryParameters,
9090
WorkspacesListOrderQueryParams, # type: ignore[misc, valid-type]
9191
):
92-
@validator("order_by", check_fields=False)
92+
@validator("order_by", check_fields=False, always=True)
9393
@classmethod
9494
def _post_rename_order_by_field(cls, v):
95+
# NOTE: PC->MD this is very error-prone (e.g. w/ defaults).
96+
# Rather create a map to a db interface
9597
if v.field == "modified_at":
9698
v.field = "modified"
9799
return v

services/web/server/tests/unit/with_dbs/04/workspaces/test_workspaces.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import pytest
99
from aiohttp.test_utils import TestClient
1010
from models_library.api_schemas_webserver.workspaces import WorkspaceGet
11+
from models_library.rest_ordering import OrderDirection
1112
from pytest_simcore.helpers.assert_checks import assert_status
1213
from pytest_simcore.helpers.webserver_login import UserInfoDict
1314
from pytest_simcore.helpers.webserver_parametrizations import (
@@ -17,6 +18,26 @@
1718
from servicelib.aiohttp import status
1819
from simcore_service_webserver.db.models import UserRole
1920
from simcore_service_webserver.projects.models import ProjectDict
21+
from simcore_service_webserver.workspaces._workspaces_handlers import (
22+
WorkspacesListQueryParams,
23+
)
24+
25+
26+
def test_workspaces_order_query_model_post_validator():
27+
28+
# on default
29+
query_params = WorkspacesListQueryParams.parse_obj({})
30+
assert query_params.order_by
31+
assert query_params.order_by.field == "modified"
32+
assert query_params.order_by.direction == OrderDirection.DESC
33+
34+
# on partial default
35+
query_params = WorkspacesListQueryParams.parse_obj(
36+
{"order_by": {"field": "modified_at"}}
37+
)
38+
assert query_params.order_by
39+
assert query_params.order_by.field == "modified"
40+
assert query_params.order_by.direction == OrderDirection.ASC
2041

2142

2243
@pytest.mark.parametrize(*standard_role_response(), ids=str)

0 commit comments

Comments
 (0)