Beispiel #1
0
def test_json_response_raises_for_not_json_serializable():
    class NotSerializable:
        def __init__(self) -> None:
            self.foo = True
            self.might_be_secret = "iunisud109283012"

    with pytest.raises(TypeError):
        json(NotSerializable())
Beispiel #2
0
 async def integrityerror_exception_handler(self, request: Request,
                                            exc: IntegrityError):
     return json(
         {
             "detail": [{
                 "loc": [],
                 "msg": str(exc),
                 "type": "IntegrityError"
             }]
         }, 422)
Beispiel #3
0
async def view_api(request):
    """Check headers for authorization, load JSON/query data and return as JSON."""
    if not request.headers.get(b'authorization'):
        return unauthorized()

    return json({
        'params': {k: int(v) for k, v in request.route_values.items()},
        'query': dict(request.query),
        'data': await request.json(),
    })
Beispiel #4
0
    async def handler(request: Request) -> Response:
        result = await method(request)

        if result is None:
            # later the application defaults to 204 No Content
            return result

        if not isinstance(result, Response):
            # default to a plain text or JSON response
            if isinstance(result, str):
                return responses.text(result)
            return responses.json(result)

        return result
Beispiel #5
0
async def upload_files(request: Request):
    files = await request.files()

    assert bool(files)

    folder = "out"

    ensure_folder(folder)

    for part in files:
        with open(f"./{folder}/{part.file_name.decode()}", mode="wb") as saved_filed:
            saved_filed.write(part.data)

    return json(
        {
            "folder": folder,
            "files": [{"name": file.file_name.decode()} for file in files],
        }
    )
Beispiel #6
0
async def upload_files(request):
    files = await request.files()

    assert bool(files)

    folder = 'out'

    ensure_folder(folder)

    for part in files:
        with open(f'./{folder}/{part.file_name.decode()}',
                  mode='wb') as saved_filed:
            saved_filed.write(part.data)

    return json({
        'folder': folder,
        'files': [{
            'name': file.file_name.decode()
        } for file in files]
    })
Beispiel #7
0
async def post_form(request):
    data = await request.form()
    assert data is not None
    return json(data)
Beispiel #8
0
 def json(self, data, status: int = 200) -> Response:
     """
     Returns a response with application/json content, and given status
     (default HTTP 200 OK).
     """
     return json(data, status)
 async def user_info(user: User) -> Response:
     return json(user.claims)
Beispiel #10
0
 async def home():
     return json(obj)
Beispiel #11
0
async def echo_route_values_autobind(one, two, three):
    return json(dict(one=one, two=two, three=three))
Beispiel #12
0
async def echo_route_values(request: Request):
    params = request.route_values
    return json(params)
Beispiel #13
0
async def echo_query(request: Request):
    params = request.query
    return json(params)
 async def dependency_injection_example(conf: Configuration) -> Response:
     # Note how `Configuration` service is registered in `app.services.py`;
     # Refer to BlackSheep, and rodi documentation for more information
     return json({"app_name": conf.app_name, "github_url": conf.github_url})
Beispiel #15
0
async def echo_cookies(request):
    cookies = request.cookies
    return json(cookies)
Beispiel #16
0
async def upload_item(request, item: Item):
    assert request is not None
    assert item is not None
    return json(item.__dict__)
Beispiel #17
0
 async def doesnotexist_exception_handler(self, request: Request,
                                          exc: DoesNotExist):
     return json({"detail": str(exc)}, 404)