Skip to content

Commit 7d56e7b

Browse files
committed
fixes issues with fixture
1 parent 1e7ae3b commit 7d56e7b

File tree

5 files changed

+26
-20
lines changed

5 files changed

+26
-20
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from ...api_schemas_webserver import DEFAULT_WEBSERVER_RPC_NAMESPACE
2+
3+
__all__: tuple[str, ...] = ("DEFAULT_WEBSERVER_RPC_NAMESPACE",)
4+
# nopycln" file

packages/pytest-simcore/src/pytest_simcore/helpers/webserver_rpc_server.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,8 @@
2626
class WebserverRpcSideEffects:
2727
# pylint: disable=no-self-use
2828

29-
def __init__(self, project_job_rpc_get: ProjectJobRpcGet | None = None):
30-
self.project_job_rpc_get = (
31-
project_job_rpc_get
32-
or ProjectJobRpcGet.model_validate(
33-
ProjectJobRpcGet.model_json_schema()["examples"][0]
34-
)
35-
)
29+
def __init__(self, fake_project_job_rpc_get: ProjectJobRpcGet):
30+
self.fake_project_job_rpc_get = fake_project_job_rpc_get
3631

3732
@validate_call(config={"arbitrary_types_allowed": True})
3833
async def mark_project_as_job(
@@ -112,7 +107,7 @@ async def get_project_marked_as_job(
112107
assert job_parent_resource_name
113108

114109
# Return a valid example from the schema
115-
_data = self.project_job_rpc_get.model_dump()
110+
_data = self.fake_project_job_rpc_get.model_dump()
116111
_data["uuid"] = str(project_uuid)
117112
_data["job_parent_resource_name"] = job_parent_resource_name
118113
return ProjectJobRpcGet.model_validate(_data)

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
FileUploadSchema,
3838
HealthCheck,
3939
)
40+
from models_library.api_schemas_webserver import DEFAULT_WEBSERVER_RPC_NAMESPACE
4041
from models_library.api_schemas_webserver.projects import ProjectGet
4142
from models_library.app_diagnostics import AppStatusCheck
4243
from models_library.generics import Envelope
@@ -257,10 +258,17 @@ def mocked_s3_server_url() -> Iterator[HttpUrl]:
257258

258259

259260
@pytest.fixture
260-
def mocked_rabbit_rpc_client(mocker: MockerFixture) -> MockType:
261+
def mocked_rabbit_rpc_client(
262+
mocker: MockerFixture, fake_project_job_rpc_get: ProjectJobRpcGet
263+
) -> MockType:
261264
"""This fixture mocks the RabbitMQRPCClient.request method which is used
262265
in all RPC clients in the api-server, regardeless of the namespace.
263266
"""
267+
_catalog_rpc_side_effects = CatalogRpcSideEffects()
268+
269+
_webserver_rpc_side_effects = WebserverRpcSideEffects(
270+
fake_project_job_rpc_get=fake_project_job_rpc_get
271+
)
264272

265273
async def _request(
266274
namespace: RPCNamespace,
@@ -272,19 +280,18 @@ async def _request(
272280

273281
# NOTE: we could switch to different namespaces
274282
if namespace == CATALOG_RPC_NAMESPACE:
275-
catalog_side_effect = CatalogRpcSideEffects()
276-
return await getattr(catalog_side_effect, method_name)(
283+
return await getattr(_catalog_rpc_side_effects, method_name)(
277284
mocker.MagicMock(), **kwargs
278285
)
279286

280-
# if not namespace == WEBSERVER_RPC_NAMESPACE
281-
webserver_side_effect = WebserverRpcSideEffects()
282-
return await getattr(webserver_side_effect, method_name)(
287+
assert namespace == DEFAULT_WEBSERVER_RPC_NAMESPACE or namespace.startswith(
288+
"wb"
289+
), "expected a webserver namespace!"
290+
291+
return await getattr(_webserver_rpc_side_effects, method_name)(
283292
mocker.MagicMock(), **kwargs
284293
)
285294

286-
pytest.fail(f"Unexpected namespace {namespace} and method {method_name}")
287-
288295
# NOTE: mocks RabbitMQRPCClient.request(...)
289296
mock = mocker.MagicMock(spec=RabbitMQRPCClient)
290297
mock.request.side_effect = _request

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pytest
88
from models_library.api_schemas_webserver.projects import ProjectCreateNew, ProjectGet
99
from models_library.products import ProductName
10-
from models_library.rpc.webserver import WEBSERVER_RPC_NAMESPACE
10+
from models_library.rpc.webserver import DEFAULT_WEBSERVER_RPC_NAMESPACE
1111
from models_library.users import UserID
1212
from pytest_mock import MockerFixture, MockType
1313
from pytest_simcore.helpers.catalog_rpc_server import CatalogRpcSideEffects
@@ -36,7 +36,7 @@ def wb_api_rpc_client(
3636

3737
return WbApiRpcClient(
3838
_rpc_client=WebServerRpcClient(
39-
mocked_rabbit_rpc_client, WEBSERVER_RPC_NAMESPACE
39+
mocked_rabbit_rpc_client, DEFAULT_WEBSERVER_RPC_NAMESPACE
4040
),
4141
)
4242

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ async def test_start_solver_job_conflict(
354354

355355

356356
@pytest.mark.parametrize(
357-
"project_job_rpc_get",
357+
"fake_project_job_rpc_get",
358358
[
359359
pytest.param(
360360
ProjectJobRpcGet(
@@ -507,7 +507,7 @@ def _wallet_side_effect(
507507

508508

509509
@pytest.mark.parametrize(
510-
"project_job_rpc_get",
510+
"fake_project_job_rpc_get",
511511
[
512512
ProjectJobRpcGet(
513513
uuid=UUID("12345678-1234-5678-1234-123456789012"),

0 commit comments

Comments
 (0)