Closed
Description
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
Metadata
Metadata
Assignees
Labels
No labels