1818from aiohttp import ClientResponse , ClientSession , web
1919from aiohttp .test_utils import TestClient , TestServer
2020from faker import Faker
21+ from models_library .api_schemas_rpc_async_jobs .async_jobs import AsyncJobStatus
22+ from models_library .progress_bar import ProgressReport
2123from models_library .projects_state import ProjectLocked , ProjectStatus
24+ from models_library .users import UserID
2225from pytest_mock import MockerFixture
2326from pytest_simcore .aioresponses_mocker import AioResponsesMock
2427from pytest_simcore .helpers .assert_checks import assert_status
2528from pytest_simcore .helpers .webserver_login import UserInfoDict , UserRole
2629from pytest_simcore .helpers .webserver_parametrizations import MockedStorageSubsystem
2730from pytest_simcore .helpers .webserver_projects import NewProject , delete_all_projects
2831from servicelib .aiohttp import status
29- from servicelib .aiohttp .long_running_tasks .client import LRTask
30- from servicelib .aiohttp .long_running_tasks .server import TaskProgress
3132from servicelib .common_headers import UNDEFINED_DEFAULT_SIMCORE_USER_AGENT_VALUE
33+ from servicelib .rabbitmq .rpc_interfaces .async_jobs .async_jobs import (
34+ AsyncJobComposedResult ,
35+ )
3236from servicelib .rest_responses import unwrap_envelope
3337from settings_library .utils_session import DEFAULT_SESSION_COOKIE_NAME
3438from simcore_service_webserver .projects ._projects_service import (
3539 submit_delete_project_task ,
3640)
3741from simcore_service_webserver .projects .models import ProjectDict
42+ from simcore_service_webserver .projects .utils import NodesMap
3843from simcore_service_webserver .users .api import (
3944 delete_user_without_projects ,
4045 get_user_role ,
@@ -143,7 +148,7 @@ def mocks_on_projects_api(mocker: MockerFixture) -> None:
143148
144149@pytest .fixture
145150async def storage_subsystem_mock_override (
146- storage_subsystem_mock : MockedStorageSubsystem , mocker : MockerFixture
151+ storage_subsystem_mock : MockedStorageSubsystem , mocker : MockerFixture , faker : Faker
147152) -> None :
148153 """
149154 Mocks functions that require storage client
@@ -160,21 +165,37 @@ async def storage_subsystem_mock_override(
160165 )
161166
162167 async def _mock_copy_data_from_project (
163- app , src_prj , dst_prj , nodes_map , user_id
164- ) -> AsyncGenerator [LRTask , None ]:
168+ app : web .Application ,
169+ * ,
170+ source_project : ProjectDict ,
171+ destination_project : ProjectDict ,
172+ nodes_map : NodesMap ,
173+ user_id : UserID ,
174+ product_name : str ,
175+ ) -> AsyncGenerator [AsyncJobComposedResult , None ]:
165176 print (
166- f"MOCK copying data project { src_prj ['uuid' ]} -> { dst_prj ['uuid' ]} "
177+ f"MOCK copying data project { source_project ['uuid' ]} -> { destination_project ['uuid' ]} "
167178 f"with { len (nodes_map )} s3 objects by user={ user_id } "
168179 )
169180
170- yield LRTask (TaskProgress (message = "pytest mocked fct, started" ))
181+ yield AsyncJobComposedResult (
182+ AsyncJobStatus (
183+ job_id = faker .uuid4 (cast_to = None ),
184+ progress = ProgressReport (actual_value = 0 ),
185+ done = False ,
186+ )
187+ )
171188
172189 async def _mock_result ():
173190 return None
174191
175- yield LRTask (
176- TaskProgress (message = "pytest mocked fct, finished" , percent = 1.0 ),
177- _result = _mock_result (),
192+ yield AsyncJobComposedResult (
193+ AsyncJobStatus (
194+ job_id = faker .uuid4 (cast_to = None ),
195+ progress = ProgressReport (actual_value = 1 ),
196+ done = True ,
197+ ),
198+ _mock_result (),
178199 )
179200
180201 mock .side_effect = _mock_copy_data_from_project
0 commit comments