Add worker delivery acceptance probe
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
from govoplan_core.celery_app import celery
|
||||
from govoplan_core.celery_app import celery, worker_acceptance_probe
|
||||
from govoplan_core.settings import settings
|
||||
|
||||
|
||||
@@ -26,9 +27,33 @@ class CeleryQueueContractTests(unittest.TestCase):
|
||||
def test_delivery_tasks_keep_worker_loss_protection(self) -> None:
|
||||
self.assertTrue(celery.conf.task_acks_late)
|
||||
self.assertTrue(celery.conf.task_reject_on_worker_lost)
|
||||
self.assertTrue(celery.conf.task_track_started)
|
||||
self.assertEqual(1, celery.conf.worker_prefetch_multiplier)
|
||||
self.assertEqual(
|
||||
settings.celery_visibility_timeout_seconds,
|
||||
celery.conf.broker_transport_options["visibility_timeout"],
|
||||
)
|
||||
|
||||
def test_worker_acceptance_probe_is_bounded_and_side_effect_free(self) -> None:
|
||||
with patch.object(worker_acceptance_probe, "update_state") as update_state:
|
||||
result = worker_acceptance_probe.run(
|
||||
"probe-1",
|
||||
mode="complete",
|
||||
delay_seconds=0,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
{
|
||||
"probe_id": "probe-1",
|
||||
"mode": "complete",
|
||||
"retries": 0,
|
||||
"redelivered": False,
|
||||
"delivery_count": None,
|
||||
},
|
||||
result,
|
||||
)
|
||||
update_state.assert_called_once()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user