Skip to content

Commit 9fea71b

Browse files
committed
changed types
1 parent d3b5ece commit 9fea71b

File tree

6 files changed

+39
-40
lines changed

6 files changed

+39
-40
lines changed

services/storage/tests/conftest.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from collections.abc import AsyncIterator, Awaitable, Callable
1313
from contextlib import AbstractAsyncContextManager, asynccontextmanager
1414
from pathlib import Path
15-
from typing import Any, Final, cast
15+
from typing import Final, cast
1616

1717
import httpx
1818
import pytest
@@ -24,7 +24,7 @@
2424
from fakeredis.aioredis import FakeRedis
2525
from fastapi import FastAPI
2626
from models_library.basic_types import SHA256Str
27-
from models_library.projects import ProjectID
27+
from models_library.projects import ProjectAtDB, ProjectID
2828
from models_library.projects_nodes import NodeID
2929
from models_library.projects_nodes_io import LocationID, SimcoreS3FileID
3030
from models_library.storage_schemas import (
@@ -63,10 +63,11 @@
6363
from tenacity.retry import retry_if_exception_type
6464
from tenacity.stop import stop_after_delay
6565
from tenacity.wait import wait_fixed
66-
from tests.helpers.utils_file_meta_data import assert_file_meta_data_in_db
6766
from types_aiobotocore_s3 import S3Client
6867
from yarl import URL
6968

69+
from tests.helpers.utils_file_meta_data import assert_file_meta_data_in_db
70+
7071
pytest_plugins = [
7172
"pytest_simcore.aws_s3_service",
7273
"pytest_simcore.aws_server",
@@ -289,9 +290,9 @@ async def _link_creator(
289290
location_id=f"{location_id}",
290291
file_id=file_id,
291292
).with_query(**query_kwargs, user_id=user_id)
292-
assert (
293-
"file_size" in url.query
294-
), "V2 call to upload file must contain file_size field!"
293+
assert "file_size" in url.query, (
294+
"V2 call to upload file must contain file_size field!"
295+
)
295296
response = await client.put(f"{url}")
296297
received_file_upload, error = assert_status(
297298
response, status.HTTP_200_OK, FileUploadSchema
@@ -639,12 +640,15 @@ async def with_random_project_with_files(
639640
...,
640641
Awaitable[
641642
tuple[
642-
dict[str, Any],
643+
ProjectAtDB,
643644
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
644645
]
645646
],
646647
],
647-
) -> tuple[dict[str, Any], dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],]:
648+
) -> tuple[
649+
ProjectAtDB,
650+
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
651+
]:
648652
return await random_project_with_files(
649653
file_sizes=(
650654
TypeAdapter(ByteSize).validate_python("1Mib"),

services/storage/tests/fixtures/data_models.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import sqlalchemy as sa
1414
from faker import Faker
1515
from models_library.basic_types import SHA256Str
16-
from models_library.projects import ProjectID
16+
from models_library.projects import ProjectAtDB, ProjectID
1717
from models_library.projects_nodes_io import NodeID, SimcoreS3FileID
1818
from models_library.users import UserID
1919
from pydantic import ByteSize, TypeAdapter
@@ -272,9 +272,7 @@ async def random_project_with_files(
272272
) -> Callable[
273273
[int, tuple[ByteSize, ...], tuple[SHA256Str, ...]],
274274
Awaitable[
275-
tuple[
276-
dict[str, Any], dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]]
277-
]
275+
tuple[ProjectAtDB, dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]]]
278276
],
279277
]:
280278
async def _creator(
@@ -295,9 +293,7 @@ async def _creator(
295293
"488f3b57932803bbf644593bd46d95599b1d4da1d63bc020d7ebe6f1c255f7f3"
296294
),
297295
),
298-
) -> tuple[
299-
dict[str, Any], dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]]
300-
]:
296+
) -> tuple[ProjectAtDB, dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]]]:
301297
assert len(file_sizes) == len(file_checksums)
302298
project = await create_project(name="random-project")
303299
src_projects_list: dict[

services/storage/tests/helpers/utils.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import logging
22
import os
3-
from typing import Any
43

54
import sqlalchemy as sa
5+
from models_library.projects import ProjectAtDB
66
from simcore_postgres_database.storage_models import projects
77
from sqlalchemy.ext.asyncio import AsyncEngine
88

@@ -19,11 +19,10 @@ def has_datcore_tokens() -> bool:
1919

2020
async def get_updated_project(
2121
sqlalchemy_async_engine: AsyncEngine, project_id: str
22-
) -> dict[str, Any]:
22+
) -> ProjectAtDB:
2323
async with sqlalchemy_async_engine.connect() as conn:
2424
result = await conn.execute(
2525
sa.select(projects).where(projects.c.uuid == project_id)
2626
)
27-
row = result.fetchone()
28-
assert row
29-
return row._asdict()
27+
row = result.one()
28+
return ProjectAtDB.model_validate(row)

