diff --git a/AUTHORS.rst b/AUTHORS.rst
index f1f23ff6..f3933100 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -115,4 +115,5 @@ Contributors (chronological)
 - Jan Margeta `@jmargeta <https://github.com/jmargeta>`_
 - AlexV `@asmodehn <https://github.com/asmodehn>`_
 - `@toffan <https://github.com/toffan>`_
+- Hampus Dunström `@Dunstrom <https://github.com/Dunstrom>`_
 - Robert Jensen `@r1b <https://github.com/r1b>`_
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 1770ddac..56eb330d 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,8 @@ Changelog
 
 Features:
 
+- Make the error messages for "unknown fields" and "invalid data type"
+  configurable (:issue:`852`). Thanks :user:`Dunstrom` for the PR.
 - ``fields.Boolean`` parses ``"yes"``/``"no"`` values (:pr:`1081`).
   Thanks :user:`r1b`.
 
diff --git a/docs/api_reference.rst b/docs/api_reference.rst
index 453a7801..b4bd3146 100644
--- a/docs/api_reference.rst
+++ b/docs/api_reference.rst
@@ -15,8 +15,6 @@ Schema
 
 .. autoclass:: marshmallow.SchemaOpts
 
-.. autofunction:: marshmallow.pprint
-
 .. _api_fields:
 
 Fields
diff --git a/docs/extending.rst b/docs/extending.rst
index 072d7b0f..4721c56e 100644
--- a/docs/extending.rst
+++ b/docs/extending.rst
@@ -462,3 +462,17 @@ The ``context`` attribute of a `Schema` is a general-purpose store for extra inf
     # custom fields, schema methods, schema validators, etc.
     schema.context['request'] = request
     schema.dump(user)
+
+Custom Error Messages
+---------------------
+
+You can customize the error messages that `dump <marshmallow.Schema.dump>` and `dumps <marshmallow.Schema.dumps>` uses when raising a `ValidationError <marshmallow.exceptions.ValidationError>`.
+You do this by overriding the ``error_messages`` class variable:
+
+.. code-block:: python
+
+    class MySchema(Schema):
+        error_messages = {
+            'unknown': 'Custom unknown field error message.',
+            'type': 'Custom invalid type error message.'
+        }
diff --git a/marshmallow/fields.py b/marshmallow/fields.py
index db29267d..01cff48d 100644
--- a/marshmallow/fields.py
+++ b/marshmallow/fields.py
@@ -117,7 +117,7 @@ class Field(FieldABC):
 
     #: Default error messages for various kinds of errors. The keys in this dictionary
     #: are passed to `Field.fail`. The values are error messages passed to
-    #: :exc:`marshmallow.ValidationError`.
+    #: :exc:`marshmallow.exceptions.ValidationError`.
     default_error_messages = {
         'required': 'Missing data for required field.',
         'null': 'Field may not be null.',
diff --git a/marshmallow/schema.py b/marshmallow/schema.py
index 93167ba5..14db0076 100644
--- a/marshmallow/schema.py
+++ b/marshmallow/schema.py
@@ -293,6 +293,13 @@ class BaseSchema(base.SchemaABC):
         dt.timedelta: ma_fields.TimeDelta,
         decimal.Decimal: ma_fields.Decimal,
     }
+    #: Overrides for default schema-level error messages
+    error_messages = {}
+
+    _default_error_messages = {
+        'type': 'Invalid input type.',
+        'unknown': 'Unknown field.',
+    }
 
     OPTIONS_CLASS = SchemaOpts
 
@@ -360,6 +367,12 @@ class BaseSchema(base.SchemaABC):
         self._normalize_nested_options()
         #: Dictionary mapping field_names -> :class:`Field` objects
         self.fields = self._init_fields()
