Skip to content

Commit 69c7a99

Browse files
fix output types (#867)
1 parent 52a647a commit 69c7a99

File tree

4 files changed

+486
-459
lines changed

4 files changed

+486
-459
lines changed

CHANGES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66

77
- support for python 3.9 and 3.10
88

9+
### Fixed
10+
11+
- fixed output type for `api.models.create_request_model` and `api.models.create_get_request_model` methods
12+
913
## [6.1.1] - 2025-11-23
1014

1115
### Fixed

stac_fastapi/api/stac_fastapi/api/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def create_request_model(
3333
extensions: Optional[List[ApiExtension]] = None,
3434
mixins: Optional[Union[List[Type[BaseModel]], List[Type[APIRequest]]]] = None,
3535
request_type: Optional[str] = "GET",
36-
) -> Union[Type[BaseModel], APIRequest]:
36+
) -> Union[Type[BaseModel], Type[APIRequest]]:
3737
"""Create a pydantic model for validating request bodies."""
3838
fields = {}
3939
extension_models = []
@@ -65,7 +65,7 @@ def create_request_model(
6565
def create_get_request_model(
6666
extensions: Optional[List[ApiExtension]],
6767
base_model: BaseSearchGetRequest = BaseSearchGetRequest,
68-
) -> APIRequest:
68+
) -> Type[APIRequest]:
6969
"""Wrap create_request_model to create the GET request model."""
7070

7171
return create_request_model(

stac_fastapi/api/tests/test_models.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,24 @@
33
import pytest
44
from fastapi import Depends, FastAPI, HTTPException
55
from fastapi.testclient import TestClient
6-
from pydantic import ValidationError
6+
from pydantic import BaseModel, ValidationError
77

88
from stac_fastapi.api.models import create_get_request_model, create_post_request_model
99
from stac_fastapi.extensions.core import FieldsExtension, FilterExtension, SortExtension
10-
from stac_fastapi.types.search import BaseSearchGetRequest, BaseSearchPostRequest
10+
from stac_fastapi.types.search import (
11+
APIRequest,
12+
BaseSearchGetRequest,
13+
BaseSearchPostRequest,
14+
)
1115

1216

1317
def test_create_get_request_model():
1418
request_model = create_get_request_model(
1519
extensions=[FilterExtension(), FieldsExtension()],
1620
base_model=BaseSearchGetRequest,
1721
)
22+
assert type(request_model) is type
23+
assert issubclass(request_model, APIRequest)
1824

1925
model = request_model(
2026
collections="test1,test2",
@@ -96,6 +102,7 @@ def test_create_post_request_model(filter_val, passes):
96102
extensions=[FilterExtension(), FieldsExtension()],
97103
base_model=BaseSearchPostRequest,
98104
)
105+
assert issubclass(request_model, BaseModel)
99106

100107
if not passes:
101108
with pytest.raises(ValidationError):

0 commit comments

Comments
 (0)