Path: blob/main/tests/integration_tests/style/test_swagger.py
1958 views
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.1# SPDX-License-Identifier: Apache-2.02"""Tests ensuring codebase style compliance for the OpenAPI specification."""34import os5import yaml6import framework.utils as utils789def check_yaml_style(yaml_spec):10"""Check if the swagger definition is correctly formatted."""11with open(yaml_spec, 'r') as file_stream:12try:13yaml.safe_load(file_stream)14# pylint: disable=broad-except15except Exception as exception:16print(str(exception))171819def validate_swagger(swagger_spec):20"""Fail if OpenApi spec is not followed."""21validate_cmd = 'swagger-cli validate {}'.format(swagger_spec)22retcode, stdout, _ = utils.run_cmd(validate_cmd)2324# Verify validity.25assert "is valid" in stdout26assert retcode == 0272829def test_firecracker_swagger():30"""Fail if Firecracker swagger specification is malformed."""31swagger_spec = os.path.normpath(32os.path.join(os.getcwd(), '../src/api_server/swagger/firecracker.yaml')33)34check_yaml_style(swagger_spec)35validate_swagger(swagger_spec)363738