Skip to content

Commit e518cfd

Browse files
committed
refactor: rename mock dependencies for clarity and consistency in tests
1 parent 1d1bb79 commit e518cfd

File tree

6 files changed

+32
-74
lines changed

6 files changed

+32
-74
lines changed

services/api-server/tests/unit/api_functions/conftest.py

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@
3838
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
3939
from pytest_simcore.helpers.typing_env import EnvVarsDict
4040
from pytest_simcore.helpers.typing_mock import HandlerMockFactory
41-
from servicelib.rabbitmq._client_rpc import RabbitMQRPCClient
42-
from simcore_service_api_server.api.dependencies import services
43-
from simcore_service_api_server.api.dependencies.services import get_rabbitmq_rpc_client
44-
from simcore_service_api_server.api.routes.functions_routes import get_wb_api_rpc_client
4541

4642

4743
@pytest.fixture
@@ -59,50 +55,16 @@ def app_environment(
5955
)
6056

6157

62-
class DummyRpcClient(RabbitMQRPCClient):
63-
64-
def __init__(self):
65-
self.client_name = "dummy_client"
66-
self.settings = {} # type: ignore # Add a settings attribute to avoid AttributeError
67-
68-
async def request(self, namespace: str, method_name: str, **kwargs):
69-
# Mock implementation of the request method
70-
assert isinstance(namespace, str)
71-
assert isinstance(method_name, str)
72-
assert isinstance(kwargs, dict)
73-
return {"mocked_response": True}
74-
75-
7658
@pytest.fixture
77-
async def mock_rabbitmq_rpc_client(
59+
async def mock_dependency_get_celery_task_manager(
7860
app: FastAPI, mocker: MockerFixture
79-
) -> MockerFixture:
80-
def _():
81-
return DummyRpcClient()
82-
83-
app.dependency_overrides[get_rabbitmq_rpc_client] = _
84-
return mocker
85-
86-
87-
@pytest.fixture
88-
async def mock_celery_task_manager(app: FastAPI, mocker: MockerFixture) -> MockType:
61+
) -> MockType:
8962
def _new(app: FastAPI):
9063
return None
9164

92-
return mocker.patch.object(services, services.get_task_manager.__name__, _new)
93-
65+
from simcore_service_api_server.api.dependencies import services
9466

95-
@pytest.fixture
96-
async def mock_get_wb_api_rpc_client(app: FastAPI, mocker: MockerFixture) -> None:
97-
def _new():
98-
from simcore_service_api_server.services_rpc import wb_api_server
99-
100-
# pylint: disable=protected-access
101-
return wb_api_server._create_obj(
102-
app, mocker.MagicMock(spec=RabbitMQRPCClient)
103-
) # noqa: SLF001
104-
105-
app.dependency_overrides[get_wb_api_rpc_client] = _new
67+
return mocker.patch.object(services, services.get_task_manager.__name__, _new)
10668

10769

