Skip to content

Commit a2c2296

Browse files
committed
moving fixtures and helpers
1 parent 50097d7 commit a2c2296

File tree

5 files changed

+47
-40
lines changed

5 files changed

+47
-40
lines changed

services/storage/tests/conftest.py

Lines changed: 28 additions & 4 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 Final, cast
15+
from typing import Any, Final, cast
1616

1717
import httpx
1818
import pytest
@@ -46,6 +46,10 @@
4646
from pytest_simcore.helpers.logging_tools import log_context
4747
from pytest_simcore.helpers.monkeypatch_envs import delenvs_from_dict, setenvs_from_dict
4848
from pytest_simcore.helpers.s3 import upload_file_to_presigned_link
49+
from pytest_simcore.helpers.storage_utils import FileIDDict
50+
from pytest_simcore.helpers.storage_utils_file_meta_data import (
51+
assert_file_meta_data_in_db,
52+
)
4953
from pytest_simcore.helpers.typing_env import EnvVarsDict
5054
from servicelib.aiohttp import status
5155
from simcore_postgres_database.storage_models import file_meta_data, projects, users
@@ -63,7 +67,6 @@
6367
from tenacity.retry import retry_if_exception_type
6468
from tenacity.stop import stop_after_delay
6569
from tenacity.wait import wait_fixed
66-
from tests.helpers.utils_file_meta_data import assert_file_meta_data_in_db
6770
from types_aiobotocore_s3 import S3Client
6871
from yarl import URL
6972

@@ -81,8 +84,8 @@
8184
"pytest_simcore.postgres_service",
8285
"pytest_simcore.pytest_global_environs",
8386
"pytest_simcore.repository_paths",
84-
"tests.fixtures.data_models",
85-
"tests.fixtures.datcore_adapter",
87+
"pytest_simcore.simcore_storage_data_models",
88+
"pytest_simcore.simcore_storage_datcore_adapter",
8689
]
8790

