Skip to content

Failed validating 'oneOf' in schema #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
manchenkoff opened this issue Feb 26, 2021 · 5 comments
Closed

Failed validating 'oneOf' in schema #113

manchenkoff opened this issue Feb 26, 2021 · 5 comments

Comments

@manchenkoff
Copy link

Hi, after updating to the latest release I had a strange error with schemas.

Swagger example

/couriers/{courierIdentifier}:
        get:
            description: 'description text'
            tags:
                - Couriers
            parameters:
                -   $ref: '#/components/parameters/courierIdentifierInPath'
            responses:
                200:
                    description: 'successful response'
                    content:
                        application/json:
                            schema:
                                $ref: 'definitions/couriers/get.yml#/responses/GetResponse'
                400:
                    $ref: '#/components/responses/CommonSuccessfulResponse'
                500:
                    $ref: '#/components/responses/CommonSuccessfulResponse'

Validation error

{'description': 'successful response', 'content': {'application/json': {'schema': {'$ref': 'definitions/couriers/get.yml#/responses/GetResponse', 'x-scope': ['file:///data/swagger.yml']}}}} is not valid under any of the given schemas

Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['responses']['patternProperties']['^[1-5](?:\\d{2}|XX)$']:
    {'oneOf': [{'$ref': '#/definitions/Response'},
               {'$ref': '#/definitions/Reference'}]}

On instance['paths']['/couriers/{courierIdentifier}']['get']['responses']['200']:
    {'content': {'application/json': {'schema': {'$ref': 'definitions/couriers/get.yml#/responses/GetResponse',
                                                 'x-scope': ['file:///data/swagger.yml']}}},
     'description': 'successful response'}

But if I remove $ref parameter in schema description or change it to type: string it works fine.

Do you know any solutions? Thanks

@vmarkovtsev
Copy link

This happens to me, too.

/become:
    get:
      operationId: become_user
      parameters:
      - description: Numeric identifier of the user to turn into.
        explode: false
        in: query
        name: id
        required: false
        schema:
          type: string
        style: simple

Error:

connexion.exceptions.InvalidSpecification: {'description': 'Numeric identifier of the user to turn into.', 'explode': False, 'in': 'query', 'name': 'id', 'required': False, 'schema': {'type': 'string'}, 'style': 'simple'} is not valid under any of the given schemas

Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['parameters']['items']:
    {'oneOf': [{'$ref': '#/definitions/Parameter'},
               {'$ref': '#/definitions/Reference'}]}

On instance['paths']['/become']['get']['parameters'][0]:
    {'description': 'Numeric identifier of the user to turn into.',
     'explode': False,
     'in': 'query',
     'name': 'id',
     'required': False,
     'schema': {'type': 'string'},
     'style': 'simple'}

@briankinney
Copy link

I have this issue as well. For now I have added openapi-spec-validator<0.3 in my project's requirements.txt to avoid this issue.

@Altreus
Copy link

Altreus commented May 19, 2021

You're probably getting stuck on #126 - The easiest workaround is to make a very basic '#/components/schemas/simple and point all your refs to that; then it'll validate all your other schemata and tell you where the error is.

@MRigal
Copy link

MRigal commented Jun 21, 2021

Also pinning down the package here... :-/

@JulienPalard
Copy link
Contributor

JulienPalard commented Sep 2, 2021

Does #129 helps?

It can be tried temporarily using:

pip install --force-reinstall git+https://github.com/JulienPalard/openapi-spec-validator@show-context

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants