Source code for swagger_spec_compatibility.rules.deleted_endpoint

# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals

import typing

from bravado_core.spec import Spec

from swagger_spec_compatibility.rules.common import BaseRule
from swagger_spec_compatibility.rules.common import Level
from swagger_spec_compatibility.rules.common import RuleType
from swagger_spec_compatibility.rules.common import ValidationMessage
from swagger_spec_compatibility.spec_utils import get_endpoints


[docs]class DeletedEndpoint(BaseRule): description = \ 'An endpoint has been removed. This change is not backward compatible as holders of stale swagger ' \ 'specs (like old mobile Apps) could continue to call the removed endpoint and this will cause an ' \ 'HTTP error status code (usually an HTTP/400 or HTTP/404)' error_code = 'MIS-E001' error_level = Level.ERROR rule_type = RuleType.MISCELLANEOUS short_name = 'Delete Endpoint'
[docs] @classmethod def validate(cls, left_spec, right_spec): # type: (Spec, Spec) -> typing.Iterable[ValidationMessage] endpoints_left_spec = get_endpoints(left_spec) endponts_right_spec = get_endpoints(right_spec) return ( cls.validation_message(str(removed_endpoint)) for removed_endpoint in endpoints_left_spec - endponts_right_spec )