13
13
from faker import Faker
14
14
from fastapi import status
15
15
from pydantic import TypeAdapter
16
+ from pytest_mock import MockType
16
17
from pytest_simcore .helpers .httpx_calls_capture_models import HttpApiCallCaptureModel
17
18
from respx import MockRouter
18
19
from servicelib .common_headers import (
@@ -33,7 +34,8 @@ class MockedBackendApiDict(TypedDict):
33
34
34
35
@pytest .fixture
35
36
def mocked_backend (
36
- mocked_webserver_service_api_base : MockRouter ,
37
+ mocked_webserver_rest_api_base : MockRouter ,
38
+ mocked_webserver_rpc_api : dict [str , MockType ],
37
39
project_tests_dir : Path ,
38
40
) -> MockedBackendApiDict :
39
41
mock_name = "for_test_api_routes_studies.json"
@@ -56,7 +58,7 @@ def mocked_backend(
56
58
capture = captures [name ]
57
59
assert capture .host == "webserver"
58
60
59
- route = mocked_webserver_service_api_base .request (
61
+ route = mocked_webserver_rest_api_base .request (
60
62
method = capture .method ,
61
63
path__regex = capture .path .removeprefix ("/v0" ) + "$" ,
62
64
name = capture .name ,
@@ -65,9 +67,7 @@ def mocked_backend(
65
67
json = capture .response_body ,
66
68
)
67
69
print (route )
68
- return MockedBackendApiDict (
69
- webserver = mocked_webserver_service_api_base , catalog = None
70
- )
70
+ return MockedBackendApiDict (webserver = mocked_webserver_rest_api_base , catalog = None )
71
71
72
72
73
73
@pytest .mark .acceptance_test (
@@ -124,13 +124,13 @@ async def test_studies_read_workflow(
124
124
async def test_list_study_ports (
125
125
client : httpx .AsyncClient ,
126
126
auth : httpx .BasicAuth ,
127
- mocked_webserver_service_api_base : MockRouter ,
127
+ mocked_webserver_rest_api_base : MockRouter ,
128
128
fake_study_ports : list [dict [str , Any ]],
129
129
study_id : StudyID ,
130
130
):
131
131
# Mocks /projects/{*}/metadata/ports
132
132
133
- mocked_webserver_service_api_base .get (
133
+ mocked_webserver_rest_api_base .get (
134
134
path__regex = r"/projects/(?P<project_id>[\w-]+)/metadata/ports$" ,
135
135
name = "list_project_metadata_ports" ,
136
136
).respond (
@@ -155,15 +155,15 @@ async def test_clone_study(
155
155
client : httpx .AsyncClient ,
156
156
auth : httpx .BasicAuth ,
157
157
study_id : StudyID ,
158
- mocked_webserver_service_api_base : MockRouter ,
158
+ mocked_webserver_rest_api_base : MockRouter ,
159
159
patch_webserver_long_running_project_tasks : Callable [[MockRouter ], MockRouter ],
160
160
parent_project_id : UUID | None ,
161
161
parent_node_id : UUID | None ,
162
162
):
163
163
# Mocks /projects
164
- patch_webserver_long_running_project_tasks (mocked_webserver_service_api_base )
164
+ patch_webserver_long_running_project_tasks (mocked_webserver_rest_api_base )
165
165
166
- callback = mocked_webserver_service_api_base ["create_projects" ].side_effect
166
+ callback = mocked_webserver_rest_api_base ["create_projects" ].side_effect
167
167
assert callback is not None
168
168
169
169
def clone_project_side_effect (request : httpx .Request ):
@@ -179,9 +179,9 @@ def clone_project_side_effect(request: httpx.Request):
179
179
assert _parent_node_id == f"{ parent_node_id } "
180
180
return callback (request )
181
181
182
- mocked_webserver_service_api_base [
183
- "create_projects"
184
- ]. side_effect = clone_project_side_effect
182
+ mocked_webserver_rest_api_base [ "create_projects" ]. side_effect = (
183
+ clone_project_side_effect
184
+ )
185
185
186
186
_headers = {}
187
187
if parent_project_id is not None :
@@ -192,7 +192,7 @@ def clone_project_side_effect(request: httpx.Request):
192
192
f"/{ API_VTAG } /studies/{ study_id } :clone" , headers = _headers , auth = auth
193
193
)
194
194
195
- assert mocked_webserver_service_api_base ["create_projects" ].called
195
+ assert mocked_webserver_rest_api_base ["create_projects" ].called
196
196
197
197
assert resp .status_code == status .HTTP_201_CREATED
198
198
@@ -201,11 +201,11 @@ async def test_clone_study_not_found(
201
201
client : httpx .AsyncClient ,
202
202
auth : httpx .BasicAuth ,
203
203
faker : Faker ,
204
- mocked_webserver_service_api_base : MockRouter ,
204
+ mocked_webserver_rest_api_base : MockRouter ,
205
205
patch_webserver_long_running_project_tasks : Callable [[MockRouter ], MockRouter ],
206
206
):
207
207
# Mocks /projects
208
- mocked_webserver_service_api_base .post (
208
+ mocked_webserver_rest_api_base .post (
209
209
path__regex = r"/projects" ,
210
210
name = "project_clone" ,
211
211
).respond (
0 commit comments