def get_cats( self, page: FromQuery[int] = FromQuery(1), page_size: FromQuery[int] = FromQuery(30), search: FromQuery[str] = FromQuery(""), ) -> CatsList: """
def get_cats( self, page: FromQuery[int] = FromQuery(1), page_size: FromQuery[int] = FromQuery(30), search: FromQuery[str] = FromQuery(""), ) -> Response: """
def get_cats_alt( self, page: FromQuery[int] = FromQuery(1), page_size: FromQuery[int] = FromQuery(30), search: FromQuery[str] = FromQuery(""), ) -> CatsList: """ Alternative way to have the response type for status 200 documented. """ return CatsList( [ Cat( id=UUID("3fa85f64-5717-4562-b3fc-2c963f66afa6"), name="Foo", active=True, type=CatType.EUROPEAN, creation_time=dateutil_parse("2020-10-25T19:39:31.751652"), ), Cat( id=UUID("f212cabf-987c-48e6-8cad-71d1c041209a"), name="Frufru", active=True, type=CatType.PERSIAN, creation_time=dateutil_parse("2020-10-25T19:39:31.751652"), ), ], 1230, )
async def test_from_query_raises_for_invalid_parameter(expected_type, invalid_value: bytes): request = Request('GET', b'/?foo=' + invalid_value, None) parameter = FromQuery(expected_type, 'foo', required=True) with raises(BadRequest): await parameter.get_value(request)
async def test_from_query_binding(expected_type, query_value, expected_value): request = Request('GET', b'/?foo=' + query_value, None) parameter = FromQuery(expected_type, 'foo') value = await parameter.get_value(request) assert isinstance(value, expected_type) assert value == expected_value
async def test_from_query_binding_iterables(declared_type, expected_type, query_values, expected_values): qs = b'&foo='.join([value for value in query_values]) request = Request('GET', b'/?foo=' + qs, None) parameter = FromQuery(declared_type, 'foo') values = await parameter.get_value(request) assert isinstance(values, expected_type) assert values == expected_values
async def test_nested_iterables_raise_missing_converter_from_query( declared_type): with raises(MissingConverterError): FromQuery('example', declared_type)
async def set_cookies(name: FromQuery(str), value: FromQuery(str)): response = text('Setting cookie') response.set_cookie(Cookie(name.encode(), value.encode())) return response
def home(request, xx: FromQuery()): assert xx == expected_values
def home(request, xx: FromQuery(int)): assert xx == 20
async def middleware(request, handler, example: FromQuery(str)): assert request is fake_request assert handler is fake_handler assert example == 'Lorem' return await handler(request)
def handler(a: FromQuery(str, 'example')): pass
def handler(a: FromQuery(List[str]), b: FromServices(Dog), c: FromJson(Cat), d: FromRoute(), e: FromHeader()): pass