diff --git a/src/apispec/ext/marshmallow/field_converter.py b/src/apispec/ext/marshmallow/field_converter.py
index 620ffc7..b1e4de8 100644
--- a/src/apispec/ext/marshmallow/field_converter.py
+++ b/src/apispec/ext/marshmallow/field_converter.py
@@ -96,6 +96,7 @@ class FieldConverterMixin:
             self.field2pattern,
             self.metadata2properties,
             self.nested2properties,
+            self.pluck2properties,
             self.list2properties,
             self.dict2properties,
         ]
@@ -402,7 +403,11 @@ class FieldConverterMixin:
         :param Field field: A marshmallow field.
         :rtype: dict
         """
-        if isinstance(field, marshmallow.fields.Nested):
+        # Pluck is a subclass of Nested but is in essence a single field; it
+        # is treated separately by pluck2properties.
+        if isinstance(field, marshmallow.fields.Nested) and not isinstance(
+            field, marshmallow.fields.Pluck
+        ):
             schema_dict = self.resolve_nested_schema(field.schema)
             if ret and "$ref" in schema_dict:
                 ret.update({"allOf": [schema_dict]})
@@ -410,6 +415,21 @@ class FieldConverterMixin:
                 ret.update(schema_dict)
         return ret
 
+    def pluck2properties(self, field, **kwargs):
+        """Return a dictionary of properties from :class:`Pluck <marshmallow.fields.Pluck` fields.
+
+        Pluck effectively trans-includes a field from another schema into this,
+        possibly wrapped in an array (`many=True`).
+
+        :param Field field: A marshmallow field.
+        :rtype: dict
+        """
+        if isinstance(field, marshmallow.fields.Pluck):
+            plucked_field = field.schema.fields[field.field_name]
+            ret = self.field2property(plucked_field)
+            return {"type": "array", "items": ret} if field.many else ret
+        return {}
+
     def list2properties(self, field, **kwargs):
         """Return a dictionary of properties from :class:`List <marshmallow.fields.List>` fields.
 

diff --git a/tests/test_ext_marshmallow_field.py b/tests/test_ext_marshmallow_field.py
index cd5b201..084b343 100644
--- a/tests/test_ext_marshmallow_field.py
+++ b/tests/test_ext_marshmallow_field.py
@@ -5,7 +5,7 @@ import pytest
 from marshmallow import fields, validate
 
 from .schemas import CategorySchema, CustomList, CustomStringField, CustomIntegerField
-from .utils import build_ref
+from .utils import build_ref, get_schemas
 
 
 def test_field2choices_preserving_order(openapi):
@@ -318,6 +318,52 @@ def test_nested_field_with_property(spec_fixture):
     }
 
 
+class TestField2PropertyPluck:
+    @pytest.fixture(autouse=True)
+    def _setup(self, spec_fixture):
+        self.field2property = spec_fixture.openapi.field2property
+
+        self.spec = spec_fixture.spec
+        self.spec.components.schema("Category", schema=CategorySchema)
+        self.unplucked = get_schemas(self.spec)["Category"]["properties"]["breed"]
+
+    def test_spec(self, spec_fixture):
+        breed = fields.Pluck(CategorySchema, "breed")
+        assert self.field2property(breed) == self.unplucked
+
+    def test_with_property(self):
+        breed = fields.Pluck(CategorySchema, "breed", dump_only=True)
+        assert self.field2property(breed) == {**self.unplucked, "readOnly": True}
+
+    def test_metadata(self):
+        breed = fields.Pluck(
+            CategorySchema,
+            "breed",
+            metadata={
+                "description": "Category breed",
+                "invalid_property": "not in the result",
+                "x_extension": "A great extension",
+            },
+        )
+        assert self.field2property(breed) == {
+            **self.unplucked,
+            "description": "Category breed",
+            "x-extension": "A great extension",
+        }
+
+    def test_many(self):
+        breed = fields.Pluck(CategorySchema, "breed", many=True)
+        assert self.field2property(breed) == {"type": "array", "items": self.unplucked}
+
+    def test_many_with_property(self):
+        breed = fields.Pluck(CategorySchema, "breed", many=True, dump_only=True)
+        assert self.field2property(breed) == {
+            "items": self.unplucked,
+            "type": "array",
+            "readOnly": True,
+        }
+
+
 def test_custom_properties_for_custom_fields(spec_fixture):
     def custom_string2properties(self, field, **kwargs):
         ret = {}
diff --git a/tests/test_ext_marshmallow_openapi.py b/tests/test_ext_marshmallow_openapi.py
index 4df2aaa..72ab8c6 100644
--- a/tests/test_ext_marshmallow_openapi.py
+++ b/tests/test_ext_marshmallow_openapi.py
@@ -391,6 +391,16 @@ class TestNesting:
         assert ("i" in props) == (modifier == "only")
         assert ("j" not in props) == (modifier == "only")
 
