feat: add cdr processing worker and dlq routing

This commit is contained in:
2026-09-20 14:38:05 +03:30
parent 89a746227b
commit 0e23e5bde8
10 changed files with 623 additions and 22 deletions

36
tests/unit/test_dlq.py Normal file
View File

@@ -0,0 +1,36 @@
from core.domain.errors import (
CDRProcessingError,
FailureReason,
)
from core.worker.dlq import build_dlq_envelope
def test_build_dlq_envelope() -> None:
original = {
"raw_id": "raw-invalid-001",
"rat": 99,
}
error = CDRProcessingError(
reason=FailureReason.INVALID_RAT_VALUE,
detail="Unsupported RAT value: 99.",
failed_field="rat",
)
envelope = build_dlq_envelope(
original_payload=original,
error=error,
worker_instance="worker-test",
)
assert envelope["original_payload"] == original
assert (
envelope["failure_reason"]
== "invalid_rat_value"
)
assert envelope["failed_field"] == "rat"
assert envelope["worker_instance"] == "worker-test"
assert envelope["failed_at"].endswith("Z")