8891
CURRENT_DIR = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent
@@ -631,3 +634,24 @@ async def _create_context(
631634
await delete_directory(directory_file_upload=directory_file_upload)
632635

633636
return _create_context
637+
638+
639+
@pytest.fixture
640+
async def with_random_project_with_files(
641+
random_project_with_files: Callable[
642+
...,
643+
Awaitable[
644+
tuple[
645+
dict[str, Any],
646+
dict[NodeID, dict[SimcoreS3FileID, FileIDDict]],
647+
]
648+
],
649+
],
650+
) -> tuple[dict[str, Any], dict[NodeID, dict[SimcoreS3FileID, FileIDDict]],]:
651+
return await random_project_with_files(
652+
file_sizes=(
653+
TypeAdapter(ByteSize).validate_python("1Mib"),
654+
TypeAdapter(ByteSize).validate_python("2Mib"),
655+
TypeAdapter(ByteSize).validate_python("5Mib"),
656+
)
657+
)

services/storage/tests/unit/test_handlers_files.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
from pytest_simcore.helpers.logging_tools import log_context
5151
from pytest_simcore.helpers.parametrizations import byte_size_ids
5252
from pytest_simcore.helpers.s3 import upload_file_part, upload_file_to_presigned_link
53+
from pytest_simcore.helpers.storage_utils import FileIDDict
54+
from pytest_simcore.helpers.storage_utils_file_meta_data import (
55+
assert_file_meta_data_in_db,
56+
)
5357
from servicelib.aiohttp import status
5458
from simcore_service_storage.constants import S3_UNDEFINED_OR_EXTERNAL_MULTIPART_ID
5559
from simcore_service_storage.models import FileDownloadResponse, S3BucketName, UploadID
@@ -61,7 +65,6 @@
6165
from tenacity.retry import retry_if_exception_type
6266
from tenacity.stop import stop_after_delay
6367
from tenacity.wait import wait_fixed
64-
from tests.helpers.utils_file_meta_data import assert_file_meta_data_in_db
6568
from types_aiobotocore_s3 import S3Client
6669
from yarl import URL
6770

@@ -1482,13 +1485,13 @@ async def test_listing_with_project_id_filter(
14821485
Awaitable[
14831486
tuple[
14841487
dict[str, Any],
1485-
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
1488+
dict[NodeID, dict[SimcoreS3FileID, FileIDDict]],
14861489
]
14871490
],
14881491
],
14891492
uuid_filter: bool,
14901493
):
1491-
project, src_projects_list = await random_project_with_files(
1494+
src_project, src_projects_list = await random_project_with_files(
14921495
num_nodes=1,
14931496
file_sizes=(ByteSize(1),),
14941497
file_checksums=(TypeAdapter(SHA256Str).validate_python(faker.sha256()),),
@@ -1502,12 +1505,12 @@ async def test_listing_with_project_id_filter(
15021505
node_id = next(iter(src_projects_list.keys()))
15031506
project_files_in_db = set(src_projects_list[node_id])
15041507
assert len(project_files_in_db) > 0
1505-
project_id = project["uuid"]
1508+
project_id = src_project["uuid"]
15061509
project_file_name = Path(choice(list(project_files_in_db))).name # noqa: S311
15071510

15081511
query = {
15091512
"user_id": user_id,
1510-
"project_id": project_id,
1513+
"project_id": f"{project_id}",
15111514
"uuid_filter": project_file_name if uuid_filter else None,
15121515
}
15131516

services/storage/tests/unit/test_handlers_locations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from fastapi import FastAPI, status
1010
from models_library.users import UserID
1111
from pytest_simcore.helpers.fastapi import url_from_operation_id
12-
from tests.helpers.utils import has_datcore_tokens
12+
from pytest_simcore.helpers.storage_utils import has_datcore_tokens
1313

1414
pytest_simcore_core_services_selection = ["postgres"]
1515
pytest_simcore_ops_services_selection = ["adminer"]

services/storage/tests/unit/test_handlers_simcore_s3.py

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
from pytest_simcore.helpers.fastapi import url_from_operation_id
3030
from pytest_simcore.helpers.httpx_assert_checks import assert_status
3131
from pytest_simcore.helpers.logging_tools import log_context
32+
from pytest_simcore.helpers.storage_utils import FileIDDict, get_updated_project
33+
from pytest_simcore.helpers.storage_utils_file_meta_data import (
34+
assert_file_meta_data_in_db,
35+
)
36+
from pytest_simcore.helpers.storage_utils_project import clone_project_data
3237
from pytest_simcore.helpers.typing_env import EnvVarsDict
3338
from servicelib.aiohttp import status
3439
from servicelib.fastapi.long_running_tasks.client import long_running_task_request
@@ -37,12 +42,8 @@
3742
from simcore_service_storage.models import SearchFilesQueryParams
3843
from simcore_service_storage.simcore_s3_dsm import SimcoreS3DataManager
3944
from sqlalchemy.ext.asyncio import AsyncEngine
40-
from tests.helpers.utils_file_meta_data import assert_file_meta_data_in_db
41-
from tests.helpers.utils_project import clone_project_data
4245
from yarl import URL
4346

44-
from ..helpers.utils import get_updated_project
45-
4647
pytest_simcore_core_services_selection = ["postgres"]
4748
pytest_simcore_ops_services_selection = ["adminer", "minio"]
4849

@@ -213,7 +214,7 @@ async def test_copy_folders_from_valid_project_with_one_large_file(
213214
Awaitable[
214215
tuple[
215216
dict[str, Any],
216-
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
217+
dict[NodeID, dict[SimcoreS3FileID, FileIDDict]],
217218
]
218219
],
219220
],
@@ -257,7 +258,7 @@ async def test_copy_folders_from_valid_project_with_one_large_file(
257258
sqlalchemy_async_engine,
258259
file_id=TypeAdapter(SimcoreS3FileID).validate_python(
259260
f"{src_file_id}".replace(
260-
src_project["uuid"], dst_project["uuid"]
261+
f"{src_project['uuid']}", dst_project["uuid"]
261262
).replace(f"{src_node_id}", f"{dst_node_id}")
262263
),
263264
expected_entry_exists=True,
@@ -283,7 +284,7 @@ async def test_copy_folders_from_valid_project(
283284
Awaitable[
284285
tuple[
285286
dict[str, Any],
286-
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | SHA256Str]]],
287+
dict[NodeID, dict[SimcoreS3FileID, FileIDDict]],
287288
]
288289
],
289290
],
@@ -321,7 +322,7 @@ async def test_copy_folders_from_valid_project(
321322
sqlalchemy_async_engine,
322323
file_id=TypeAdapter(SimcoreS3FileID).validate_python(
323324
f"{src_file_id}".replace(
324-
src_project["uuid"], dst_project["uuid"]
325+
f"{src_project['uuid']}", dst_project["uuid"]
325326
).replace(f"{src_node_id}", f"{dst_node_id}")
326327
),
327328
expected_entry_exists=True,
@@ -404,27 +405,6 @@ def set_log_levels_for_noisy_libraries() -> None:
404405
logging.getLogger("werkzeug").setLevel(logging.WARNING)
405406

406407

407-
@pytest.fixture
408-
async def with_random_project_with_files(
409-
random_project_with_files: Callable[
410-
...,
411-
Awaitable[
412-
tuple[
413-
dict[str, Any],
414-
dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],
415-
]
416-
],
417-
],
418-
) -> tuple[dict[str, Any], dict[NodeID, dict[SimcoreS3FileID, dict[str, Path | str]]],]:
419-
return await random_project_with_files(
420-
file_sizes=(
421-
TypeAdapter(ByteSize).validate_python("1Mib"),
422-
TypeAdapter(ByteSize).validate_python("2Mib"),
423-
TypeAdapter(ByteSize).validate_python("5Mib"),
424-
)
425-
)
426-
427-
428408
async def test_connect_to_external(
429409
set_log_levels_for_noisy_libraries: None,
430410
initialized_app: FastAPI,

services/storage/tests/unit/test_utils_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ async def test_endpoint():
160160
response = await client.get("/test")
161161
assert_status(
162162
response,
163-
status.HTTP_422_UNPROCESSABLE_ENTITY,
163+
status.HTTP_500_INTERNAL_SERVER_ERROR,
164164
None,
165165
expected_msg=f"0 validation errors for {_error_msg}",
166166
)

0 commit comments

Comments
 (0)