+    def test_schema2jsonschema_with_plucked_field(self, spec_fixture):
+        class PetSchema(Schema):
+            breed = fields.Pluck(CategorySchema, "breed")
+
+        category_schema = spec_fixture.openapi.schema2jsonschema(CategorySchema)
+        pet_schema = spec_fixture.openapi.schema2jsonschema(PetSchema)
+        assert (
+            pet_schema["properties"]["breed"] == category_schema["properties"]["breed"]
+        )
+
     def test_schema2jsonschema_with_nested_fields_with_adhoc_changes(
         self, spec_fixture
     ):
@@ -414,6 +424,20 @@ class TestNesting:
             CategorySchema
         )
 
+    def test_schema2jsonschema_with_plucked_fields_with_adhoc_changes(
+        self, spec_fixture
+    ):
+        category_schema = CategorySchema()
+        category_schema.fields["breed"].dump_only = True
+
+        class PetSchema(Schema):
+            breed = fields.Pluck(category_schema, "breed", many=True)
+
+        spec_fixture.spec.components.schema("Pet", schema=PetSchema)
+        props = get_schemas(spec_fixture.spec)["Pet"]["properties"]
+
+        assert props["breed"]["items"]["readOnly"] is True
+
     def test_schema2jsonschema_with_nested_excluded_fields(self, spec):
         category_schema = CategorySchema(exclude=("breed",))
 

Marshmallow Pluck type not supported correctly?
Hi guys,

