Skip to content

Commit c91abad

Browse files
committed
further additions to tests
1 parent 33653cd commit c91abad

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

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

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from celery.signals import worker_init, worker_shutdown
1010
from celery.worker.worker import WorkController
1111
from celery_library.signals import on_worker_init, on_worker_shutdown
12+
from fakeredis.aioredis import FakeRedis
13+
from pytest_mock import MockerFixture
1214
from pytest_simcore.helpers.monkeypatch_envs import delenvs_from_dict, setenvs_from_dict
1315
from pytest_simcore.helpers.typing_env import EnvVarsDict
1416
from servicelib.fastapi.celery.app_server import FastAPIAppServer
@@ -33,15 +35,33 @@ def celery_config() -> dict[str, Any]:
3335
}
3436

3537

38+
@pytest.fixture
39+
async def mocked_redis_server(mocker: MockerFixture) -> None:
40+
mock_redis = FakeRedis()
41+
mocker.patch("redis.asyncio.from_url", return_value=mock_redis)
42+
43+
44+
@pytest.fixture
45+
def mock_celery_app(mocker: MockerFixture, celery_config: dict[str, Any]) -> Celery:
46+
celery_app = Celery(**celery_config)
47+
48+
for module in ("simcore_service_api_server.api.dependencies.celery.create_app",):
49+
mocker.patch(module, return_value=celery_app)
50+
51+
return celery_app
52+
53+
3654
@pytest.fixture
3755
def app_environment(
56+
mock_celery_app: Celery,
57+
mocked_redis_server: None,
3858
monkeypatch: pytest.MonkeyPatch,
3959
app_environment: EnvVarsDict,
4060
rabbit_env_vars_dict: EnvVarsDict,
4161
) -> EnvVarsDict:
4262
# do not init other services
43-
delenvs_from_dict(monkeypatch, ["API_SERVER_RABBITMQ"])
44-
return setenvs_from_dict(
63+
delenvs_from_dict(monkeypatch, ["API_SERVER_RABBITMQ", "API_SERVER_CELERY"])
64+
env_vars_dict = setenvs_from_dict(
4565
monkeypatch,
4666
{
4767
**rabbit_env_vars_dict,
@@ -51,6 +71,11 @@ def app_environment(
5171
},
5272
)
5373

74+
settings = ApplicationSettings.create_from_envs()
75+
assert settings.API_SERVER_CELERY is not None
76+
77+
return env_vars_dict
78+
5479

5580
@pytest.fixture
5681
def register_celery_tasks() -> Callable[[Celery], None]:

services/api-server/tests/unit/celery/test_functions.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,12 @@ async def test_with_fake_run_function(
8888
with_storage_celery_worker: TestWorkController,
8989
):
9090

91-
extra = RegisteredProjectFunction.model_config.get("json_schema_extra")
92-
assert extra
9391
app.dependency_overrides[get_function] = (
94-
lambda: RegisteredProjectFunction.model_validate(extra["examples"][0])
92+
lambda: RegisteredProjectFunction.model_validate(
93+
RegisteredProjectFunction.model_config.get("json_schema_extra", {}).get(
94+
"examples", []
95+
)[0]
96+
)
9597
)
9698

9799
headers = {}

0 commit comments

Comments
 (0)