|
|
|
@ -1,3 +1,6 @@ |
|
|
|
import sys |
|
|
|
import pytest |
|
|
|
|
|
|
|
from typing import Any, Dict, List, Union |
|
|
|
|
|
|
|
from fastapi import FastAPI, UploadFile |
|
|
|
@ -148,6 +151,22 @@ def test_serialize_sequence_value_with_optional_list(): |
|
|
|
assert isinstance(result, list) |
|
|
|
|
|
|
|
|
|
|
|
@needs_pydanticv2 |
|
|
|
@pytest.mark.skipif( |
|
|
|
sys.version_info < (3, 10), |
|
|
|
reason='Requires new union syntax', |
|
|
|
) |
|
|
|
def test_serialize_sequence_value_with_optional_list_pipe_union(): |
|
|
|
"""Test that serialize_sequence_value handles optional lists correctly (with new syntax).""" |
|
|
|
from fastapi._compat import v2 |
|
|
|
|
|
|
|
field_info = FieldInfo(annotation=list[str] | None) |
|
|
|
field = v2.ModelField(name="items", field_info=field_info) |
|
|
|
result = v2.serialize_sequence_value(field=field, value=["a", "b", "c"]) |
|
|
|
assert result == ["a", "b", "c"] |
|
|
|
assert isinstance(result, list) |
|
|
|
|
|
|
|
|
|
|
|
@needs_pydanticv2 |
|
|
|
def test_serialize_sequence_value_with_none_first_in_union(): |
|
|
|
"""Test that serialize_sequence_value handles Union[None, List[...]] correctly.""" |
|
|
|
|