37 lines
831 B
Python
37 lines
831 B
Python
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")
|