Skip to content

Commit f4c101c

Browse files
committed
tests pass
1 parent 176c8b6 commit f4c101c

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,9 @@ async def list_(
100100
) -> tuple[int, list[FolderDB]]:
101101
"""
102102
content_of_folder_id - Used to filter in which folder we want to list folders. None means root folder.
103+
trashed - If set to true, it returns folders **explicitly** trashed, if false then non-trashed folders.
103104
"""
104-
assert not (
105+
assert not ( # nosec
105106
user_id is not None and workspace_id is not None
106107
), "Both user_id and workspace_id cannot be provided at the same time. Please provide only one."
107108

@@ -122,7 +123,10 @@ async def list_(
122123

123124
if trashed is not None:
124125
base_query = base_query.where(
125-
folders_v2.c.trashed_at.is_not(None)
126+
(
127+
(folders_v2.c.trashed_at.is_not(None))
128+
& (folders_v2.c.trashed_explicitly.is_(True))
129+
)
126130
if trashed
127131
else folders_v2.c.trashed_at.is_(None)
128132
)

services/web/server/tests/unit/with_dbs/03/test_trash.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,9 @@ async def test_trash_folder_with_content(
300300
assert page.meta.total == 1
301301
assert page.data[0] == subfolder
302302

303-
resp = await client.get("/v0/projects")
303+
resp = await client.get(
304+
"/v0/projects", params={"folder_id": f"{subfolder.folder_id}"}
305+
)
304306
await assert_status(resp, status.HTTP_200_OK)
305307
page = Page[ProjectListItem].parse_obj(await resp.json())
306308
assert page.meta.total == 1
@@ -327,9 +329,11 @@ async def test_trash_folder_with_content(
327329
await assert_status(resp, status.HTTP_200_OK)
328330
page = Page[FolderGet].parse_obj(await resp.json())
329331
assert page.meta.total == 0
330-
assert page.data[0].folder_id == subfolder.folder_id
331332

332-
resp = await client.get("/v0/projects", params={"filters": '{"trashed": true}'})
333+
resp = await client.get(
334+
"/v0/projects",
335+
params={"filters": '{"trashed": true}', "folder_id": f"{subfolder.folder_id}"},
336+
)
333337
await assert_status(resp, status.HTTP_200_OK)
334338
page = Page[ProjectListItem].parse_obj(await resp.json())
335339
assert page.meta.total == 0
@@ -347,7 +351,7 @@ async def test_trash_folder_with_content(
347351

348352
resp = await client.get(f"/v0/projects/{project_uuid}")
349353
data, _ = await assert_status(resp, status.HTTP_200_OK)
350-
got = FolderGet.parse_obj(data)
354+
got = ProjectGet.parse_obj(data)
351355
assert got.trashed_at is not None
352356

353357
# UNTRASH folder
@@ -360,7 +364,18 @@ async def test_trash_folder_with_content(
360364
page = Page[FolderGet].parse_obj(await resp.json())
361365
assert page.meta.total == 0
362366

363-
resp = await client.get("/v0/projects", params={"filters": '{"trashed": true}'})
367+
resp = await client.get(
368+
"/v0/folders",
369+
params={"filters": '{"trashed": true}', "folder_id": f"{folder.folder_id}"},
370+
)
371+
await assert_status(resp, status.HTTP_200_OK)
372+
page = Page[FolderGet].parse_obj(await resp.json())
373+
assert page.meta.total == 0
374+
375+
resp = await client.get(
376+
"/v0/projects",
377+
params={"filters": '{"trashed": true}', "folder_id": f"{subfolder.folder_id}"},
378+
)
364379
await assert_status(resp, status.HTTP_200_OK)
365380
page = Page[ProjectListItem].parse_obj(await resp.json())
366381
assert page.meta.total == 0
@@ -378,5 +393,5 @@ async def test_trash_folder_with_content(
378393

379394
resp = await client.get(f"/v0/projects/{project_uuid}")
380395
data, _ = await assert_status(resp, status.HTTP_200_OK)
381-
got = FolderGet.parse_obj(data)
396+
got = ProjectGet.parse_obj(data)
382397
assert got.trashed_at is None

0 commit comments

Comments
 (0)