1 changed files with 50 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||||
|
import itertools |
||||
|
from typing import List |
||||
|
|
||||
|
import pytest |
||||
|
from fastapi.openapi.constants import TypeValue |
||||
|
from fastapi.openapi.models import Schema |
||||
|
|
||||
|
# Define all possible type values |
||||
|
TYPE_VALUES: List[TypeValue] = [ |
||||
|
"array", |
||||
|
"boolean", |
||||
|
"integer", |
||||
|
"null", |
||||
|
"number", |
||||
|
"object", |
||||
|
"string", |
||||
|
] |
||||
|
|
||||
|
# Generate all combinations of 2 or more types |
||||
|
TYPE_COMBINATIONS = [ |
||||
|
list(combo) |
||||
|
for size in range(2, len(TYPE_VALUES) + 1) |
||||
|
for combo in itertools.combinations(TYPE_VALUES, size) |
||||
|
] |
||||
|
|
||||
|
|
||||
|
@pytest.mark.parametrize("type_val", TYPE_VALUES) |
||||
|
def test_schema_type_single_type_value(type_val: TypeValue) -> None: |
||||
|
"""Test that Schema accepts single TypeValue for type field.""" |
||||
|
schema = Schema(type=type_val) |
||||
|
assert schema.type == type_val |
||||
|
|
||||
|
|
||||
|
@pytest.mark.parametrize("type_list", TYPE_COMBINATIONS) |
||||
|
def test_schema_type_multiple_type_value(type_list: List[TypeValue]) -> None: |
||||
|
"""Test all possible combinations of TypeValue for Schema type field.""" |
||||
|
schema = Schema(type=type_list) |
||||
|
assert schema.type == type_list |
||||
|
|
||||
|
|
||||
|
def test_schema_type_none_value() -> None: |
||||
|
"""Test that Schema accepts None for type field (Optional).""" |
||||
|
schema = Schema(type=None) |
||||
|
assert schema.type is None |
||||
|
|
||||
|
|
||||
|
def test_schema_default_type() -> None: |
||||
|
"""Test that Schema defaults to None for type field if not specified.""" |
||||
|
schema_default = Schema() |
||||
|
assert schema_default.type is None |
Loading…
Reference in new issue