File tree Expand file tree Collapse file tree 7 files changed +31
-1
lines changed Expand file tree Collapse file tree 7 files changed +31
-1
lines changed Original file line number Diff line number Diff line change 103103 from pytest_celery .vendors .worker .fixtures import default_worker_container_session_cls
104104 from pytest_celery .vendors .worker .fixtures import default_worker_env
105105 from pytest_celery .vendors .worker .fixtures import default_worker_initial_content
106+ from pytest_celery .vendors .worker .fixtures import default_worker_ports
106107 from pytest_celery .vendors .worker .fixtures import default_worker_signals
107108 from pytest_celery .vendors .worker .fixtures import default_worker_tasks
108109 from pytest_celery .vendors .worker .fixtures import default_worker_utils_module
Original file line number Diff line number Diff line change @@ -32,6 +32,8 @@ ENV WORKER_QUEUE=$CELERY_WORKER_QUEUE
3232ENV PYTHONUNBUFFERED=1
3333ENV PYTHONDONTWRITEBYTECODE=1
3434
35+ EXPOSE 5678
36+
3537# Install Python dependencies
3638RUN pip install --no-cache-dir --upgrade \
3739 pip \
Original file line number Diff line number Diff line change 1414from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_ENV
1515from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_LOG_LEVEL
1616from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_NAME
17+ from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_PORTS
1718from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_QUEUE
1819from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_VERSION
1920from pytest_celery .vendors .worker .volume import WorkerInitialContent
@@ -197,3 +198,8 @@ def initial_content(
197198 content .set_config_from_object (worker_app )
198199
199200 return content .generate ()
201+
202+ @classmethod
203+ def ports (cls ) -> dict | None :
204+ """Ports to expose from the worker container."""
205+ return DEFAULT_WORKER_PORTS
Original file line number Diff line number Diff line change 2121 "PYTHONDONTWRITEBYTECODE" : "1" ,
2222 "PYTHONPATH" : "/app" ,
2323}
24+ WORKER_DEBUGPY_PORTS = {
25+ "5678/tcp" : "5678" ,
26+ }
2427WORKER_VOLUME = {
2528 "bind" : "/app" ,
2629 "mode" : "rw" ,
3033DEFAULT_WORKER_LOG_LEVEL = WORKER_LOG_LEVEL
3134DEFAULT_WORKER_NAME = WORKER_NAME
3235DEFAULT_WORKER_ENV = WORKER_ENV
36+ DEFAULT_WORKER_PORTS = None
3337DEFAULT_WORKER_QUEUE = WORKER_QUEUE
3438DEFAULT_WORKER_CONTAINER_TIMEOUT = 60
3539DEFAULT_WORKER_VOLUME = WORKER_VOLUME
Original file line number Diff line number Diff line change @@ -86,6 +86,7 @@ def default_worker_container_session_cls() -> type[CeleryWorkerContainer]:
8686
8787default_worker_container = container (
8888 image = "{celery_base_worker_image.id}" ,
89+ ports = fxtr ("default_worker_ports" ),
8990 environment = fxtr ("default_worker_env" ),
9091 network = "{default_pytest_celery_network.name}" ,
9192 volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
@@ -237,6 +238,19 @@ def default_worker_initial_content(
237238 )
238239
239240
241+ @pytest .fixture
242+ def default_worker_ports (default_worker_container_cls : type [CeleryWorkerContainer ]) -> dict | None :
243+ """Port bindings for this vendor.
244+
245+ Args:
246+ default_worker_container_cls (type[CeleryWorkerContainer]): See also: :ref:`vendor-class`.
247+
248+ Returns:
249+ dict: Port bindings.
250+ """
251+ return default_worker_container_cls .ports ()
252+
253+
240254@pytest .fixture
241255def default_worker_app_module (default_worker_container_cls : type [CeleryWorkerContainer ]) -> ModuleType :
242256 """App module for this worker.
Original file line number Diff line number Diff line change @@ -51,6 +51,7 @@ def default_worker_container_session_cls() -> type[CeleryWorkerContainer]:
5151
5252default_worker_container = container (
5353 image = "{integration_tests_worker_image.id}" ,
54+ ports = fxtr ("default_worker_ports" ),
5455 environment = fxtr ("default_worker_env" ),
5556 network = "{default_pytest_celery_network.name}" ,
5657 volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ def worker_queue(cls) -> str:
4343
4444celery_latest_worker_container = container (
4545 image = "{celery_latest_worker_image.id}" ,
46+ ports = fxtr ("default_worker_ports" ),
4647 environment = fxtr ("default_worker_env" ),
4748 network = "{default_pytest_celery_network.name}" ,
4849 volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
@@ -96,7 +97,8 @@ def default_worker_container_session_cls() -> type[CeleryWorkerContainer]:
9697
9798
9899default_worker_container = container (
99- image = "{smoke_tests_worker_image.id}" , # TODO: Use fixture to avoid defining default_worker_container again
100+ image = "{smoke_tests_worker_image.id}" ,
101+ ports = fxtr ("default_worker_ports" ),
100102 environment = fxtr ("default_worker_env" ),
101103 network = "{default_pytest_celery_network.name}" ,
102104 volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
You can’t perform that action at this time.
0 commit comments