Skip to content
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

openapi_v2_spec_validator not raising error on bad refs #176

Closed
samdammers opened this issue Sep 5, 2022 · 1 comment · Fixed by #177
Closed

openapi_v2_spec_validator not raising error on bad refs #176

samdammers opened this issue Sep 5, 2022 · 1 comment · Fixed by #177

Comments

@samdammers
Copy link

The v2 spec validator is not correctly raising an error when bad refs are present.

Given the below swagger, which is a copy of tests/integration/data/v2.0/petstore.yaml
and modifying the $ref urls to product invalid results such as:
$ref: '#/definitions/' and $ref: 'definitions/Pets'

should result in an error for a test like

def test_errors_on_missing_malformed_refs_schema_v2(capsys):
    """An error is printed given malformed ref links"""
    testargs = [
        "--schema",
        "2.0",
        "./tests/integration/data/v2.0/missing-reference.yaml",
    ]
    with pytest.raises(SystemExit):
        main(testargs)
    out, err = capsys.readouterr()
    assert "Failed validating" in out
swagger: "2.0"
info:
  version: 1.0.0
  title: Swagger Petstore
  license:
    name: MIT
host: petstore.swagger.io
basePath: /v1
schemes:
  - http
consumes:
  - application/json
produces:
  - application/json
paths:
  /pets:
    get:
      summary: List all pets
      operationId: listPets
      tags:
        - pets
      parameters:
        - name: limit
          in: query
          description: How many items to return at one time (max 100)
          required: false
          type: integer
          format: int32
      responses:
        200:
          description: A paged array of pets
          headers:
            x-next:
              type: string
              description: A link to the next page of responses
          schema:
            $ref: 'definitions/Pets'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/'
    post:
      summary: Create a pet
      operationId: createPets
      tags:
        - pets
      responses:
        '201':
          description: Null response
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pets
      parameters:
        - name: petId
          in: path
          required: true
          description: The id of the pet to retrieve
          type: string
      responses:
        '200':
          description: Expected response to a valid request
          schema:
            $ref: '#/definitions/Pets'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'
definitions:
  Pet:
    required:
      - id
      - name
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
      tag:
        type: string
  Pets:
    type: array
    items:
      $ref: '#/definitions/Pet'
  Error:
    required:
      - code
      - message
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
@p1c2u
Copy link
Collaborator

p1c2u commented Sep 5, 2022

Hi @samdammers
thanks for reporting the issue. I will prepare fix for that.

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

Successfully merging a pull request may close this issue.

2 participants