Skip to content

Commit 621d0e1

Browse files
committed
fix mock
1 parent 4da1198 commit 621d0e1

File tree

1 file changed

+42
-13
lines changed

1 file changed

+42
-13
lines changed

services/web/server/tests/unit/with_dbs/conftest.py

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88
import sys
99
import textwrap
1010
import warnings
11-
from collections.abc import AsyncIterable, AsyncIterator, Awaitable, Callable, Iterator
11+
from collections.abc import (
12+
AsyncGenerator,
13+
AsyncIterable,
14+
AsyncIterator,
15+
Awaitable,
16+
Callable,
17+
Iterator,
18+
)
1219
from copy import deepcopy
1320
from decimal import Decimal
1421
from pathlib import Path
@@ -30,8 +37,11 @@
3037
from aiopg.sa import create_engine
3138
from faker import Faker
3239
from models_library.api_schemas_directorv2.dynamic_services import DynamicServiceGet
40+
from models_library.api_schemas_rpc_async_jobs.async_jobs import AsyncJobStatus
3341
from models_library.products import ProductName
42+
from models_library.progress_bar import ProgressReport
3443
from models_library.services_enums import ServiceState
44+
from models_library.users import UserID
3545
from pydantic import ByteSize, TypeAdapter
3646
from pytest_docker.plugin import Services
3747
from pytest_mock import MockerFixture
@@ -44,9 +54,10 @@
4454
from pytest_simcore.helpers.webserver_projects import NewProject
4555
from redis import Redis
4656
from servicelib.aiohttp.application_keys import APP_AIOPG_ENGINE_KEY
47-
from servicelib.aiohttp.long_running_tasks.client import LRTask
48-
from servicelib.aiohttp.long_running_tasks.server import ProgressPercent, TaskProgress
4957
from servicelib.common_aiopg_utils import DSN
58+
from servicelib.rabbitmq.rpc_interfaces.async_jobs.async_jobs import (
59+
AsyncJobComposedResult,
60+
)
5061
from settings_library.email import SMTPSettings
5162
from settings_library.redis import RedisDatabase, RedisSettings
5263
from simcore_postgres_database.models.groups_extra_properties import (
@@ -63,6 +74,7 @@
6374
from simcore_service_webserver.constants import INDEX_RESOURCE_NAME
6475
from simcore_service_webserver.db.plugin import get_database_engine
6576
from simcore_service_webserver.projects.models import ProjectDict
77+
from simcore_service_webserver.projects.utils import NodesMap
6678
from simcore_service_webserver.statics._constants import (
6779
FRONTEND_APP_DEFAULT,
6880
FRONTEND_APPS_AVAILABLE,
@@ -336,29 +348,47 @@ def add_index_route(app: web.Application) -> None:
336348

337349

338350
@pytest.fixture
339-
async def storage_subsystem_mock(mocker: MockerFixture) -> MockedStorageSubsystem:
351+
async def storage_subsystem_mock(
352+
mocker: MockerFixture, faker: Faker
353+
) -> MockedStorageSubsystem:
340354
"""
341355
Patches client calls to storage service
342356
343357
Patched functions are exposed within projects but call storage subsystem
344358
"""
345359

346-
async def _mock_copy_data_from_project(app, src_prj, dst_prj, nodes_map, user_id):
360+
async def _mock_copy_data_from_project(
361+
app: web.Application,
362+
*,
363+
source_project: ProjectDict,
364+
destination_project: ProjectDict,
365+
nodes_map: NodesMap,
366+
user_id: UserID,
367+
product_name: str,
368+
) -> AsyncGenerator[AsyncJobComposedResult, None]:
347369
print(
348-
f"MOCK copying data project {src_prj['uuid']} -> {dst_prj['uuid']} "
370+
f"MOCK copying data project {source_project['uuid']} -> {destination_project['uuid']} "
349371
f"with {len(nodes_map)} s3 objects by user={user_id}"
350372
)
351373

352-
yield LRTask(TaskProgress(message="pytest mocked fct, started"))
374+
yield AsyncJobComposedResult(
375+
AsyncJobStatus(
376+
job_id=faker.uuid4(cast_to=None),
377+
progress=ProgressReport(actual_value=0),
378+
done=False,
379+
)
380+
)
353381

354-
async def _mock_result():
382+
async def _mock_result() -> None:
355383
return None
356384

357-
yield LRTask(
358-
TaskProgress(
359-
message="pytest mocked fct, finished", percent=ProgressPercent(1.0)
385+
yield AsyncJobComposedResult(
386+
AsyncJobStatus(
387+
job_id=faker.uuid4(cast_to=None),
388+
progress=ProgressReport(actual_value=1),
389+
done=True,
360390
),
361-
_result=_mock_result(),
391+
_mock_result(),
362392
)
363393

364394
mock = mocker.patch(
@@ -723,7 +753,6 @@ async def app_products_names(
723753
priority = 1
724754
for name in FRONTEND_APPS_AVAILABLE:
725755
if name != FRONTEND_APP_DEFAULT:
726-
727756
async with asyncpg_engine.begin() as conn:
728757
result = await conn.execute(
729758
products.insert().values(

0 commit comments

Comments
 (0)