services/storage/tests/unit/test_handlers_files.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from dataclasses import dataclass
1717
from pathlib import Path
1818
from random import choice
19-
from typing import Any, Literal
19+
from typing import Literal
2020
from uuid import uuid4
2121

2222
import httpx
@@ -27,7 +27,7 @@
2727
from faker import Faker
2828
from fastapi import FastAPI
2929
from models_library.basic_types import SHA256Str
30-
from models_library.projects import ProjectID
30+
from models_library.projects import ProjectAtDB, ProjectID
3131
from models_library.projects_nodes_io import LocationID, NodeID, SimcoreS3FileID
3232
from models_library.storage_schemas import (
3333
FileMetaDataGet,
@@ -1482,14 +1482,14 @@ async def test_listing_with_project_id_filter(
14821482
[int, tuple[ByteSize, ...]],
14831483
Awaitable[
14841484
tuple[
1485-
dict[str, Any],
1485+
ProjectAtDB,
14861486
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
14871487
]
14881488
],
14891489
],
14901490
uuid_filter: bool,
14911491
):
1492-
project, src_projects_list = await random_project_with_files(
1492+
src_project, src_projects_list = await random_project_with_files(
14931493
num_nodes=1,
14941494
file_sizes=(ByteSize(1),),
14951495
file_checksums=(TypeAdapter(SHA256Str).validate_python(faker.sha256()),),
@@ -1503,7 +1503,7 @@ async def test_listing_with_project_id_filter(
15031503
node_id = next(iter(src_projects_list.keys()))
15041504
project_files_in_db = set(src_projects_list[node_id])
15051505
assert len(project_files_in_db) > 0
1506-
project_id = project["uuid"]
1506+
project_id = src_project.uuid
15071507
project_file_name = Path(choice(list(project_files_in_db))).name # noqa: S311
15081508

15091509
query = {

services/storage/tests/unit/test_handlers_paths.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import httpx
1414
from fastapi import FastAPI
1515
from fastapi_pagination import LimitOffsetPage
16-
from models_library.api_schemas_storage import FileMetaDataGet
16+
from models_library.api_schemas_storage import FileMetaDataGet, PathMetaDataGet
1717
from models_library.projects_nodes_io import LocationID, NodeID, SimcoreS3FileID
1818
from models_library.users import UserID
1919
from pytest_simcore.helpers.fastapi import url_from_operation_id
@@ -71,7 +71,7 @@ async def test_list_paths_root_folder(
7171
page_of_files, _ = assert_status(
7272
response,
7373
status.HTTP_200_OK,
74-
LimitOffsetPage[FileMetaDataGet],
74+
LimitOffsetPage[PathMetaDataGet],
7575
expect_envelope=False,
7676
)
7777
assert page_of_files

services/storage/tests/unit/test_handlers_simcore_s3.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from faker import Faker
2121
from fastapi import FastAPI
2222
from models_library.basic_types import SHA256Str
23-
from models_library.projects import ProjectID
23+
from models_library.projects import ProjectAtDB, ProjectID
2424
from models_library.projects_nodes_io import NodeID, NodeIDStr, SimcoreS3FileID
2525
from models_library.storage_schemas import FileMetaDataGet, FoldersBody
2626
from models_library.users import UserID
@@ -212,7 +212,7 @@ async def test_copy_folders_from_valid_project_with_one_large_file(
212212
[int, tuple[ByteSize], tuple[SHA256Str]],
213213
Awaitable[
214214
tuple[
215-
dict[str, Any],
215+
ProjectAtDB,
216216
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
217217
]
218218
],
@@ -228,20 +228,20 @@ async def test_copy_folders_from_valid_project_with_one_large_file(
228228
(sha256_checksum,),
229229
)
230230
# 2. create a dst project without files
231-
dst_project, nodes_map = clone_project_data(src_project)
231+
dst_project, nodes_map = clone_project_data(src_project.model_dump(mode="json"))
232232
dst_project = await create_project(**dst_project)
233233
# copy the project files
234234
data = await _request_copy_folders(
235235
initialized_app,
236236
client,
237237
user_id,
238-
src_project,
238+
src_project.model_dump(mode="json"),
239239
dst_project,
240240
nodes_map={NodeID(i): NodeID(j) for i, j in nodes_map.items()},
241241
)
242-
assert data == jsonable_encoder(
242+
assert data == (
243243
await get_updated_project(sqlalchemy_async_engine, dst_project["uuid"])
244-
)
244+
).model_dump(mode="json")
245245
# check that file meta data was effectively copied
246246
for src_node_id in src_projects_list:
247247
dst_node_id = nodes_map.get(
@@ -257,7 +257,7 @@ async def test_copy_folders_from_valid_project_with_one_large_file(
257257
sqlalchemy_async_engine,
258258
file_id=TypeAdapter(SimcoreS3FileID).validate_python(
259259
f"{src_file_id}".replace(
260-
src_project["uuid"], dst_project["uuid"]
260+
f"{src_project.uuid}", dst_project["uuid"]
261261
).replace(f"{src_node_id}", f"{dst_node_id}")
262262
),
263263
expected_entry_exists=True,
@@ -282,7 +282,7 @@ async def test_copy_folders_from_valid_project(
282282
...,
283283
Awaitable[
284284
tuple[
285-
dict[str, Any],
285+
ProjectAtDB,
286286
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | SHA256Str]]],
287287
]
288288
],
@@ -291,20 +291,20 @@ async def test_copy_folders_from_valid_project(
291291
# 1. create a src project with some files
292292
src_project, src_projects_list = await random_project_with_files()
293293
# 2. create a dst project without files
294-
dst_project, nodes_map = clone_project_data(src_project)
294+
dst_project, nodes_map = clone_project_data(src_project.model_dump(mode="json"))
295295
dst_project = await create_project(**dst_project)
296296
# copy the project files
297297
data = await _request_copy_folders(
298298
initialized_app,
299299
client,
300300
user_id,
301-
src_project,
301+
src_project.model_dump(mode="json"),
302302
dst_project,
303303
nodes_map={NodeID(i): NodeID(j) for i, j in nodes_map.items()},
304304
)
305-
assert data == jsonable_encoder(
305+
assert data == (
306306
await get_updated_project(sqlalchemy_async_engine, dst_project["uuid"])
307-
)
307+
).model_dump(mode="json")
308308

309309
# check that file meta data was effectively copied
310310
for src_node_id in src_projects_list:
@@ -321,7 +321,7 @@ async def test_copy_folders_from_valid_project(
321321
sqlalchemy_async_engine,
322322
file_id=TypeAdapter(SimcoreS3FileID).validate_python(
323323
f"{src_file_id}".replace(
324-
src_project["uuid"], dst_project["uuid"]
324+
f"{src_project.uuid}", dst_project["uuid"]
325325
).replace(f"{src_node_id}", f"{dst_node_id}")
326326
),
327327
expected_entry_exists=True,

0 commit comments

Comments
 (0)