Skip to content

Commit 58e7fa1

Browse files
committed
start adding tests to celery module
1 parent 4479935 commit 58e7fa1

File tree

7 files changed

+65
-37
lines changed

7 files changed

+65
-37
lines changed

packages/celery-library/requirements/_base.txt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ aiofiles==24.1.0
1010
# via -r requirements/../../../packages/service-library/requirements/_base.in
1111
aiohappyeyeballs==2.6.1
1212
# via aiohttp
13-
aiohttp==3.11.18
13+
aiohttp==3.12.2
1414
# via
1515
# -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
1616
# -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
@@ -70,7 +70,7 @@ certifi==2025.4.26
7070
# requests
7171
charset-normalizer==3.4.2
7272
# via requests
73-
click==8.1.8
73+
click==8.2.1
7474
# via
7575
# celery
7676
# click-didyoumean
@@ -97,7 +97,7 @@ exceptiongroup==1.3.0
9797
# via aio-pika
9898
fast-depends==2.4.12
9999
# via faststream
100-
faststream==0.5.41
100+
faststream==0.5.42
101101
# via -r requirements/../../../packages/service-library/requirements/_base.in
102102
frozenlist==1.6.0
103103
# via
@@ -117,7 +117,7 @@ idna==3.10
117117
# yarl
118118
importlib-metadata==8.6.1
119119
# via opentelemetry-api
120-
jsonschema==4.23.0
120+
jsonschema==4.24.0
121121
# via
122122
# -r requirements/../../../packages/models-library/requirements/_base.in
123123
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
@@ -129,7 +129,7 @@ markdown-it-py==3.0.0
129129
# via rich
130130
mdurl==0.1.2
131131
# via markdown-it-py
132-
multidict==6.4.3
132+
multidict==6.4.4
133133
# via
134134
# aiohttp
135135
# yarl
@@ -139,6 +139,7 @@ opentelemetry-api==1.33.1
139139
# opentelemetry-exporter-otlp-proto-grpc
140140
# opentelemetry-exporter-otlp-proto-http
141141
# opentelemetry-instrumentation
142+
# opentelemetry-instrumentation-aio-pika
142143
# opentelemetry-instrumentation-logging
143144
# opentelemetry-instrumentation-redis
144145
# opentelemetry-instrumentation-requests
@@ -156,9 +157,12 @@ opentelemetry-exporter-otlp-proto-http==1.33.1
156157
# via opentelemetry-exporter-otlp
157158
opentelemetry-instrumentation==0.54b1
158159
# via
160+
# opentelemetry-instrumentation-aio-pika
159161
# opentelemetry-instrumentation-logging
160162
# opentelemetry-instrumentation-redis
161163
# opentelemetry-instrumentation-requests
164+
opentelemetry-instrumentation-aio-pika==0.54b1
165+
# via -r requirements/../../../packages/service-library/requirements/_base.in
162166
opentelemetry-instrumentation-logging==0.54b1
163167
# via -r requirements/../../../packages/service-library/requirements/_base.in
164168
opentelemetry-instrumentation-redis==0.54b1
@@ -223,7 +227,7 @@ psutil==7.0.0
223227
# via -r requirements/../../../packages/service-library/requirements/_base.in
224228
pycryptodome==3.23.0
225229
# via stream-zip
226-
pydantic==2.11.4
230+
pydantic==2.11.5
227231
# via
228232
# -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
229233
# -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
@@ -283,7 +287,7 @@ pydantic-settings==2.7.0
283287
# -r requirements/../../../packages/settings-library/requirements/_base.in
284288
pygments==2.19.1
285289
# via rich
286-
pyinstrument==5.0.1
290+
pyinstrument==5.0.2
287291
# via -r requirements/../../../packages/service-library/requirements/_base.in
288292
pyjwt==2.9.0
289293
# via redis
@@ -347,7 +351,7 @@ rich==14.0.0
347351
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
348352
# -r requirements/../../../packages/settings-library/requirements/_base.in
349353
# typer
350-
rpds-py==0.25.0
354+
rpds-py==0.25.1
351355
# via
352356
# jsonschema
353357
# referencing
@@ -367,7 +371,7 @@ toolz==1.0.0
367371
# via -r requirements/../../../packages/service-library/requirements/_base.in
368372
tqdm==4.67.1
369373
# via -r requirements/../../../packages/service-library/requirements/_base.in
370-
typer==0.15.4
374+
typer==0.16.0
371375
# via
372376
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
373377
# -r requirements/../../../packages/settings-library/requirements/_base.in
@@ -385,7 +389,7 @@ typing-extensions==4.13.2
385389
# pydantic-extra-types
386390
# typer
387391
# typing-inspection
388-
typing-inspection==0.4.0
392+
typing-inspection==0.4.1
389393
# via pydantic
390394
tzdata==2025.2
391395
# via kombu
@@ -415,12 +419,13 @@ wrapt==1.17.2
415419
# via
416420
# deprecated
417421
# opentelemetry-instrumentation
422+
# opentelemetry-instrumentation-aio-pika
418423
# opentelemetry-instrumentation-redis
419424
yarl==1.20.0
420425
# via
421426
# -r requirements/../../../packages/service-library/requirements/_base.in
422427
# aio-pika
423428
# aiohttp
424429
# aiormq
425-
zipp==3.21.0
430+
zipp==3.22.0
426431
# via importlib-metadata

