New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Cerberus 1.1 #1001

Closed
wants to merge 1 commit into
base: master
from
Commits on May 18, 2017
  1. Support for Cerberus 1.1

    dkellner authored and bcrochet committed Sep 26, 2016
    (Based on original patch from dkellner)
    
    This is a rather big change. I still decided to do a single commit, as
    intermediate commits would be in a non-working state anyway.
    
    Breaking changes:
    
    - `keyschema` was renamed to `valueschema` and `propertyschema` to
      `keyschema` (following changes in Cerberus).
    - A PATCH on a document which misses a field having a default value will
      now result in setting this value, even if the field was not provided
      in the PATCH's payload.
    - Error messages for `keyschema` are now returned as dictionary.
      Before: {'propertyschema_dict': 'propertyschema_dict'}
      Now: {'keyschema_dict': {'AAA': "value does not match regex '[a-z]+'"}}
    - Error messages for `type` validations are different now (following
      changes in Cerberus).
    - It is no longer valid to have a field with `default` = None and
      `nullable` = False.
      (see patch.py:test_patch_nested_document_nullable_missing)
    
    In a nutshell, changes to the codebase are as follows:
    
    - Add data layer independent subclass of `cerberus.Validator`
      * Support new signature of `__init__` and `validate`
      * Use `_config`-aware properties instead of bare member attributes to
        pass the `resource`, `document_id` and `persisted_document` to make
        them available to child validators
      * Add schema-docstrings to all `_validate_*` methods
    
    - Adjust Mongo-specific `Validator` subclass
      * Adjust `_validate_type_*` methods (following changes in Cerberus)
      * Add schema-docstrings to all `_validate_*` methods
    
    - Add custom ErrorHandler to support `VALIDATION_ERROR_AS_LIST`
    
    - A few renames:
      * `ValidationError` -> `DocumentError`
      * `propertyschema` -> `keyschema` and `keyschema` -> `valueschema`
    
    - Adjust tests due to different validation error messages
      (mostly for `type`)
    
    - Remove `transparent_schema_rules` without replacement
    - Remove `default`-handling, as Cerberus takes care of this now