Skip to content

Commit

Permalink
Add failing tests for pyeve#268: readonly conflicts with default
Browse files Browse the repository at this point in the history
  • Loading branch information
dkellner committed Nov 12, 2016
1 parent 3f673c9 commit 7bc481c
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions cerberus/tests/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,46 @@ def test_readonly_field_first_rule():
assert 'read-only' in v.errors['a_readonly_number'][0]


def test_readonly_field_with_default_value():
schema = {
'created': {
'type': 'string',
'readonly': True,
'default': 'today'
}
}
assert_success({}, schema)
expected_error = ('created', ('created', 'readonly'),
errors.READONLY_FIELD,
schema['created']['readonly'])
assert_fail({'created': 'tomorrow'}, schema, error=expected_error)
assert_fail({'created': 'today'}, schema, error=expected_error)


def test_nested_readonly_field_with_default_value():
schema = {
'some_field': {
'type': 'dict',
'schema': {
'created': {
'type': 'string',
'readonly': True,
'default': 'today'
}
}
}
}
assert_success({'some_field': {}}, schema)
expected_error = (('some_field', 'created'),
('some_field', 'schema', 'created', 'readonly'),
errors.READONLY_FIELD,
schema['some_field']['schema']['created']['readonly'])
assert_fail({'some_field': {'created': 'tomorrow'}}, schema,
error=expected_error)
assert_fail({'some_field': {'created': 'today'}}, schema,
error=expected_error)


def test_not_a_string():
assert_bad_type('a_string', 'string', 1)

Expand Down

0 comments on commit 7bc481c

Please sign in to comment.