packages/celery-library/requirements/_test.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
coverage
1313
faker
1414
fastapi
15+
docker
1516
httpx
1617
pint
1718
pytest

packages/celery-library/requirements/_test.txt

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,17 @@ certifi==2025.4.26
1313
# -c requirements/_base.txt
1414
# httpcore
1515
# httpx
16-
coverage==7.8.0
16+
# requests
17+
charset-normalizer==3.4.2
18+
# via
19+
# -c requirements/_base.txt
20+
# requests
21+
coverage==7.8.2
1722
# via
1823
# -r requirements/_test.in
1924
# pytest-cov
25+
docker==7.1.0
26+
# via -r requirements/_test.in
2027
faker==37.3.0
2128
# via -r requirements/_test.in
2229
fastapi==0.115.12
@@ -40,6 +47,7 @@ idna==3.10
4047
# -c requirements/_base.txt
4148
# anyio
4249
# httpx
50+
# requests
4351
iniconfig==2.1.0
4452
# via pytest
4553
packaging==25.0
@@ -57,7 +65,7 @@ pprintpp==0.4.0
5765
# via pytest-icdiff
5866
py-cpuinfo==9.0.0
5967
# via pytest-benchmark
60-
pydantic==2.11.4
68+
pydantic==2.11.5
6169
# via
6270
# -c requirements/../../../requirements/constraints.txt
6371
# -c requirements/_base.txt
@@ -76,10 +84,8 @@ pytest==8.3.5
7684
# pytest-instafail
7785
# pytest-mock
7886
# pytest-sugar
79-
pytest-asyncio==0.23.8
80-
# via
81-
# -c requirements/../../../requirements/constraints.txt
82-
# -r requirements/_test.in
87+
pytest-asyncio==1.0.0
88+
# via -r requirements/_test.in
8389
pytest-benchmark==5.1.0
8490
# via -r requirements/_test.in
8591
pytest-cov==6.1.1
@@ -88,7 +94,7 @@ pytest-icdiff==0.9
8894
# via -r requirements/_test.in
8995
pytest-instafail==0.5.0
9096
# via -r requirements/_test.in
91-
pytest-mock==3.14.0
97+
pytest-mock==3.14.1
9298
# via -r requirements/_test.in
9399
pytest-runner==6.0.1
94100
# via -r requirements/_test.in
@@ -103,6 +109,10 @@ pyyaml==6.0.2
103109
# -c requirements/../../../requirements/constraints.txt
104110
# -c requirements/_base.txt
105111
# -r requirements/_test.in
112+
requests==2.32.3
113+
# via
114+
# -c requirements/_base.txt
115+
# docker
106116
sniffio==1.3.1
107117
# via
108118
# -c requirements/_base.txt
@@ -124,11 +134,17 @@ typing-extensions==4.13.2
124134
# pydantic
125135
# pydantic-core
126136
# typing-inspection
127-
typing-inspection==0.4.0
137+
typing-inspection==0.4.1
128138
# via
129139
# -c requirements/_base.txt
130140
# pydantic
131141
tzdata==2025.2
132142
# via
133143
# -c requirements/_base.txt
134144
# faker
145+
urllib3==2.4.0
146+
# via
147+
# -c requirements/../../../requirements/constraints.txt
148+
# -c requirements/_base.txt
149+
# docker
150+
# requests

packages/celery-library/requirements/_tools.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ bump2version==1.0.1
88
# via -r requirements/../../../requirements/devenv.txt
99
cfgv==3.4.0
1010
# via pre-commit
11-
click==8.1.8
11+
click==8.2.1
1212
# via
1313
# -c requirements/_base.txt
1414
# black
@@ -19,7 +19,7 @@ distlib==0.3.9
1919
# via virtualenv
2020
filelock==3.18.0
2121
# via virtualenv
22-
identify==2.6.10
22+
identify==2.6.12
2323
# via pre-commit
2424
isort==6.0.1
2525
# via
@@ -67,9 +67,9 @@ pyyaml==6.0.2
6767
# -c requirements/_base.txt
6868
# -c requirements/_test.txt
6969
# pre-commit
70-
ruff==0.11.10
70+
ruff==0.11.11
7171
# via -r requirements/../../../requirements/devenv.txt
72-
setuptools==80.7.1
72+
setuptools==80.9.0
7373
# via pip-tools
7474
tomlkit==0.13.2
7575
# via pylint

