Beispiel #1
0
    def get_responses(self):
        response_serializers = self.get_response_serializers()
        response_serializers.pop('201')
        response_serializers['200'] = ResponseSerializer()

        return openapi.Responses(
            responses=self.get_response_schemas(response_serializers))
Beispiel #2
0
 def get_operation(self, operation_keys):
     return openapi.Operation(
         operation_id='media_embed',
         responses=openapi.Responses(
             {302: openapi.Response(description='Media embed page')}),
         tags=['media'],
     )
Beispiel #3
0
    def get_responses(self):
        """Get the possible responses for this view as a swagger :class:`.Responses` object.

        :return: the documented responses
        :rtype: openapi.Responses
        """
        response_serializers = self.get_response_serializers()
        return openapi.Responses(
                responses=self.get_response_schemas(response_serializers)
        )
 def get_responses(self):
     """
     Get the possible responses for this view as a swagger
     :class:`.Responses` object.
     :return: the documented responses
     :rtype: openapi.Responses
     """
     response_serializers = self.get_response_serializers()
     response_serializers.update({"400": "BAD REQUEST"})
     response_serializers.update({"403": "FORBIDDEN"})
     response_serializers.update({"500": "INTERNAL SERVER ERROR"})
     return openapi.Responses(
         responses=self.get_response_schemas(response_serializers))
Beispiel #5
0
def test_get_operation_with_serializer():
    view = View()
    route = get_route(Controller.post_with_serializer)
    View.post.route = route
    reference_resolver = openapi.ReferenceResolver('definitions',
                                                   'parameters',
                                                   force_init=True)
    auto_schema = SwaggerAutoSchema(view, 'path', route.http_method,
                                    reference_resolver, 'request', {})
    operation = auto_schema.get_operation(['test_app', 'post'])
    schema_ref = openapi.SchemaRef(
        resolver=reference_resolver,
        schema_name='User',
    )
    parameters = [
        openapi.Parameter(
            name='data',
            in_=openapi.IN_BODY,
            required=True,
            schema=schema_ref,
        ),
    ]
    responses = openapi.Responses({
        '200':
        openapi.Response(
            description='',
            schema=openapi.Schema(
                type=openapi.TYPE_OBJECT,
                properties={
                    'name': {
                        'type': 'string',
                    },
                },
            ),
        ),
    })

    assert operation == openapi.Operation(
        operation_id='Controller.post_with_serializer',
        responses=responses,
        consumes=['application/json'],
        produces=['application/json'],
        tags=['test_app'],
        parameters=parameters,
    )
    del View.post.route
Beispiel #6
0
 def get_operation(self, operation_keys):
     return openapi.Operation(
         operation_id='media_source',
         responses=openapi.Responses(
             {302: openapi.Response(description='Media source stream')}),
         parameters=[
             openapi.Parameter(name='mimeType',
                               in_=openapi.IN_QUERY,
                               description='MIME type of media source',
                               type=openapi.TYPE_STRING),
             openapi.Parameter(name='width',
                               in_=openapi.IN_QUERY,
                               description='Width of media source',
                               type=openapi.TYPE_INTEGER),
             openapi.Parameter(name='height',
                               in_=openapi.IN_QUERY,
                               description='Height of media source',
                               type=openapi.TYPE_INTEGER),
         ],
         tags=['media'],
     )
Beispiel #7
0
def test_get_operation_without_route():
    view = View()
    reference_resolver = openapi.ReferenceResolver('definitions',
                                                   'parameters',
                                                   force_init=True)
    auto_schema = SwaggerAutoSchema(view, 'path', 'get', reference_resolver,
                                    'request', {})
    operation = auto_schema.get_operation(['test_app', 'post'])
    parameters = []
    responses = openapi.Responses({
        '200': openapi.Response(description=''),
    })

    assert operation == openapi.Operation(
        description='',
        operation_id='test_app_post',
        responses=responses,
        consumes=['application/json'],
        produces=['application/json'],
        tags=['test_app'],
        parameters=parameters,
    )
Beispiel #8
0
 def get_operation(self, operation_keys):
     return openapi.Operation(
         operation_id='media_poster',
         responses=openapi.Responses(
             {302: openapi.Response(description='Media poster image')}),
         parameters=[
             openapi.Parameter(
                 name='width',
                 in_=openapi.IN_PATH,
                 description='Desired width of image.',
                 type=openapi.TYPE_INTEGER,
                 enum=POSTER_IMAGE_VALID_WIDTHS,
             ),
             openapi.Parameter(
                 name='extension',
                 in_=openapi.IN_PATH,
                 description='Desired format of image.',
                 type=openapi.TYPE_STRING,
                 enum=POSTER_IMAGE_VALID_EXTENSIONS,
             ),
         ],
         tags=['media'],
     )
Beispiel #9
0
 def _get_responses(self, route: Route):
     responses_schemas = build_responses_schemas(route)
     return openapi.Responses(responses=self.get_response_schemas(responses_schemas))
Beispiel #10
0
def test_get_operation():
    view = View()
    route = get_route(Controller.post)
    View.post.route = route
    auto_schema = SwaggerAutoSchema(view, 'path', route.http_method,
                                    'components', 'request', {})

    operation = auto_schema.get_operation(['test_app', 'post'])
    parameters = [
        openapi.Parameter(
            name='data',
            in_=openapi.IN_BODY,
            required=True,
            schema=openapi.Schema(
                title='UserDTO',
                type=openapi.TYPE_OBJECT,
                properties={
                    'name': {
                        'type': openapi.TYPE_STRING,
                    },
                },
            ),
        ),
        openapi.Parameter(
            name='path_param',
            in_=openapi.IN_PATH,
            description='',
            required=True,
            type=openapi.TYPE_INTEGER,
        ),
        openapi.Parameter(
            name='query_param',
            in_=openapi.IN_QUERY,
            description='',
            required=True,
            type=openapi.TYPE_INTEGER,
        ),
    ]
    responses = openapi.Responses({
        '200':
        openapi.Response(
            description='',
            schema=openapi.Schema(
                type=openapi.TYPE_OBJECT,
                properties={
                    'name': {
                        'type': 'string',
                    },
                },
            ),
        ),
    })

    assert operation == openapi.Operation(
        operation_id='Controller.post',
        responses=responses,
        consumes=['application/json; charset=utf-8'],
        produces=['application/json; charset=utf-8'],
        description='This is post method',
        tags=['test_app'],
        parameters=parameters,
    )