1
1
from dataclasses import dataclass
2
2
from datetime import datetime
3
- from typing import List
3
+ from typing import List , Optional
4
4
5
5
from pydantic import BaseModel
6
6
from typing_extensions import Annotated
@@ -105,7 +105,7 @@ def test_openapi_with_custom_params():
105
105
def handler (
106
106
count : Annotated [
107
107
int ,
108
- Query (gt = 0 , lt = 100 , examples = [Example ( summary = "Example 1" , value = 10 ) ]),
108
+ Query (gt = 0 , lt = 100 , examples = [10 ]),
109
109
] = 1 ,
110
110
):
111
111
print (count )
@@ -130,8 +130,7 @@ def handler(
130
130
assert parameter .schema_ .exclusiveMinimum == 0
131
131
assert parameter .schema_ .exclusiveMaximum == 100
132
132
assert len (parameter .schema_ .examples ) == 1
133
- assert parameter .schema_ .examples [0 ].summary == "Example 1"
134
- assert parameter .schema_ .examples [0 ].value == 10
133
+ assert parameter .schema_ .examples [0 ] == 10
135
134
136
135
137
136
def test_openapi_with_scalar_returns ():
@@ -469,16 +468,26 @@ def test_openapi_with_example_as_list():
469
468
def handler (
470
469
count : Annotated [
471
470
int ,
472
- Query (gt = 0 , lt = 100 , examples = ["Example 1" ]),
471
+ Query (gt = 0 , lt = 100 , examples = [10 ]),
473
472
] = 1 ,
473
+ name : Annotated [
474
+ Optional [str ],
475
+ Query (examples = ["Example 1" ]),
476
+ ] = None ,
477
+ include_extra : Annotated [
478
+ bool ,
479
+ Query (examples = [True ]),
480
+ ] = False ,
474
481
):
475
482
print (count )
483
+ print (name )
484
+ print (include_extra )
476
485
raise NotImplementedError ()
477
486
478
487
schema = app .get_openapi_schema ()
479
488
480
489
get = schema .paths ["/users" ].get
481
- assert len (get .parameters ) == 1
490
+ assert len (get .parameters ) == 3
482
491
assert get .summary == "Get Users"
483
492
assert get .operationId == "GetUsers"
484
493
assert get .description == "Get paginated users"
@@ -494,4 +503,27 @@ def handler(
494
503
assert parameter .schema_ .exclusiveMinimum == 0
495
504
assert parameter .schema_ .exclusiveMaximum == 100
496
505
assert len (parameter .schema_ .examples ) == 1
506
+ assert parameter .schema_ .examples [0 ] == 10
507
+
508
+ parameter = get .parameters [1 ]
509
+ assert isinstance (parameter , Parameter )
510
+ assert parameter .in_ == ParameterInType .query
511
+ assert parameter .name == "name"
512
+ assert parameter .required is False
513
+ assert parameter .schema_ .default is None
514
+ assert len (parameter .schema_ .anyOf ) == 2
515
+ assert {i .type for i in parameter .schema_ .anyOf } == {"string" , "null" }
516
+ assert parameter .schema_ .title == "Name"
517
+ assert len (parameter .schema_ .examples ) == 1
497
518
assert parameter .schema_ .examples [0 ] == "Example 1"
519
+
520
+ parameter = get .parameters [2 ]
521
+ assert isinstance (parameter , Parameter )
522
+ assert parameter .in_ == ParameterInType .query
523
+ assert parameter .name == "include_extra"
524
+ assert parameter .required is False
525
+ assert parameter .schema_ .default is False
526
+ assert parameter .schema_ .type == "boolean"
527
+ assert parameter .schema_ .title == "Include Extra"
528
+ assert len (parameter .schema_ .examples ) == 1
529
+ assert parameter .schema_ .examples [0 ] is True
0 commit comments