packages/celery-library/tests/unit/conftest.py

Whitespace-only changes.

services/storage/tests/unit/test_async_jobs.py renamed to packages/celery-library/tests/unit/test_async_jobs.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import asyncio
55
import pickle
6-
from collections.abc import Callable
6+
from collections.abc import Awaitable, Callable
77
from datetime import timedelta
88
from enum import Enum
99
from typing import Any
@@ -31,7 +31,6 @@
3131
from models_library.users import UserID
3232
from servicelib.rabbitmq import RabbitMQRPCClient, RPCRouter
3333
from servicelib.rabbitmq.rpc_interfaces.async_jobs import async_jobs
34-
from simcore_service_storage.api.rpc.routes import get_rabbitmq_rpc_server
3534
from tenacity import (
3635
AsyncRetrying,
3736
retry_if_exception_type,
@@ -44,6 +43,12 @@
4443
"postgres",
4544
]
4645

46+
pytest_plugins = [
47+
"pytest_simcore.rabbit_service",
48+
"pytest_simcore.docker_compose",
49+
"pytest_simcore.docker_swarm",
50+
"pytest_simcore.repository_paths",
51+
]
4752

4853
###### RPC Interface ######
4954
router = RPCRouter()
@@ -110,9 +115,12 @@ async def async_job(task: Task, task_id: TaskID, action: Action, payload: Any) -
110115

111116

112117
@pytest.fixture
113-
async def register_rpc_routes(initialized_app: FastAPI) -> None:
114-
rpc_server = get_rabbitmq_rpc_server(initialized_app)
115-
await rpc_server.register_router(router, STORAGE_RPC_NAMESPACE, initialized_app)
118+
async def rpc_client(
119+
rpc_client: Callable[[str], Awaitable[RabbitMQRPCClient]],
120+
) -> RabbitMQRPCClient:
121+
client = await rpc_client("celery_test_client")
122+
await client.register_router(router, STORAGE_RPC_NAMESPACE)
123+
return client
116124

117125

118126
async def _start_task_via_rpc(
@@ -200,17 +208,15 @@ async def _wait_for_job(
200208
],
201209
)
202210
async def test_async_jobs_workflow(
203-
initialized_app: FastAPI,
204-
register_rpc_routes: None,
205-
storage_rabbitmq_rpc_client: RabbitMQRPCClient,
211+
rpc_client: RabbitMQRPCClient,
206212
with_storage_celery_worker: CeleryTaskWorker,
207213
user_id: UserID,
208214
product_name: ProductName,
209215
exposed_rpc_start: str,
210216
payload: Any,
211217
):
212218
async_job_get, job_id_data = await _start_task_via_rpc(
213-
storage_rabbitmq_rpc_client,
219+
rpc_client,
214220
rpc_task_name=exposed_rpc_start,
215221
user_id=user_id,
216222
product_name=product_name,
@@ -219,21 +225,21 @@ async def test_async_jobs_workflow(
219225
)
220226

221227
jobs = await async_jobs.list_jobs(
222-
storage_rabbitmq_rpc_client,
228+
rpc_client,
223229
rpc_namespace=STORAGE_RPC_NAMESPACE,
224230
filter_="", # currently not used
225231
job_id_data=job_id_data,
226232
)
227233
assert len(jobs) > 0
228234

229235
await _wait_for_job(
230-
storage_rabbitmq_rpc_client,
236+
rpc_client,
231237
async_job_get=async_job_get,
232238
job_id_data=job_id_data,
233239
)
234240

235241
async_job_result = await async_jobs.result(
236-
storage_rabbitmq_rpc_client,
242+
rpc_client,
237243
rpc_namespace=STORAGE_RPC_NAMESPACE,
238244
job_id=async_job_get.job_id,
239245
job_id_data=job_id_data,
@@ -248,7 +254,7 @@ async def test_async_jobs_workflow(
248254
],
249255
)
250256
async def test_async_jobs_cancel(
251-
initialized_app: FastAPI,
257+
# initialized_app: FastAPI,
252258
register_rpc_routes: None,
253259
storage_rabbitmq_rpc_client: RabbitMQRPCClient,
254260
with_storage_celery_worker: CeleryTaskWorker,
@@ -313,7 +319,7 @@ async def test_async_jobs_cancel(
313319
],
314320
)
315321
async def test_async_jobs_raises(
316-
initialized_app: FastAPI,
322+
# initialized_app: FastAPI,
317323
register_rpc_routes: None,
318324
storage_rabbitmq_rpc_client: RabbitMQRPCClient,
319325
with_storage_celery_worker: CeleryTaskWorker,

0 commit comments

Comments
 (0)