Ошибки сериализации зефира пусты, даже если проверка не удалась - PullRequest
0 голосов
/ 22 февраля 2019

Я добавляю marshmallow в мой веб-сервис Python, главным образом, чтобы я мог использовать схемы для генерации документов OpenAPI, но я также хотел бы проверить ошибки при сериализации моего ответа API.Я прочитал соответствующую документацию, но не понимаю, почему не вижу ошибок при сериализации неполных объектов.

Например, со следующей схемой:

class UserResponse(Schema):
    user = fields.Integer(required=True)
    email = fields.Email(required=True)
    name = fields.String(required=True)
    role = fields.String(required=True)

    class Meta:
        strict = True

schema = UserResponse()

Валидация работает должным образом:

>>> schema.validate({'user': 1})
ValidationError: {'email': ['Missing data for required field.'], 'role': ['Missing data for required field.'], 'name': ['Missing data for required field.']}

Но сериализация возвращает пустой список ошибок:

>>> schema.dump({'user':1})
MarshalResult(data={'user': 1}, errors={})

Это как это должно работать?Я ожидаю, что будет возвращена ошибка, если в сериализованном объекте отсутствуют обязательные поля.

1 Ответ

0 голосов
/ 22 февраля 2019

По проекту в зефире проверка выполняется только при десериализации.

См. эту проблему .

...