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 103
103
from pytest_celery .vendors .worker .fixtures import default_worker_container_session_cls
104
104
from pytest_celery .vendors .worker .fixtures import default_worker_env
105
105
from pytest_celery .vendors .worker .fixtures import default_worker_initial_content
106
+ from pytest_celery .vendors .worker .fixtures import default_worker_ports
106
107
from pytest_celery .vendors .worker .fixtures import default_worker_signals
107
108
from pytest_celery .vendors .worker .fixtures import default_worker_tasks
108
109
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
32
32
ENV PYTHONUNBUFFERED=1
33
33
ENV PYTHONDONTWRITEBYTECODE=1
34
34
35
+ EXPOSE 5678
36
+
35
37
# Install Python dependencies
36
38
RUN pip install --no-cache-dir --upgrade \
37
39
pip \
Original file line number Diff line number Diff line change 14
14
from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_ENV
15
15
from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_LOG_LEVEL
16
16
from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_NAME
17
+ from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_PORTS
17
18
from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_QUEUE
18
19
from pytest_celery .vendors .worker .defaults import DEFAULT_WORKER_VERSION
19
20
from pytest_celery .vendors .worker .volume import WorkerInitialContent
@@ -197,3 +198,8 @@ def initial_content(
197
198
content .set_config_from_object (worker_app )
198
199
199
200
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 21
21
"PYTHONDONTWRITEBYTECODE" : "1" ,
22
22
"PYTHONPATH" : "/app" ,
23
23
}
24
+ WORKER_DEBUGPY_PORTS = {
25
+ "5678/tcp" : "5678" ,
26
+ }
24
27
WORKER_VOLUME = {
25
28
"bind" : "/app" ,
26
29
"mode" : "rw" ,
30
33
DEFAULT_WORKER_LOG_LEVEL = WORKER_LOG_LEVEL
31
34
DEFAULT_WORKER_NAME = WORKER_NAME
32
35
DEFAULT_WORKER_ENV = WORKER_ENV
36
+ DEFAULT_WORKER_PORTS = None
33
37
DEFAULT_WORKER_QUEUE = WORKER_QUEUE
34
38
DEFAULT_WORKER_CONTAINER_TIMEOUT = 60
35
39
DEFAULT_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]:
86
86
87
87
default_worker_container = container (
88
88
image = "{celery_base_worker_image.id}" ,
89
+ ports = fxtr ("default_worker_ports" ),
89
90
environment = fxtr ("default_worker_env" ),
90
91
network = "{default_pytest_celery_network.name}" ,
91
92
volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
@@ -237,6 +238,19 @@ def default_worker_initial_content(
237
238
)
238
239
239
240
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
+
240
254
@pytest .fixture
241
255
def default_worker_app_module (default_worker_container_cls : type [CeleryWorkerContainer ]) -> ModuleType :
242
256
"""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]:
51
51
52
52
default_worker_container = container (
53
53
image = "{integration_tests_worker_image.id}" ,
54
+ ports = fxtr ("default_worker_ports" ),
54
55
environment = fxtr ("default_worker_env" ),
55
56
network = "{default_pytest_celery_network.name}" ,
56
57
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:
43
43
44
44
celery_latest_worker_container = container (
45
45
image = "{celery_latest_worker_image.id}" ,
46
+ ports = fxtr ("default_worker_ports" ),
46
47
environment = fxtr ("default_worker_env" ),
47
48
network = "{default_pytest_celery_network.name}" ,
48
49
volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
@@ -96,7 +97,8 @@ def default_worker_container_session_cls() -> type[CeleryWorkerContainer]:
96
97
97
98
98
99
default_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" ),
100
102
environment = fxtr ("default_worker_env" ),
101
103
network = "{default_pytest_celery_network.name}" ,
102
104
volumes = {"{default_worker_volume.name}" : DEFAULT_WORKER_VOLUME },
You can’t perform that action at this time.
0 commit comments