+        messages = {}
+        messages.update(self._default_error_messages)
+        for cls in reversed(self.__class__.__mro__):
+            messages.update(getattr(cls, 'error_messages', {}))
+        messages.update(self.error_messages or {})
+        self.error_messages = messages
 
     def __repr__(self):
         return '<{ClassName}(many={self.many})>'.format(
@@ -590,7 +603,7 @@ class BaseSchema(base.SchemaABC):
         index = index if index_errors else None
         if many:
             if not is_collection(data):
-                error_store.store_error(['Invalid input type.'], index=index)
+                error_store.store_error([self.error_messages['type']], index=index)
                 ret = []
             else:
                 self._pending = True
@@ -608,7 +621,7 @@ class BaseSchema(base.SchemaABC):
         ret = dict_class()
         # Check data is a dict
         if not isinstance(data, Mapping):
-            error_store.store_error(['Invalid input type.'], index=index)
+            error_store.store_error([self.error_messages['type']], index=index)
         else:
             partial_is_collection = is_collection(partial)
             for attr_name, field_obj in iteritems(fields_dict):
@@ -662,7 +675,7 @@ class BaseSchema(base.SchemaABC):
                         set_value(ret, key, value)
                     elif unknown == RAISE:
                         error_store.store_error(
-                            ['Unknown field.'],
+                            [self.error_messages['unknown']],
                             key,
                             (index if index_errors else None),
                         )

Make the error messages for "unknown fields" and "invalid data type" configurable
As a follow-up to https://github.com/marshmallow-code/marshmallow/pull/838#issuecomment-399677937 : Make the error messages for passing unknown fields (currently `'Unknown field.'`) and invalid input type (currently `'Invalid input type.'`) configurable on a `Schema`.
diff --git a/tests/test_schema.py b/tests/test_schema.py
index fdaa6311..83f20306 100644
--- a/tests/test_schema.py
+++ b/tests/test_schema.py
@@ -786,6 +786,86 @@ def test_custom_error_message():
     assert 'Invalid email' in errors['email']
 
 
+def test_custom_unknown_error_message():
+    custom_message = 'custom error message.'
+
+    class ErrorSchema(Schema):
+        error_messages = {'unknown': custom_message}
+        name = fields.String()
+
+    s = ErrorSchema()
+    u = {'name': 'Joe', 'age': 13}
+    with pytest.raises(ValidationError) as excinfo:
+        s.load(u)
+    errors = excinfo.value.messages
+    assert custom_message in errors['age']
+
+
+def test_custom_type_error_message():
+    custom_message = 'custom error message.'
+
+    class ErrorSchema(Schema):
+        error_messages = {'type': custom_message}
+        name = fields.String()
+
+    s = ErrorSchema()
+    u = ['Joe']
+    with pytest.raises(ValidationError) as excinfo:
+        s.load(u)
+    errors = excinfo.value.messages
+    assert custom_message in errors['_schema']
+
+
+def test_custom_type_error_message_with_many():
+    custom_message = 'custom error message.'
+
+    class ErrorSchema(Schema):
+        error_messages = {'type': custom_message}
+        name = fields.String()
+
+    s = ErrorSchema(many=True)
+    u = {'name': 'Joe'}
+    with pytest.raises(ValidationError) as excinfo:
+        s.load(u)
+    errors = excinfo.value.messages
+    assert custom_message in errors['_schema']
+
+
+def test_custom_error_messages_with_inheritance():
+    parent_type_message = 'parent type error message.'
+    parent_unknown_message = 'parent unknown error message.'
+    child_type_message = 'child type error message.'
+
+    class ParentSchema(Schema):
+        error_messages = {
+            'type': parent_type_message,
+            'unknown': parent_unknown_message,
+        }
+        name = fields.String()
+
+    class ChildSchema(ParentSchema):
+        error_messages = {'type': child_type_message}
+
+    unknown_user = {'name': 'Eleven', 'age': 12}
+    type_user = 11
+
+    parent_schema = ParentSchema()
+    with pytest.raises(ValidationError) as excinfo:
+        parent_schema.load(unknown_user)
+    assert parent_unknown_message in excinfo.value.messages['age']
+    with pytest.raises(ValidationError) as excinfo:
+        parent_schema.load(type_user)
+    assert parent_type_message in excinfo.value.messages['_schema']
+
+    child_schema = ChildSchema()
+    with pytest.raises(ValidationError) as excinfo:
+        child_schema.load(unknown_user)
+    assert parent_unknown_message in excinfo.value.messages['age']
+    with pytest.raises(ValidationError) as excinfo:
+        child_schema.load(type_user)
+    assert child_type_message in excinfo.value.messages['_schema']
+
+
 def test_load_errors_with_many():
     class ErrorSchema(Schema):
         email = fields.Email()

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio pytest
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
aspy.yaml==1.3.0
cached-property==2.0.1
cachetools==5.5.2
cfgv==3.4.0
chardet==5.2.0
colorama==0.4.6
coverage==7.8.0
distlib==0.3.9
exceptiongroup==1.2.2
execnet==2.1.1
filelock==3.18.0
flake8==3.6.0
identify==2.6.9
importlib_metadata==8.6.1
iniconfig==2.1.0
-e git+https://github.com/marshmallow-code/marshmallow.git@4dc6b656ec61e0a1f945aaf20bc43673ec0c01f6#egg=marshmallow
mccabe==0.6.1
nodeenv==1.9.1
packaging==24.2
platformdirs==4.3.7
pluggy==1.5.0
pre-commit==1.13.0
pycodestyle==2.4.0
pyflakes==2.0.0
pyproject-api==1.9.0
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.2
simplejson==3.20.1
six==1.17.0
toml==0.10.2
tomli==2.2.1
tox==4.25.0
typing_extensions==4.13.0
virtualenv==20.29.3
zipp==3.21.0

name: marshmallow
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - aspy-yaml==1.3.0
      - cached-property==2.0.1
      - cachetools==5.5.2
      - cfgv==3.4.0
      - chardet==5.2.0
      - colorama==0.4.6
      - coverage==7.8.0
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - filelock==3.18.0
      - flake8==3.6.0
      - identify==2.6.9
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - mccabe==0.6.1
      - nodeenv==1.9.1
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - pre-commit==1.13.0
      - pycodestyle==2.4.0
      - pyflakes==2.0.0
      - pyproject-api==1.9.0
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-xdist==3.6.1
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.2
      - simplejson==3.20.1
      - six==1.17.0
      - toml==0.10.2
      - tomli==2.2.1
      - tox==4.25.0
      - typing-extensions==4.13.0
      - virtualenv==20.29.3
      - zipp==3.21.0
prefix: /opt/conda/envs/marshmallow

tests/test_schema.py::test_custom_unknown_error_message tests/test_schema.py::test_custom_type_error_message tests/test_schema.py::test_custom_type_error_message_with_many tests/test_schema.py::test_custom_error_messages_with_inheritance
tests/test_schema.py::test_serializing_basic_object[UserSchema] tests/test_schema.py::test_serializing_basic_object[UserMetaSchema] tests/test_schema.py::test_serializer_dump tests/test_schema.py::test_dump_raises_with_dict_of_errors tests/test_schema.py::test_dump_mode_raises_error[UserSchema] tests/test_schema.py::test_dump_mode_raises_error[UserMetaSchema] tests/test_schema.py::test_dump_resets_errors tests/test_schema.py::test_load_resets_errors tests/test_schema.py::test_load_validation_error_stores_input_data_and_valid_data tests/test_schema.py::test_dump_validation_error_stores_partially_valid_data tests/test_schema.py::test_dump_resets_error_fields tests/test_schema.py::test_load_resets_error_fields tests/test_schema.py::test_load_resets_error_kwargs tests/test_schema.py::test_errored_fields_do_not_appear_in_output tests/test_schema.py::test_load_many_stores_error_indices tests/test_schema.py::test_dump_many tests/test_schema.py::test_multiple_errors_can_be_stored_for_a_given_index tests/test_schema.py::test_dump_many_stores_error_indices tests/test_schema.py::test_dump_many_doesnt_stores_error_indices_when_index_errors_is_false tests/test_schema.py::test_dump_returns_a_dict tests/test_schema.py::test_dumps_returns_a_string tests/test_schema.py::test_dumping_single_object_with_collection_schema tests/test_schema.py::test_loading_single_object_with_collection_schema tests/test_schema.py::test_dumps_many tests/test_schema.py::test_load_returns_an_object tests/test_schema.py::test_load_many tests/test_schema.py::test_load_invalid_input_type[None] tests/test_schema.py::test_load_invalid_input_type[False] tests/test_schema.py::test_load_invalid_input_type[1] tests/test_schema.py::test_load_invalid_input_type[1.2] tests/test_schema.py::test_load_invalid_input_type[val4] tests/test_schema.py::test_load_invalid_input_type[val5] tests/test_schema.py::test_load_invalid_input_type[val6] tests/test_schema.py::test_load_invalid_input_type[lol] tests/test_schema.py::test_load_many_invalid_input_type[None] tests/test_schema.py::test_load_many_invalid_input_type[False] tests/test_schema.py::test_load_many_invalid_input_type[1] tests/test_schema.py::test_load_many_invalid_input_type[1.2] tests/test_schema.py::test_load_many_invalid_input_type[val4] tests/test_schema.py::test_load_many_invalid_input_type[val5] tests/test_schema.py::test_load_many_invalid_input_type[val6] tests/test_schema.py::test_load_many_invalid_input_type[lol] tests/test_schema.py::test_load_many_empty_collection[val0] tests/test_schema.py::test_load_many_empty_collection[val1] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[False] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[1] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[1.2] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[val3] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[val4] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[val5] tests/test_schema.py::test_load_many_in_nested_invalid_input_type[lol] tests/test_schema.py::test_load_many_in_nested_empty_collection[val0] tests/test_schema.py::test_load_many_in_nested_empty_collection[val1] tests/test_schema.py::test_loads_returns_a_user tests/test_schema.py::test_loads_many tests/test_schema.py::test_loads_deserializes_from_json tests/test_schema.py::test_serializing_none tests/test_schema.py::test_default_many_symmetry tests/test_schema.py::test_on_bind_field_hook tests/test_schema.py::test_nested_on_bind_field_hook tests/test_schema.py::TestValidate::test_validate_raises_with_errors_dict tests/test_schema.py::TestValidate::test_validate_many tests/test_schema.py::TestValidate::test_validate_many_doesnt_store_index_if_index_errors_option_is_false tests/test_schema.py::TestValidate::test_validate tests/test_schema.py::TestValidate::test_validate_required tests/test_schema.py::test_fields_are_not_copies[UserSchema] tests/test_schema.py::test_fields_are_not_copies[UserMetaSchema] tests/test_schema.py::test_dumps_returns_json tests/test_schema.py::test_naive_datetime_field tests/test_schema.py::test_datetime_formatted_field tests/test_schema.py::test_datetime_iso_field tests/test_schema.py::test_tz_datetime_field tests/test_schema.py::test_local_datetime_field tests/test_schema.py::test_class_variable tests/test_schema.py::test_serialize_many[UserSchema] tests/test_schema.py::test_serialize_many[UserMetaSchema] tests/test_schema.py::test_inheriting_schema tests/test_schema.py::test_custom_field tests/test_schema.py::test_url_field tests/test_schema.py::test_relative_url_field tests/test_schema.py::test_stores_invalid_url_error[UserSchema] tests/test_schema.py::test_stores_invalid_url_error[UserMetaSchema] tests/test_schema.py::test_email_field[UserSchema] tests/test_schema.py::test_email_field[UserMetaSchema] tests/test_schema.py::test_stored_invalid_email tests/test_schema.py::test_integer_field tests/test_schema.py::test_as_string tests/test_schema.py::test_method_field[UserSchema] tests/test_schema.py::test_method_field[UserMetaSchema] tests/test_schema.py::test_function_field tests/test_schema.py::test_fields_must_be_declared_as_instances tests/test_schema.py::test_serializing_generator[UserSchema] tests/test_schema.py::test_serializing_generator[UserMetaSchema] tests/test_schema.py::test_serializing_empty_list_returns_empty_list tests/test_schema.py::test_serializing_dict tests/test_schema.py::test_serializing_dict_with_meta_fields tests/test_schema.py::test_exclude_in_init[UserSchema] tests/test_schema.py::test_exclude_in_init[UserMetaSchema] tests/test_schema.py::test_only_in_init[UserSchema] tests/test_schema.py::test_only_in_init[UserMetaSchema] tests/test_schema.py::test_invalid_only_param tests/test_schema.py::test_can_serialize_uuid tests/test_schema.py::test_can_serialize_time tests/test_schema.py::test_invalid_time tests/test_schema.py::test_invalid_date tests/test_schema.py::test_invalid_dict_but_okay tests/test_schema.py::test_json_module_is_deprecated tests/test_schema.py::test_render_module tests/test_schema.py::test_custom_error_message tests/test_schema.py::test_load_errors_with_many tests/test_schema.py::test_error_raised_if_fields_option_is_not_list tests/test_schema.py::test_error_raised_if_additional_option_is_not_list tests/test_schema.py::test_nested_custom_set_in_exclude_reusing_schema tests/test_schema.py::test_nested_only tests/test_schema.py::test_nested_only_inheritance tests/test_schema.py::test_nested_only_empty_inheritance tests/test_schema.py::test_nested_exclude tests/test_schema.py::test_nested_exclude_inheritance tests/test_schema.py::test_nested_only_and_exclude tests/test_schema.py::test_nested_only_then_exclude_inheritance tests/test_schema.py::test_nested_exclude_then_only_inheritance tests/test_schema.py::test_nested_exclude_and_only_inheritance tests/test_schema.py::test_meta_nested_exclude tests/test_schema.py::test_nested_custom_set_not_implementing_getitem tests/test_schema.py::test_deeply_nested_only_and_exclude tests/test_schema.py::test_data_key_collision[f1] tests/test_schema.py::test_data_key_collision[f5] tests/test_schema.py::test_data_key_collision[None] tests/test_schema.py::test_attribute_collision[f1] tests/test_schema.py::test_attribute_collision[f5] tests/test_schema.py::test_attribute_collision[None] tests/test_schema.py::TestDeeplyNestedLoadOnly::test_load_only tests/test_schema.py::TestDeeplyNestedLoadOnly::test_dump_only tests/test_schema.py::TestDeeplyNestedListLoadOnly::test_load_only tests/test_schema.py::TestDeeplyNestedListLoadOnly::test_dump_only tests/test_schema.py::test_nested_constructor_only_and_exclude tests/test_schema.py::test_only_and_exclude tests/test_schema.py::test_only_and_exclude_with_fields tests/test_schema.py::test_invalid_only_and_exclude_with_fields tests/test_schema.py::test_only_and_exclude_with_additional tests/test_schema.py::test_invalid_only_and_exclude_with_additional tests/test_schema.py::test_exclude_invalid_attribute tests/test_schema.py::test_only_bounded_by_fields tests/test_schema.py::test_only_bounded_by_additional tests/test_schema.py::test_only_empty tests/test_schema.py::test_only_and_exclude_as_string[only] tests/test_schema.py::test_only_and_exclude_as_string[exclude] tests/test_schema.py::test_nested_with_sets tests/test_schema.py::test_meta_serializer_fields tests/test_schema.py::test_meta_fields_mapping tests/test_schema.py::test_meta_field_not_on_obj_raises_attribute_error tests/test_schema.py::test_exclude_fields tests/test_schema.py::test_fields_option_must_be_list_or_tuple tests/test_schema.py::test_exclude_option_must_be_list_or_tuple tests/test_schema.py::test_datetimeformat_option tests/test_schema.py::test_dateformat_option tests/test_schema.py::test_default_dateformat tests/test_schema.py::test_inherit_meta tests/test_schema.py::test_inherit_meta_override tests/test_schema.py::test_additional tests/test_schema.py::test_cant_set_both_additional_and_fields tests/test_schema.py::test_serializing_none_meta tests/test_schema.py::TestHandleError::test_dump_with_custom_error_handler tests/test_schema.py::TestHandleError::test_load_with_custom_error_handler tests/test_schema.py::TestHandleError::test_load_with_custom_error_handler_and_partially_valid_data tests/test_schema.py::TestHandleError::test_custom_error_handler_with_validates_decorator tests/test_schema.py::TestHandleError::test_custom_error_handler_with_validates_schema_decorator tests/test_schema.py::TestHandleError::test_validate_with_custom_error_handler tests/test_schema.py::TestFieldValidation::test_errors_are_cleared_after_loading_collection tests/test_schema.py::TestFieldValidation::test_raises_error_with_list tests/test_schema.py::TestFieldValidation::test_raises_error_with_dict tests/test_schema.py::TestFieldValidation::test_ignored_if_not_in_only tests/test_schema.py::test_schema_repr tests/test_schema.py::TestNestedSchema::test_nested_many_with_missing_attribute tests/test_schema.py::TestNestedSchema::test_nested_with_attribute_none tests/test_schema.py::TestNestedSchema::test_nested_field_does_not_validate_required tests/test_schema.py::TestNestedSchema::test_nested_none tests/test_schema.py::TestNestedSchema::test_nested tests/test_schema.py::TestNestedSchema::test_nested_many_fields tests/test_schema.py::TestNestedSchema::test_nested_meta_many tests/test_schema.py::TestNestedSchema::test_nested_only tests/test_schema.py::TestNestedSchema::test_exclude tests/test_schema.py::TestNestedSchema::test_list_field tests/test_schema.py::TestNestedSchema::test_nested_load_many tests/test_schema.py::TestNestedSchema::test_nested_errors tests/test_schema.py::TestNestedSchema::test_nested_dump_errors tests/test_schema.py::TestNestedSchema::test_nested_dump tests/test_schema.py::TestNestedSchema::test_nested_method_field tests/test_schema.py::TestNestedSchema::test_nested_function_field tests/test_schema.py::TestNestedSchema::test_invalid_float_field tests/test_schema.py::TestNestedSchema::test_serializer_meta_with_nested_fields tests/test_schema.py::TestNestedSchema::test_serializer_with_nested_meta_fields tests/test_schema.py::TestNestedSchema::test_nested_fields_must_be_passed_a_serializer tests/test_schema.py::TestNestedSchema::test_invalid_type_passed_to_nested_field tests/test_schema.py::TestNestedSchema::test_all_errors_on_many_nested_field_with_validates_decorator tests/test_schema.py::TestNestedSchema::test_dump_validation_error tests/test_schema.py::TestNestedSchema::test_nested_unknown_validation[None] tests/test_schema.py::TestNestedSchema::test_nested_unknown_validation[raise] tests/test_schema.py::TestNestedSchema::test_nested_unknown_validation[include] tests/test_schema.py::TestNestedSchema::test_nested_unknown_validation[exclude] tests/test_schema.py::TestPluckSchema::test_pluck tests/test_schema.py::TestPluckSchema::test_pluck_none tests/test_schema.py::TestPluckSchema::test_pluck_with_data_key tests/test_schema.py::TestSelfReference::test_nesting_schema_within_itself tests/test_schema.py::TestSelfReference::test_nesting_schema_by_passing_class_name tests/test_schema.py::TestSelfReference::test_nesting_within_itself_meta tests/test_schema.py::TestSelfReference::test_nested_self_with_only_param tests/test_schema.py::TestSelfReference::test_multiple_pluck_self_field tests/test_schema.py::TestSelfReference::test_nested_many tests/test_schema.py::test_serialization_with_required_field tests/test_schema.py::test_deserialization_with_required_field tests/test_schema.py::test_deserialization_with_required_field_and_custom_validator tests/test_schema.py::TestContext::test_context_method tests/test_schema.py::TestContext::test_context_method_function tests/test_schema.py::TestContext::test_function_field_raises_error_when_context_not_available tests/test_schema.py::TestContext::test_function_field_handles_bound_serializer tests/test_schema.py::TestContext::test_fields_context tests/test_schema.py::TestContext::test_nested_fields_inherit_context tests/test_schema.py::TestContext::test_nested_list_fields_inherit_context tests/test_schema.py::TestContext::test_nested_dict_fields_inherit_context tests/test_schema.py::test_serializer_can_specify_nested_object_as_attribute tests/test_schema.py::TestFieldInheritance::test_inherit_fields_from_schema_subclass tests/test_schema.py::TestFieldInheritance::test_inherit_fields_from_non_schema_subclass tests/test_schema.py::TestFieldInheritance::test_inheritance_follows_mro tests/test_schema.py::TestGetAttribute::test_get_attribute_is_used tests/test_schema.py::TestGetAttribute::test_get_attribute_with_many tests/test_schema.py::TestRequiredFields::test_required_string_field_missing tests/test_schema.py::TestRequiredFields::test_required_string_field_failure tests/test_schema.py::TestRequiredFields::test_allow_none_param tests/test_schema.py::TestRequiredFields::test_allow_none_custom_message tests/test_schema.py::TestDefaults::test_missing_inputs_are_excluded_from_dump_output tests/test_schema.py::TestDefaults::test_none_is_serialized_to_none tests/test_schema.py::TestDefaults::test_default_and_value_missing tests/test_schema.py::TestDefaults::test_loading_none tests/test_schema.py::TestDefaults::test_missing_inputs_are_excluded_from_load_output tests/test_schema.py::TestLoadOnly::test_load_only tests/test_schema.py::TestLoadOnly::test_dump_only tests/test_schema.py::TestLoadOnly::test_url_field_requre_tld_false
marshmallow/schema.py docs/api_reference.rst AUTHORS.rst CHANGELOG.rst docs/extending.rst marshmallow/fields.py
marshmallow/schema.py docs/api_reference.rst AUTHORS.rst CHANGELOG.rst docs/extending.rst marshmallow/fields.py