summaryrefslogtreecommitdiffstats
path: root/lang/python/python-marshmallow/test.sh
blob: c8b8d84e6a9c2ee7b7a41ee86cc9f283d7823d38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh

[ "$1" = python3-marshmallow ] || exit 0

python3 - << 'EOF'

from marshmallow import Schema, fields, ValidationError

# Round-trip a schema: dump a dict, load and type-coerce it back, then confirm
# a missing required field is rejected with ValidationError.
class UserSchema(Schema):
    name = fields.Str(required=True)
    age = fields.Int()

s = UserSchema()
assert s.dump({"name": "ow", "age": 3}) == {"name": "ow", "age": 3}
assert s.load({"name": "ow", "age": "5"}) == {"name": "ow", "age": 5}
try:
    s.load({"age": 1})
    raise SystemExit("required field not enforced")
except ValidationError:
    pass

EOF