diff --git a/apispec/core.py b/apispec/core.py
index 7fdf0d4..147c612 100644
--- a/apispec/core.py
+++ b/apispec/core.py
@@ -3,7 +3,7 @@
 from collections import OrderedDict
 
 from apispec.compat import iterkeys, iteritems
-from .exceptions import APISpecError, PluginMethodNotImplementedError
+from .exceptions import APISpecError, PluginMethodNotImplementedError, DuplicateComponentNameError
 from .utils import OpenAPIVersion, deepupdate
 
 VALID_METHODS = [
@@ -122,6 +122,10 @@ class Components(object):
 
         https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#definitionsObject
         """
+        if name in self._schemas:
+            raise DuplicateComponentNameError(
+                'Another schema with name "{}" is already registered.'.format(name),
+            )
         ret = {}
         # Execute all helpers from plugins
         for plugin in self._plugins:
@@ -147,6 +151,10 @@ class Components(object):
         :param str location: location of the parameter.
         :param dict kwargs: parameter fields.
         """
+        if param_id in self._parameters:
+            raise DuplicateComponentNameError(
+                'Another parameter with name "{}" is already registered.'.format(param_id),
+            )
         ret = kwargs.copy()
         ret.setdefault('name', param_id)
         ret['in'] = location
@@ -165,6 +173,10 @@ class Components(object):
         :param str ref_id: ref_id to use as reference
         :param dict kwargs: response fields
         """
+        if ref_id in self._responses:
+            raise DuplicateComponentNameError(
+                'Another response with name "{}" is already registered.'.format(ref_id),
+            )
         ret = kwargs.copy()
         # Execute all helpers from plugins
         for plugin in self._plugins:
@@ -257,7 +269,7 @@ class APISpec(object):
             if ret is not None:
                 path = ret
         if not path:
-            raise APISpecError('Path template is not specified')
+            raise APISpecError('Path template is not specified.')
 
         # Execute operation helpers
         for plugin in self.plugins:
diff --git a/apispec/exceptions.py b/apispec/exceptions.py
index b382a27..0191810 100644
--- a/apispec/exceptions.py
+++ b/apispec/exceptions.py
@@ -1,6 +1,5 @@
 # -*- coding: utf-8 -*-
 """Exception classes."""
-import warnings
 
 class APISpecError(Exception):
     """Base class for all apispec-related errors."""
@@ -8,17 +7,8 @@ class APISpecError(Exception):
 class PluginMethodNotImplementedError(APISpecError, NotImplementedError):
     """Raised when calling an unimplemented helper method in a plugin"""
 
+class DuplicateComponentNameError(APISpecError):
+    """Raised when registering two components with the same name"""
+
 class OpenAPIError(APISpecError):
     """Raised when a OpenAPI spec validation fails."""
-
-class SwaggerError(OpenAPIError):
-    """
-    .. deprecated:: 0.38.0
-        Use `apispec.exceptions.OpenAPIError` instead.
-    """
-    def __init__(self, *args, **kwargs):
-        warnings.warn(
-            'SwaggerError is deprecated. Use OpenAPIError instead.',
-            DeprecationWarning,
-        )
-        super(SwaggerError, self).__init__(*args, **kwargs)
diff --git a/apispec/ext/marshmallow/common.py b/apispec/ext/marshmallow/common.py
index 2cbbf01..f0ef880 100644
--- a/apispec/ext/marshmallow/common.py
+++ b/apispec/ext/marshmallow/common.py
@@ -43,12 +43,12 @@ def get_fields(schema):
         return schema.fields
     elif hasattr(schema, '_declared_fields'):
         return copy.deepcopy(schema._declared_fields)
-    raise ValueError("{0!r} doesn't have either `fields` or `_declared_fields`".format(schema))
+    raise ValueError("{0!r} doesn't have either `fields` or `_declared_fields`.".format(schema))
 
 
 def make_schema_key(schema):
     if not isinstance(schema, marshmallow.Schema):
-        raise TypeError('can only make a schema key based on a Schema instance')
+        raise TypeError('can only make a schema key based on a Schema instance.')
     modifiers = []
     for modifier in MODIFIERS:
         attribute = getattr(schema, modifier)
diff --git a/apispec/ext/marshmallow/openapi.py b/apispec/ext/marshmallow/openapi.py
index a254079..fa620d5 100644
--- a/apispec/ext/marshmallow/openapi.py
+++ b/apispec/ext/marshmallow/openapi.py
@@ -140,7 +140,7 @@ class OpenAPIConverter(object):
         elif len(args) == 2:
             openapi_type_field = args
         else:
-            raise TypeError('Pass core marshmallow field type or (type, fmt) pair')
+            raise TypeError('Pass core marshmallow field type or (type, fmt) pair.')
 
         def inner(field_type):
             self.field_mapping[field_type] = openapi_type_field
diff --git a/setup.py b/setup.py
index 6db211b..4483ff4 100644
--- a/setup.py
+++ b/setup.py
@@ -45,7 +45,7 @@ def find_version(fname):
                 version = m.group(1)
                 break
     if not version:
-        raise RuntimeError('Cannot find version information')
+        raise RuntimeError('Cannot find version information.')
     return version
 
 

diff --git a/tests/test_core.py b/tests/test_core.py
index 6405a35..b1b9aec 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -5,7 +5,7 @@ import pytest
 import yaml
 
 from apispec import APISpec, BasePlugin
-from apispec.exceptions import APISpecError
+from apispec.exceptions import APISpecError, DuplicateComponentNameError
 
 from .utils import get_definitions, get_paths, get_parameters, get_responses
 
@@ -171,6 +171,14 @@ class TestDefinitions:
             defs = spec.to_dict()['components']['schemas']
         assert defs['Pet']['discriminator'] == 'name'
 
+    def test_definition_duplicate_name(self, spec):
+        spec.components.schema('Pet', properties=self.properties)
+        with pytest.raises(
+            DuplicateComponentNameError,
+            match='Another schema with name "Pet" is already registered.',
+        ):
+            spec.components.schema('Pet', properties=self.properties)
+
     def test_to_yaml(self, spec):
         enum = ['name', 'photoUrls']
         spec.components.schema(
@@ -342,6 +350,15 @@ class TestPath:
         assert 'param1' in params
         assert 'param2' in params
 
+    def test_parameter_duplicate_name(self, spec):
+        route_spec = self.paths['/pet/{petId}']['get']
+        spec.components.parameter('test_parameter', 'path', **route_spec['parameters'][0])
+        with pytest.raises(
+            DuplicateComponentNameError,
+            match='Another parameter with name "test_parameter" is already registered.',
+        ):
+            spec.components.parameter('test_parameter', 'path', **route_spec['parameters'][0])
+
     def test_response(self, spec):
         route_spec = self.paths['/pet/{petId}']['get']
 
@@ -371,6 +388,15 @@ class TestPath:
         assert 'resp1' in responses
         assert 'resp2' in responses
 
+    def test_response_duplicate_name(self, spec):
+        route_spec = self.paths['/pet/{petId}']['get']
+        spec.components.response('test_response', **route_spec['responses']['200'])
+        with pytest.raises(
+            DuplicateComponentNameError,
+            match='Another response with name "test_response" is already registered.',
+        ):
+            spec.components.response('test_response', **route_spec['responses']['200'])
+
     def test_path_check_invalid_http_method(self, spec):
         spec.path('/pet/{petId}', operations={'get': {}})
         spec.path('/pet/{petId}', operations={'x-dummy': {}})
diff --git a/tests/test_ext_marshmallow.py b/tests/test_ext_marshmallow.py
index 4437a29..d0d07df 100644
--- a/tests/test_ext_marshmallow.py
+++ b/tests/test_ext_marshmallow.py
@@ -128,7 +128,7 @@ class TestDefinitionHelper:
     def test_warning_when_schema_added_twice(self, spec, schema):
         spec.components.schema('Analysis', schema=schema)
         with pytest.warns(UserWarning, match='has already been added to the spec'):
-            spec.components.schema('Analysis', schema=schema)
+            spec.components.schema('DuplicateAnalysis', schema=schema)
 
     def test_schema_instances_with_different_modifiers_added(self, spec):
         class MultiModifierSchema(Schema):
diff --git a/tests/test_openapi.py b/tests/test_openapi.py
index b4e4e36..abe5368 100644
--- a/tests/test_openapi.py
+++ b/tests/test_openapi.py
@@ -412,12 +412,10 @@ class TestMarshmallowSchemaToModelDefinition:
         class NotASchema(object):
             pass
 
-        with pytest.raises(ValueError) as excinfo:
+        expected_error = "{0!r} doesn't have either `fields` or `_declared_fields`.".format(NotASchema)
+        with pytest.raises(ValueError, match=expected_error):
             openapi.schema2jsonschema(NotASchema)
 
-        assert excinfo.value.args[0] == ("{0!r} doesn't have either `fields` "
-                                         'or `_declared_fields`'.format(NotASchema))
-
 
 class TestMarshmallowSchemaToParameters:
 
@@ -546,12 +544,10 @@ class TestMarshmallowSchemaToParameters:
         class NotASchema(object):
             pass
 
-        with pytest.raises(ValueError) as excinfo:
+        expected_error = "{0!r} doesn't have either `fields` or `_declared_fields`".format(NotASchema)
+        with pytest.raises(ValueError, match=expected_error):
             openapi.schema2jsonschema(NotASchema)
 
-        assert excinfo.value.args[0] == ("{0!r} doesn't have either `fields` "
-                                         'or `_declared_fields`'.format(NotASchema))
-
 
 class CategorySchema(Schema):
     id = fields.Int()

Raise exception upon name collision when registering components
When registering e.g. two schemas with the same name, the latter silently overwrites the former.

I think we should raise an Exception to inform the user.

Theoretically, it could break code where for some reason the user relied on this (like register a first version, then conditionally register a second version), but this shouldn't be a blocker.
tests/test_core.py::TestAPISpecInit::test_raises_wrong_apispec_version tests/test_core.py::TestMetadata::test_openapi_metadata[2.0] tests/test_core.py::TestMetadata::test_openapi_metadata[3.0.0] tests/test_core.py::TestMetadata::test_openapi_metadata_merge_v3[3.0.0] tests/test_core.py::TestTags::test_tag[2.0] tests/test_core.py::TestTags::test_tag[3.0.0] tests/test_core.py::TestTags::test_tag_is_chainable[2.0] tests/test_core.py::TestTags::test_tag_is_chainable[3.0.0] tests/test_core.py::TestDefinitions::test_definition[2.0] tests/test_core.py::TestDefinitions::test_definition[3.0.0] tests/test_core.py::TestDefinitions::test_definition_is_chainable[2.0] tests/test_core.py::TestDefinitions::test_definition_is_chainable[3.0.0] tests/test_core.py::TestDefinitions::test_definition_description[2.0] tests/test_core.py::TestDefinitions::test_definition_description[3.0.0] tests/test_core.py::TestDefinitions::test_definition_stores_enum[2.0] tests/test_core.py::TestDefinitions::test_definition_stores_enum[3.0.0] tests/test_core.py::TestDefinitions::test_definition_extra_fields[2.0] tests/test_core.py::TestDefinitions::test_definition_extra_fields[3.0.0] tests/test_core.py::TestDefinitions::test_definition_duplicate_name[2.0] tests/test_core.py::TestDefinitions::test_definition_duplicate_name[3.0.0] tests/test_core.py::TestDefinitions::test_to_yaml[2.0] tests/test_core.py::TestDefinitions::test_to_yaml[3.0.0] tests/test_core.py::TestPath::test_path[2.0] tests/test_core.py::TestPath::test_path[3.0.0] tests/test_core.py::TestPath::test_paths_maintain_order[2.0] tests/test_core.py::TestPath::test_paths_maintain_order[3.0.0] tests/test_core.py::TestPath::test_paths_is_chainable[2.0] tests/test_core.py::TestPath::test_paths_is_chainable[3.0.0] tests/test_core.py::TestPath::test_methods_maintain_order[2.0] tests/test_core.py::TestPath::test_methods_maintain_order[3.0.0] tests/test_core.py::TestPath::test_path_merges_paths[2.0] tests/test_core.py::TestPath::test_path_merges_paths[3.0.0] tests/test_core.py::TestPath::test_path_ensures_path_parameters_required[2.0] tests/test_core.py::TestPath::test_path_ensures_path_parameters_required[3.0.0] tests/test_core.py::TestPath::test_path_with_no_path_raises_error[2.0] tests/test_core.py::TestPath::test_path_with_no_path_raises_error[3.0.0] tests/test_core.py::TestPath::test_parameter[2.0] tests/test_core.py::TestPath::test_parameter[3.0.0] tests/test_core.py::TestPath::test_parameter_is_chainable[2.0] tests/test_core.py::TestPath::test_parameter_is_chainable[3.0.0] tests/test_core.py::TestPath::test_parameter_duplicate_name[2.0] tests/test_core.py::TestPath::test_parameter_duplicate_name[3.0.0] tests/test_core.py::TestPath::test_response[2.0] tests/test_core.py::TestPath::test_response[3.0.0] tests/test_core.py::TestPath::test_response_is_chainable[2.0] tests/test_core.py::TestPath::test_response_is_chainable[3.0.0] tests/test_core.py::TestPath::test_response_duplicate_name[2.0] tests/test_core.py::TestPath::test_response_duplicate_name[3.0.0] tests/test_core.py::TestPath::test_path_check_invalid_http_method[2.0] tests/test_core.py::TestPath::test_path_check_invalid_http_method[3.0.0] tests/test_core.py::TestPlugins::test_plugin_factory tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_operation_helper_is_used[2.0] tests/test_core.py::TestPlugins::test_plugin_operation_helper_is_used[3.0.0] tests/test_core.py::TestPluginsOrder::test_plugins_order tests/test_ext_marshmallow.py::TestDefinitionHelper::test_can_use_schema_as_definition[2.0-PetSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_can_use_schema_as_definition[2.0-schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_can_use_schema_as_definition[3.0.0-PetSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_can_use_schema_as_definition[3.0.0-schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_helper_without_schema[2.0] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_helper_without_schema[3.0.0] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference[AnalysisSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference[schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference_in_list[AnalysisWithListSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference_in_list[schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference_return_none[AnalysisSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_resolve_schema_dict_auto_reference_return_none[schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_warning_when_schema_added_twice[2.0-AnalysisSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_warning_when_schema_added_twice[2.0-schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_warning_when_schema_added_twice[3.0.0-AnalysisSchema] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_warning_when_schema_added_twice[3.0.0-schema1] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_instances_with_different_modifiers_added[2.0] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_instances_with_different_modifiers_added[3.0.0] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_with_clashing_names[2.0] tests/test_ext_marshmallow.py::TestDefinitionHelper::test_schema_with_clashing_names[3.0.0] tests/test_ext_marshmallow.py::TestComponentParameterHelper::test_can_use_schema_in_parameter[2.0-PetSchema] tests/test_ext_marshmallow.py::TestComponentParameterHelper::test_can_use_schema_in_parameter[2.0-schema1] tests/test_ext_marshmallow.py::TestComponentParameterHelper::test_can_use_schema_in_parameter[3.0.0-PetSchema] tests/test_ext_marshmallow.py::TestComponentParameterHelper::test_can_use_schema_in_parameter[3.0.0-schema1] tests/test_ext_marshmallow.py::TestComponentResponseHelper::test_can_use_schema_in_response[2.0-PetSchema] tests/test_ext_marshmallow.py::TestComponentResponseHelper::test_can_use_schema_in_response[2.0-schema1] tests/test_ext_marshmallow.py::TestComponentResponseHelper::test_can_use_schema_in_response[3.0.0-PetSchema] tests/test_ext_marshmallow.py::TestComponentResponseHelper::test_can_use_schema_in_response[3.0.0-schema1] tests/test_ext_marshmallow.py::TestCustomField::test_can_use_custom_field_decorator[2.0] tests/test_ext_marshmallow.py::TestCustomField::test_can_use_custom_field_decorator[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v2[2.0-PetSchema] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v2[2.0-pet_schema1] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v2[2.0-tests.schemas.PetSchema] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v3[3.0.0-PetSchema] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v3[3.0.0-pet_schema1] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_v3[3.0.0-tests.schemas.PetSchema] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_expand_parameters_v2[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_expand_parameters_v3[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_if_available_v2[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_if_available_v3[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_if_available_name_resolver_returns_none_v2 tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_if_available_name_resolver_returns_none_v3 tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_in_parameters_and_request_body_if_available_v2[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_uses_ref_in_parameters_and_request_body_if_available_v3[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_array_uses_ref_if_available_v2[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_array_uses_ref_if_available_v3[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_partially_v2[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_partially_v3[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_global_state_untouched_2json[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_global_state_untouched_2json[3.0.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_global_state_untouched_2parameters[2.0] tests/test_ext_marshmallow.py::TestOperationHelper::test_schema_global_state_untouched_2parameters[3.0.0] tests/test_ext_marshmallow.py::TestCircularReference::test_circular_referencing_schemas[2.0] tests/test_ext_marshmallow.py::TestCircularReference::test_circular_referencing_schemas[3.0.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_field_single[2.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_field_single[3.0.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_field_many[2.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_field_many[3.0.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_with_ref[2.0] tests/test_ext_marshmallow.py::TestSelfReference::test_self_referencing_with_ref[3.0.0] tests/test_ext_marshmallow.py::TestOrderedSchema::test_ordered_schema[2.0] tests/test_ext_marshmallow.py::TestOrderedSchema::test_ordered_schema[3.0.0] tests/test_ext_marshmallow.py::TestFieldWithCustomProps::test_field_with_custom_props[2.0] tests/test_ext_marshmallow.py::TestFieldWithCustomProps::test_field_with_custom_props[3.0.0] tests/test_ext_marshmallow.py::TestFieldWithCustomProps::test_field_with_custom_props_passed_as_snake_case[2.0] tests/test_ext_marshmallow.py::TestFieldWithCustomProps::test_field_with_custom_props_passed_as_snake_case[3.0.0] tests/test_ext_marshmallow.py::TestSchemaWithDefaultValues::test_schema_with_default_values[2.0] tests/test_ext_marshmallow.py::TestSchemaWithDefaultValues::test_schema_with_default_values[3.0.0] tests/test_ext_marshmallow.py::TestList::test_list_with_nested[2.0] tests/test_ext_marshmallow.py::TestList::test_list_with_nested[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2choices_preserving_order[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2choices_preserving_order[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Integer-integer] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Number-number] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Float-number] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-String-string0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-String-string1] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Boolean-boolean0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Boolean-boolean1] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-UUID-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-DateTime-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Date-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Time-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Email-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Url-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Field-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[2.0-Raw-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Integer-integer] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Number-number] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Float-number] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-String-string0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-String-string1] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Boolean-boolean0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Boolean-boolean1] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-UUID-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-DateTime-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Date-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Time-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Email-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Url-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Field-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_type[3.0.0-Raw-string] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_formatted_field_translates_to_array[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_formatted_field_translates_to_array[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-Integer-int32] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-Float-float] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-UUID-uuid] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-DateTime-date-time] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-Date-date] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-Email-email] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[2.0-Url-url] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-Integer-int32] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-Float-float] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-UUID-uuid] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-DateTime-date-time] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-Date-date] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-Email-email] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field2property_formats[3.0.0-Url-url] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_description[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_description[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_boolean_false_missing[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_boolean_false_missing[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing_load[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing_load[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_boolean_false_missing_load[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_boolean_false_missing_load[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing_callable[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_missing_callable[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_doc_default[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_doc_default[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_doc_default_and_missing[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_doc_default_and_missing[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_missing_load[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_missing_load[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_location[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_location[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_multiple_json_locations[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields2parameters_does_not_modify_metadata[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields2parameters_does_not_modify_metadata[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_location_mapping[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_location_mapping[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_default_location_mapping[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_default_location_mapping[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_default_location_mapping_if_schema_many[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_dump_only[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_dump_only[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_choices[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_choices[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_equal[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_equal[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_only_allows_valid_properties_in_metadata[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_only_allows_valid_properties_in_metadata[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_choices_multiple[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_choices_multiple[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_additional_metadata[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_additional_metadata[3.0.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_allow_none[2.0] tests/test_openapi.py::TestMarshmallowFieldToOpenAPI::test_field_with_allow_none[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_invalid_schema[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_invalid_schema[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_with_explicit_fields[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_with_explicit_fields[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_override_name_ma2[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_override_name_ma2[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_required_fields[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_required_fields[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_partial[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_partial[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_no_required_fields[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_no_required_fields[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_title_and_description_may_be_added[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_title_and_description_may_be_added[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_excluded_fields[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_excluded_fields[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_only_explicitly_declared_fields_are_translated[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_only_explicitly_declared_fields_are_translated[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_observed_field_name_for_required_field[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_observed_field_name_for_required_field[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection_with_many[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection_with_many[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_raises_error_if_no_declared_fields[2.0] tests/test_openapi.py::TestMarshmallowSchemaToModelDefinition::test_raises_error_if_no_declared_fields[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_field_required[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_field_required[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_invalid_schema[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_invalid_schema[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body_with_dump_only[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body_many[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance_many_should_raise_exception[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance_many_should_raise_exception[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_fields_default_in_body[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_fields_query[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_fields_query[3.0.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_raises_error_if_not_a_schema[2.0] tests/test_openapi.py::TestMarshmallowSchemaToParameters::test_raises_error_if_not_a_schema[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_spec_metadatas[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_spec_metadatas[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_spec[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_spec[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_many_spec[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_many_spec[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_ref[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_ref[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_many[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_many[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_without_name_raises_error[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_without_name_raises_error[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_many[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_many[3.0.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_ref_with_meta[2.0] tests/test_openapi.py::TestNesting::test_field2property_nested_self_ref_with_meta[3.0.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields[2.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields[3.0.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[2.0-only] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[2.0-exclude] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[3.0.0-only] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[3.0.0-exclude] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_with_adhoc_changes[2.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_with_adhoc_changes[3.0.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_excluded_fields[2.0] tests/test_openapi.py::TestNesting::test_schema2jsonschema_with_nested_excluded_fields[3.0.0] tests/test_openapi.py::TestNesting::test_nested_field_with_property[2.0] tests/test_openapi.py::TestNesting::test_nested_field_with_property[3.0.0] tests/test_openapi.py::test_openapi_tools_validate_v2 tests/test_openapi.py::test_openapi_tools_validate_v3 tests/test_openapi.py::TestFieldValidation::test_range[2.0] tests/test_openapi.py::TestFieldValidation::test_range[3.0.0] tests/test_openapi.py::TestFieldValidation::test_multiple_ranges[2.0] tests/test_openapi.py::TestFieldValidation::test_multiple_ranges[3.0.0] tests/test_openapi.py::TestFieldValidation::test_list_length[2.0] tests/test_openapi.py::TestFieldValidation::test_list_length[3.0.0] tests/test_openapi.py::TestFieldValidation::test_string_length[2.0] tests/test_openapi.py::TestFieldValidation::test_string_length[3.0.0] tests/test_openapi.py::TestFieldValidation::test_multiple_lengths[2.0] tests/test_openapi.py::TestFieldValidation::test_multiple_lengths[3.0.0] tests/test_openapi.py::TestFieldValidation::test_equal_length[2.0] tests/test_openapi.py::TestFieldValidation::test_equal_length[3.0.0]