p1-taskqueue 0.1.31__tar.gz → 0.1.32__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/PKG-INFO +1 -1
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/pyproject.toml +1 -1
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/p1_taskqueue.egg-info/PKG-INFO +1 -1
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/celery_app.py +3 -2
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/tests/test_celery_app.py +22 -19
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/README.md +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/setup.cfg +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/p1_taskqueue.egg-info/SOURCES.txt +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/p1_taskqueue.egg-info/dependency_links.txt +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/p1_taskqueue.egg-info/requires.txt +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/p1_taskqueue.egg-info/top_level.txt +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/__init__.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/apps.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/cmanager.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/libs/__init__.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/libs/helper_test.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/migrations/0001_initial.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/migrations/0002_add_channel_to_taskreconstruction.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/migrations/0003_alter_taskreconstruction_id.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/migrations/0004_add_callable_name_meta_to_taskreconstruction.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/migrations/__init__.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/models.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/src/taskqueue/slack_notifier.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/tests/test_cmanager.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/tests/test_helper_test_functions.py +0 -0
- {p1_taskqueue-0.1.31 → p1_taskqueue-0.1.32}/tests/test_test_utils.py +0 -0
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "p1-taskqueue"
|
|
7
7
|
# DO NOT CHANGE THIS VERSION - it gets automatically replaced by CI/CD with the git tag version
|
|
8
|
-
version = "0.1.
|
|
8
|
+
version = "0.1.32"
|
|
9
9
|
description = "A Task Queue Wrapper for Dekoruma Backend"
|
|
10
10
|
authors = [
|
|
11
11
|
{name = "Chalvin", email = "engineering@dekoruma.com"}
|
|
@@ -54,13 +54,14 @@ def create_celery_app():
|
|
|
54
54
|
'broker_pool_limit': 2,
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
setup_queues(app, settings, celery_config)
|
|
57
58
|
app.conf.update(celery_config)
|
|
58
59
|
app.autodiscover_tasks(['taskqueue'])
|
|
59
60
|
|
|
60
61
|
return app
|
|
61
62
|
|
|
62
63
|
|
|
63
|
-
def setup_queues(app, settings):
|
|
64
|
+
def setup_queues(app, settings, celery_config):
|
|
64
65
|
app_name = getattr(settings, 'TASKQUEUE_APP_NAME', 'taskqueue')
|
|
65
66
|
queue_names = getattr(settings, 'TASKQUEUE_QUEUES',
|
|
66
67
|
['default', 'high', 'low'])
|
|
@@ -101,7 +102,7 @@ def setup_queues(app, settings):
|
|
|
101
102
|
queues.append(dlq)
|
|
102
103
|
logger.info(f"[TaskQueue] DLQ '{dlq_name}' configured")
|
|
103
104
|
|
|
104
|
-
|
|
105
|
+
celery_config.update({
|
|
105
106
|
'task_default_queue': 'default',
|
|
106
107
|
'task_default_exchange': app_name,
|
|
107
108
|
'task_default_exchange_type': 'direct',
|
|
@@ -91,28 +91,29 @@ class TestSetupQueues:
|
|
|
91
91
|
def test_setup_queues_given_valid_settings_expect_queues_configured(self):
|
|
92
92
|
"""Test that setup_queues configures queues and DLQs correctly."""
|
|
93
93
|
mock_app = MagicMock()
|
|
94
|
-
mock_app.conf = {}
|
|
95
94
|
mock_settings = MagicMock()
|
|
96
95
|
mock_settings.TASKQUEUE_APP_NAME = 'testapp'
|
|
97
96
|
mock_settings.TASKQUEUE_QUEUES = ['default', 'high', 'low']
|
|
98
97
|
mock_settings.TASKQUEUE_DLQ_NAME_PREFIX = 'dlq'
|
|
99
98
|
|
|
100
|
-
|
|
99
|
+
celery_config = {}
|
|
100
|
+
|
|
101
|
+
setup_queues(mock_app, mock_settings, celery_config)
|
|
101
102
|
|
|
102
103
|
# Assertions
|
|
103
|
-
assert
|
|
104
|
-
assert
|
|
105
|
-
assert
|
|
106
|
-
assert len(
|
|
104
|
+
assert celery_config['task_default_queue'] == 'default'
|
|
105
|
+
assert celery_config['task_default_exchange'] == 'testapp'
|
|
106
|
+
assert celery_config['task_default_exchange_type'] == 'direct'
|
|
107
|
+
assert len(celery_config['task_queues']) == 6
|
|
107
108
|
|
|
108
|
-
main_queues = [q for q in
|
|
109
|
+
main_queues = [q for q in celery_config['task_queues']
|
|
109
110
|
if not q.name.startswith('dlq.')]
|
|
110
111
|
assert len(main_queues) == 3
|
|
111
112
|
assert any(q.name == 'default' for q in main_queues)
|
|
112
113
|
assert any(q.name == 'high' for q in main_queues)
|
|
113
114
|
assert any(q.name == 'low' for q in main_queues)
|
|
114
115
|
|
|
115
|
-
dlq_queues = [q for q in
|
|
116
|
+
dlq_queues = [q for q in celery_config['task_queues']
|
|
116
117
|
if q.name.startswith('dlq.')]
|
|
117
118
|
assert len(dlq_queues) == 3
|
|
118
119
|
assert any(q.name == 'dlq.default' for q in dlq_queues)
|
|
@@ -121,38 +122,40 @@ class TestSetupQueues:
|
|
|
121
122
|
|
|
122
123
|
def test_setup_queues_given_missing_settings_expect_defaults_used(self):
|
|
123
124
|
mock_app = MagicMock()
|
|
124
|
-
mock_app.conf = {}
|
|
125
125
|
mock_settings = MagicMock()
|
|
126
126
|
del mock_settings.TASKQUEUE_APP_NAME
|
|
127
127
|
del mock_settings.TASKQUEUE_QUEUES
|
|
128
128
|
del mock_settings.TASKQUEUE_DLQ_NAME_PREFIX
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
celery_config = {}
|
|
131
|
+
|
|
132
|
+
setup_queues(mock_app, mock_settings, celery_config)
|
|
131
133
|
|
|
132
|
-
assert
|
|
133
|
-
assert
|
|
134
|
-
assert
|
|
135
|
-
assert len(
|
|
134
|
+
assert celery_config['task_default_queue'] == 'default'
|
|
135
|
+
assert celery_config['task_default_exchange'] == 'taskqueue'
|
|
136
|
+
assert celery_config['task_default_exchange_type'] == 'direct'
|
|
137
|
+
assert len(celery_config['task_queues']) == 6
|
|
136
138
|
|
|
137
139
|
def test_setup_queues_given_single_queue_expect_correct_configuration(self):
|
|
138
140
|
mock_app = MagicMock()
|
|
139
|
-
mock_app.conf = {}
|
|
140
141
|
mock_settings = MagicMock()
|
|
141
142
|
mock_settings.TASKQUEUE_APP_NAME = 'singleapp'
|
|
142
143
|
mock_settings.TASKQUEUE_QUEUES = ['single']
|
|
143
144
|
mock_settings.TASKQUEUE_DLQ_NAME_PREFIX = 'dead'
|
|
144
145
|
|
|
145
|
-
|
|
146
|
+
celery_config = {}
|
|
147
|
+
|
|
148
|
+
setup_queues(mock_app, mock_settings, celery_config)
|
|
146
149
|
|
|
147
|
-
assert len(
|
|
150
|
+
assert len(celery_config['task_queues']) == 2
|
|
148
151
|
|
|
149
152
|
main_queue = next(
|
|
150
|
-
q for q in
|
|
153
|
+
q for q in celery_config['task_queues'] if q.name == 'single')
|
|
151
154
|
assert main_queue.queue_arguments['x-dead-letter-exchange'] == 'singleapp.dlx'
|
|
152
155
|
assert main_queue.queue_arguments['x-dead-letter-routing-key'] == 'dead.single'
|
|
153
156
|
|
|
154
157
|
dlq = next(
|
|
155
|
-
q for q in
|
|
158
|
+
q for q in celery_config['task_queues'] if q.name == 'dead.single')
|
|
156
159
|
assert dlq.exchange.name == 'singleapp.dlx'
|
|
157
160
|
|
|
158
161
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|