def test_validate_swagger_is_deprecated(): spec = APISpec( title='Pets', version='0.1', openapi_version='3.0.0', ) with pytest.warns(DeprecationWarning, match='validate_spec'): utils.validate_swagger(spec)
def test_swagger_tools_validate(): spec = APISpec( title='Pets', version='0.1', plugins=['apispec.ext.marshmallow'], ) spec.definition('Category', schema=CategorySchema) spec.definition('Pet', schema=PetSchema) spec.add_path( view=None, path='/category/{category_id}', operations={ 'get': { 'parameters': [ {'name': 'q', 'in': 'query', 'type': 'string'}, {'name': 'category_id', 'in': 'path', 'required': True, 'type': 'string'}, field2parameter( field=fields.List( fields.Str(), validate=validate.OneOf(['freddie', 'roger']), location='querystring', ), name='body', use_refs=False, ), ] + swagger.schema2parameters(PageSchema, default_in='query'), 'responses': { 200: { 'schema': PetSchema, 'description': 'A pet', }, }, }, 'post': { 'parameters': ( [{'name': 'category_id', 'in': 'path', 'required': True, 'type': 'string'}] + swagger.schema2parameters(CategorySchema, spec=spec, default_in='body') ), 'responses': { 201: { 'schema': PetSchema, 'description': 'A pet', }, }, } }, ) try: utils.validate_swagger(spec) except exceptions.SwaggerError as error: pytest.fail(str(error))
def test_swagger_valid(self): try: utils.validate_swagger(spec) except exceptions.SwaggerError as error: self.fail(str(error))
def test_swagger_tools_validate(): try: utils.validate_swagger(spec) except exceptions.SwaggerError as error: pytest.fail(str(error))
def test_swagger_valid(self): try: utils.validate_swagger(spec) except exceptions.SwaggerError as error: self.fail(str(error))
def test_validate_v3(): spec = APISpec(title='Pets', version='0.1', plugins=['apispec.ext.marshmallow'], openapi_version='3.0.0') spec.definition('Category', schema=CategorySchema) spec.definition('Pet', schema=PetSchemaV3) spec.add_path( view=None, path='/category/{category_id}', operations={ 'get': { 'parameters': [ { 'name': 'q', 'in': 'query', 'schema': { 'type': 'string' } }, { 'name': 'category_id', 'in': 'path', 'required': True, 'schema': { 'type': 'string' } }, ], # + swagger.schema2parameters(PageSchema, default_in='query'), 'responses': { 200: { 'description': 'success', 'content': { 'application/json': { 'schema': PetSchemaV3, } } }, }, }, 'post': { 'parameters': ([{ 'name': 'category_id', 'in': 'path', 'required': True, 'schema': { 'type': 'string' } }]), 'requestBody': { 'content': { 'application/json': { 'schema': CategorySchema } } }, 'responses': { 201: { 'description': 'created', 'content': { 'application/json': { 'schema': PetSchemaV3, } } }, }, } }, ) try: utils.validate_swagger(spec) except exceptions.SwaggerError as error: pytest.fail(str(error))
with app.test_request_context(): spec.add_path(view=index) spec.add_path(view=submissions) spec.add_path(view=participant_status) spec.add_path(view=participant_check_integrity) if __name__ == '__main__': parser = argparse.ArgumentParser(description='opeb-submission-api') parser.add_argument( "mode", choices=['spec', 'api'], help="Generate OpenAPIv3 spec | Launch the opeb-submission-api", type=str) args = parser.parse_args() if args.mode == 'spec': spec_filename = 'opeb-submission-api.json' try: validate_swagger(spec) with open(f'public/spec/{spec_filename}', 'w') as api_file: json.dump(spec.to_dict(), api_file, indent=2, sort_keys=True) print( f'\033[32m{spec_filename} spec generated and validated against OpenAPIv3 succesfully!\033[0m', file=sys.stderr) except: print( f"\033[31mError: {spec_filename} couldn't be validated against OpenAPIv3!\033[0m", file=sys.stderr) elif args.mode == 'api': app.run()