Spaces:
Sleeping
Sleeping
File size: 2,577 Bytes
41fae03 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | """Tests for the RawProviderPayload model."""
from __future__ import annotations
import pytest
from pydantic import ValidationError
from src.app.domain.models import RawProviderPayload
class TestRawProviderPayload:
def test_valid_dict_payload(self) -> None:
rp = RawProviderPayload(
provider_id="paddleocr",
adapter_id="adapter.paddle.v1",
runtime_type="local",
payload={"pages": [{"blocks": []}]},
)
assert rp.provider_id == "paddleocr"
def test_valid_list_payload(self) -> None:
rp = RawProviderPayload(
provider_id="paddleocr",
adapter_id="adapter.paddle.v1",
runtime_type="local",
payload=[[[100, 200], [300, 200], [300, 250], [100, 250]], ["text", 0.95]],
)
assert isinstance(rp.payload, list)
def test_empty_provider_rejected(self) -> None:
with pytest.raises(ValidationError):
RawProviderPayload(
provider_id="",
adapter_id="v1",
runtime_type="local",
payload={},
)
def test_with_image_dimensions(self) -> None:
rp = RawProviderPayload(
provider_id="paddle",
adapter_id="v1",
runtime_type="local",
payload={},
image_width=2480,
image_height=3508,
)
assert rp.image_width == 2480
def test_zero_dimension_rejected(self) -> None:
with pytest.raises(ValidationError):
RawProviderPayload(
provider_id="paddle",
adapter_id="v1",
runtime_type="local",
payload={},
image_width=0,
image_height=100,
)
def test_with_metadata(self) -> None:
rp = RawProviderPayload(
provider_id="paddle",
adapter_id="v1",
runtime_type="local",
payload={"data": "test"},
metadata={"processing_time_ms": 1234},
)
assert rp.metadata["processing_time_ms"] == 1234
def test_json_roundtrip(self) -> None:
rp = RawProviderPayload(
provider_id="paddle",
adapter_id="v1",
runtime_type="local",
model_id="PP-OCRv4",
payload={"blocks": [{"text": "hello"}]},
)
data = rp.model_dump(mode="json")
rp2 = RawProviderPayload.model_validate(data)
assert rp2.provider_id == rp.provider_id
assert rp2.model_id == "PP-OCRv4"
|