I was just trying to use Marshmallow 3 "nesting" via Pluck field (example taken from docs https://marshmallow.readthedocs.io/en/3.0/nesting.html) and swagger documentation rendered via `apispec` shows nested object in an array instead of flat array.

When using this example:

```
class UserSchema(Schema):
    name = fields.String()
    email = fields.Email()
    friends = fields.Pluck('self', 'name', many=True)
# ... create ``user`` ...
serialized_data = UserSchema().dump(user)
pprint(serialized_data)
# {
#     "name": "Steve",
#     "email": "steve@example.com",
#     "friends": ["Mike", "Joe"]
# }
deserialized_data = UserSchema().load(result)
pprint(deserialized_data)
# {
#     "name": "Steve",
#     "email": "steve@example.com",
#     "friends": [{"name": "Mike"}, {"name": "Joe"}]
# }
```

`apispec`-generated documentation says that ` "friends": ["Mike", "Joe"]` is in fact ` "friends": [{"name": "Mike"}, {"name": "Joe"}]`. So documentation is generated as for a normal nested object (without flattening it).

Is it just not supported yet or is there a bug?
Is there a plan to support this?
tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_spec[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_spec[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_with_property[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_with_property[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_metadata[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_metadata[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many[3.0.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many_with_property[2.0] tests/test_ext_marshmallow_field.py::TestField2PropertyPluck::test_many_with_property[3.0.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_plucked_field[2.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_plucked_field[3.0.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_plucked_fields_with_adhoc_changes[2.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_plucked_fields_with_adhoc_changes[3.0.0]
tests/test_ext_marshmallow_field.py::test_field2choices_preserving_order[2.0] tests/test_ext_marshmallow_field.py::test_field2choices_preserving_order[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Integer-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Number-number] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Float-number] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-String-string0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-String-string1] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Boolean-boolean0] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Boolean-boolean1] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-UUID-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-DateTime-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Date-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Time-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Email-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-Url-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-CustomStringField-string] tests/test_ext_marshmallow_field.py::test_field2property_type[2.0-CustomIntegerField-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Integer-integer] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Number-number] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Float-number] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-String-string0] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-String-string1] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Boolean-boolean0] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Boolean-boolean1] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-UUID-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-DateTime-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Date-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Time-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Email-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-Url-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-CustomStringField-string] tests/test_ext_marshmallow_field.py::test_field2property_type[3.0.0-CustomIntegerField-integer] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[2.0-Field] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[2.0-Raw] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[3.0.0-Field] tests/test_ext_marshmallow_field.py::test_field2property_no_type_[3.0.0-Raw] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[2.0-List] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[2.0-CustomList] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[3.0.0-List] tests/test_ext_marshmallow_field.py::test_formatted_field_translates_to_array[3.0.0-CustomList] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-UUID-uuid] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-DateTime-date-time] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Date-date] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Email-email] tests/test_ext_marshmallow_field.py::test_field2property_formats[2.0-Url-url] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-UUID-uuid] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-DateTime-date-time] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Date-date] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Email-email] tests/test_ext_marshmallow_field.py::test_field2property_formats[3.0.0-Url-url] tests/test_ext_marshmallow_field.py::test_field_with_description[2.0] tests/test_ext_marshmallow_field.py::test_field_with_description[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_missing[2.0] tests/test_ext_marshmallow_field.py::test_field_with_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_boolean_field_with_false_missing[2.0] tests/test_ext_marshmallow_field.py::test_boolean_field_with_false_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_datetime_field_with_missing[2.0] tests/test_ext_marshmallow_field.py::test_datetime_field_with_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_missing_callable[2.0] tests/test_ext_marshmallow_field.py::test_field_with_missing_callable[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default[2.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default_and_missing[2.0] tests/test_ext_marshmallow_field.py::test_field_with_doc_default_and_missing[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_choices[2.0] tests/test_ext_marshmallow_field.py::test_field_with_choices[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_equal[2.0] tests/test_ext_marshmallow_field.py::test_field_with_equal[3.0.0] tests/test_ext_marshmallow_field.py::test_only_allows_valid_properties_in_metadata[2.0] tests/test_ext_marshmallow_field.py::test_only_allows_valid_properties_in_metadata[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_choices_multiple[2.0] tests/test_ext_marshmallow_field.py::test_field_with_choices_multiple[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_additional_metadata[2.0] tests/test_ext_marshmallow_field.py::test_field_with_additional_metadata[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_allow_none[2.0] tests/test_ext_marshmallow_field.py::test_field_with_allow_none[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_allow_none[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_range_no_type[2.0] tests/test_ext_marshmallow_field.py::test_field_with_range_no_type[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[2.0-Number] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[2.0-Integer] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[3.0.0-Number] tests/test_ext_marshmallow_field.py::test_field_with_range_string_type[3.0.0-Integer] tests/test_ext_marshmallow_field.py::test_field_with_range_type_list_with_number[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_range_type_list_without_number[3.1.0] tests/test_ext_marshmallow_field.py::test_field_with_str_regex[2.0] tests/test_ext_marshmallow_field.py::test_field_with_str_regex[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_pattern_obj_regex[2.0] tests/test_ext_marshmallow_field.py::test_field_with_pattern_obj_regex[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_no_pattern[2.0] tests/test_ext_marshmallow_field.py::test_field_with_no_pattern[3.0.0] tests/test_ext_marshmallow_field.py::test_field_with_multiple_patterns[2.0] tests/test_ext_marshmallow_field.py::test_field_with_multiple_patterns[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec_metadatas[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec_metadatas[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_spec[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many_spec[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many_spec[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_ref[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_ref[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many[2.0] tests/test_ext_marshmallow_field.py::test_field2property_nested_many[3.0.0] tests/test_ext_marshmallow_field.py::test_nested_field_with_property[2.0] tests/test_ext_marshmallow_field.py::test_nested_field_with_property[3.0.0] tests/test_ext_marshmallow_field.py::test_custom_properties_for_custom_fields[2.0] tests/test_ext_marshmallow_field.py::test_custom_properties_for_custom_fields[3.0.0] tests/test_ext_marshmallow_field.py::test_field2property_with_non_string_metadata_keys[2.0] tests/test_ext_marshmallow_field.py::test_field2property_with_non_string_metadata_keys[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_missing_load[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_missing_load[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_default_location_mapping_if_schema_many[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_dump_only[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowFieldToOpenAPI::test_fields_with_dump_only[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_with_explicit_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_with_explicit_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_override_name[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema2jsonschema_override_name[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_required_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_required_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_partial[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_partial[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_no_required_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_no_required_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_title_and_description_may_be_added[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_title_and_description_may_be_added[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_excluded_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_excluded_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_disallow[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_disallow[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_allow[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_allow[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_ignore[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_unknown_values_ignore[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_only_explicitly_declared_fields_are_translated[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_only_explicitly_declared_fields_are_translated[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_observed_field_name_for_required_field[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_observed_field_name_for_required_field[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[2.0-True] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[2.0-False] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[3.0.0-True] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_schema_instance_inspection[3.0.0-False] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_raises_error_if_no_declared_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToModelDefinition::test_raises_error_if_no_declared_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[2.0-List] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[2.0-CustomList] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[3.0.0-List] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_multiple[3.0.0-CustomList] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_required[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_field_required[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_partial[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_partial[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_partial_list[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_partial_list[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body_with_dump_only[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_body_many[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance_many_should_raise_exception[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_schema_query_instance_many_should_raise_exception[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_fields_query[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_fields_query[3.0.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_raises_error_if_not_a_schema[2.0] tests/test_ext_marshmallow_openapi.py::TestMarshmallowSchemaToParameters::test_raises_error_if_not_a_schema[3.0.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[2.0-only] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[2.0-exclude] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[3.0.0-only] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_only_exclude[3.0.0-exclude] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_with_adhoc_changes[2.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_fields_with_adhoc_changes[3.0.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_excluded_fields[2.0] tests/test_ext_marshmallow_openapi.py::TestNesting::test_schema2jsonschema_with_nested_excluded_fields[3.0.0] tests/test_ext_marshmallow_openapi.py::test_openapi_tools_validate_v2 tests/test_ext_marshmallow_openapi.py::test_openapi_tools_validate_v3 tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-range-properties0] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-range_no_upper-properties1] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-multiple_ranges-properties2] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-list_length-properties3] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-custom_list_length-properties4] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-string_length-properties5] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-custom_field_length-properties6] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-multiple_lengths-properties7] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-equal_length-properties8] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[2.0-date_range-properties9] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-range-properties0] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-range_no_upper-properties1] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-multiple_ranges-properties2] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-list_length-properties3] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-custom_list_length-properties4] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-string_length-properties5] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-custom_field_length-properties6] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-multiple_lengths-properties7] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-equal_length-properties8] tests/test_ext_marshmallow_openapi.py::TestFieldValidation::test_properties[3.0.0-date_range-properties9]