10870
@pytest.fixture
@@ -272,7 +234,7 @@ def fake_registered_function_job_collection(
272234

273235
@pytest.fixture()
274236
def mock_handler_in_functions_rpc_interface(
275-
mock_get_wb_api_rpc_client: None,
237+
mocked_app_rpc_dependencies: None,
276238
mocker: MockerFixture,
277239
) -> HandlerMockFactory:
278240
def _create(
@@ -299,7 +261,7 @@ def _create(
299261

300262
@pytest.fixture()
301263
def mock_method_in_jobs_service(
302-
mock_get_wb_api_rpc_client: None,
264+
mocked_app_rpc_dependencies: None,
303265
mocker: MockerFixture,
304266
) -> Callable[[str, Any, Exception | None], MockType]:
305267
def _create(

services/api-server/tests/unit/api_functions/test_api_routers_function_job_collections.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
RegisteredProjectFunctionJob,
1414
)
1515
from models_library.rest_pagination import PageMetaInfoLimitOffset
16-
from pytest_mock import MockerFixture
1716
from servicelib.aiohttp import status
1817
from simcore_service_api_server._meta import API_VTAG
1918

@@ -107,7 +106,7 @@ async def test_delete_function_job_collection(
107106
@pytest.mark.parametrize("response_type", ["page", "list"])
108107
async def test_get_function_job_collection_jobs(
109108
client: AsyncClient,
110-
mock_rabbitmq_rpc_client: MockerFixture,
109+
mocked_app_rpc_dependencies: None,
111110
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
112111
fake_registered_function_job_collection: RegisteredFunctionJobCollection,
113112
fake_registered_project_function_job: RegisteredProjectFunctionJob,

services/api-server/tests/unit/api_functions/test_api_routers_function_jobs.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,9 @@ async def test_get_function_job(
114114

115115
async def test_list_function_jobs(
116116
client: AsyncClient,
117-
mock_rabbitmq_rpc_client: MockerFixture,
118-
mock_celery_task_manager: MockType,
117+
mocked_app_rpc_dependencies: None,
118+
mocked_rabbit_rpc_client: MockerFixture,
119+
mock_dependency_get_celery_task_manager: MockType,
119120
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
120121
fake_registered_project_function_job: RegisteredProjectFunctionJob,
121122
auth: httpx.BasicAuth,
@@ -141,8 +142,8 @@ async def test_list_function_jobs(
141142
@pytest.mark.parametrize("status_str", ["SUCCESS", "FAILED"])
142143
async def test_list_function_jobs_with_status(
143144
client: AsyncClient,
144-
mock_rabbitmq_rpc_client: MockerFixture,
145-
mock_celery_task_manager: MockType,
145+
mocked_app_rpc_dependencies: None,
146+
mock_dependency_get_celery_task_manager: MockType,
146147
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
147148
fake_registered_project_function: RegisteredProjectFunction,
148149
fake_registered_project_function_job: RegisteredProjectFunctionJob,
@@ -196,8 +197,8 @@ async def test_list_function_jobs_with_status(
196197

197198
async def test_list_function_jobs_with_job_id_filter(
198199
client: AsyncClient,
199-
mock_celery_task_manager: MockType,
200-
mock_rabbitmq_rpc_client: MockerFixture,
200+
mock_dependency_get_celery_task_manager: MockType,
201+
mocked_app_rpc_dependencies: None,
201202
mock_handler_in_functions_rpc_interface: Callable[[str], MockType],
202203
fake_registered_project_function_job: RegisteredProjectFunctionJob,
203204
user_id: UserID,
@@ -273,7 +274,7 @@ def mocked_list_function_jobs(offset: int, limit: int):
273274
)
274275
async def test_get_function_job_status(
275276
app: FastAPI,
276-
mocked_app_dependencies: None,
277+
mocked_app_rpc_dependencies: None,
277278
client: AsyncClient,
278279
mocker: MockerFixture,
279280
mock_handler_in_functions_rpc_interface: Callable[
@@ -397,8 +398,8 @@ async def _update_function_job_status_side_effect(*args, **kwargs):
397398
)
398399
async def test_get_function_job_outputs(
399400
client: AsyncClient,
400-
mock_celery_task_manager: MockType,
401-
mock_rabbitmq_rpc_client: MockerFixture,
401+
mocked_app_rpc_dependencies: None,
402+
mock_dependency_get_celery_task_manager: MockType,
402403
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
403404
fake_registered_project_function_job: RegisteredProjectFunctionJob,
404405
fake_registered_project_function: RegisteredProjectFunction,

services/api-server/tests/unit/api_functions/test_api_routers_functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ async def test_get_function_output_schema(
289289

290290
async def test_validate_function_inputs(
291291
client: AsyncClient,
292-
mock_rabbitmq_rpc_client: MockerFixture,
292+
mocked_app_rpc_dependencies: None,
293293
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
294294
fake_registered_project_function: RegisteredProjectFunction,
295295
auth: httpx.BasicAuth,
@@ -332,7 +332,7 @@ async def test_delete_function(
332332
async def test_run_map_function_not_allowed(
333333
client: AsyncClient,
334334
mocker: MockerFixture,
335-
mock_celery_task_manager: MockType,
335+
mock_dependency_get_celery_task_manager: MockType,
336336
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
337337
fake_registered_project_function: RegisteredProjectFunction,
338338
auth: httpx.BasicAuth,

services/api-server/tests/unit/conftest.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -300,13 +300,12 @@ async def _request(
300300

301301

302302
@pytest.fixture
303-
def mocked_app_dependencies(
304-
app: FastAPI, mocker: MockerFixture, mocked_rabbit_rpc_client: MockType
303+
def mocked_app_rpc_dependencies(
304+
app: FastAPI, mocked_rabbit_rpc_client: MockType
305305
) -> Iterator[None]:
306306
"""
307-
Mocks some dependency overrides for the FastAPI app.
307+
Mocks rabbit clients overrides for the FastAPI app.
308308
"""
309-
assert app.state.settings.API_SERVER_RABBITMQ is None
310309
from simcore_service_api_server.api.dependencies.rabbitmq import (
311310
get_rabbitmq_rpc_client,
312311
)
@@ -315,12 +314,7 @@ def mocked_app_dependencies(
315314
)
316315

317316
# Overrides Depends[get_rabbitmq_rpc_client]
318-
def _get_rabbitmq_rpc_client_override():
319-
return mocked_rabbit_rpc_client
320-
321-
app.dependency_overrides[get_rabbitmq_rpc_client] = (
322-
_get_rabbitmq_rpc_client_override
323-
)
317+
app.dependency_overrides[get_rabbitmq_rpc_client] = lambda: mocked_rabbit_rpc_client
324318

325319
# Overrides Depends[get_wb_api_rpc_client]
326320
async def _get_wb_api_rpc_client_override():
@@ -628,7 +622,7 @@ def fake_job_links() -> JobLinks:
628622

629623
@pytest.fixture
630624
def mocked_webserver_rpc_api(
631-
mocked_app_dependencies: None,
625+
mocked_app_rpc_dependencies: None,
632626
mocked_rabbit_rpc_client: MockType,
633627
) -> dict[str, MockType]:
634628
"""
@@ -651,7 +645,9 @@ def catalog_rpc_side_effects(request) -> Any:
651645

652646
@pytest.fixture
653647
def mocked_catalog_rpc_api(
654-
mocked_app_dependencies: None, mocker: MockerFixture, catalog_rpc_side_effects: Any
648+
mocked_app_rpc_dependencies: None,
649+
mocker: MockerFixture,
650+
catalog_rpc_side_effects: Any,
655651
) -> dict[str, MockType]:
656652
"""
657653
Mocks the catalog's simcore service RPC API for testing purposes.
@@ -692,7 +688,7 @@ def directorv2_rpc_side_effects(request) -> Any:
692688

693689
@pytest.fixture
694690
def mocked_directorv2_rpc_api(
695-
mocked_app_dependencies: None,
691+
mocked_app_rpc_dependencies: None,
696692
mocker: MockerFixture,
697693
directorv2_rpc_side_effects: Any,
698694
) -> dict[str, MockType]:
@@ -735,7 +731,7 @@ def storage_rpc_side_effects(request) -> Any:
735731

736732
@pytest.fixture
737733
def mocked_storage_rpc_api(
738-
mocked_app_dependencies: None,
734+
mocked_app_rpc_dependencies: None,
739735
mocker: MockerFixture,
740736
storage_rpc_side_effects: Any,
741737
) -> dict[str, MockType]:

services/api-server/tests/unit/test_api_solver_jobs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ def _get_pricing_unit_side_effect(
206206
],
207207
)
208208
async def test_start_solver_job_pricing_unit_with_payment(
209-
mocked_app_dependencies: None,
209+
mocked_app_rpc_dependencies: None,
210210
client: AsyncClient,
211211
mocked_webserver_rest_api_base: MockRouter,
212212
mocked_directorv2_rest_api_base: MockRouter,
@@ -283,7 +283,7 @@ def _put_pricing_plan_and_unit_side_effect(
283283

284284

285285
async def test_get_solver_job_pricing_unit_no_payment(
286-
mocked_app_dependencies: None,
286+
mocked_app_rpc_dependencies: None,
287287
client: AsyncClient,
288288
mocked_webserver_rest_api_base: MockRouter,
289289
mocked_directorv2_rest_api_base: MockRouter,
@@ -318,7 +318,7 @@ async def test_get_solver_job_pricing_unit_no_payment(
318318

319319

320320
async def test_start_solver_job_conflict(
321-
mocked_app_dependencies: None,
321+
mocked_app_rpc_dependencies: None,
322322
client: AsyncClient,
323323
mocked_webserver_rest_api_base: MockRouter,
324324
mocked_directorv2_rest_api_base: MockRouter,

0 commit comments

Comments
 (0)