This repository was archived by the owner on Mar 18, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathtest_object.py
More file actions
64 lines (44 loc) · 2.15 KB
/
test_object.py
File metadata and controls
64 lines (44 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from coreschema import Object, String
def test_object_type():
schema = Object()
assert schema.validate({}) == []
assert schema.validate({'a': 1}) == []
assert schema.validate(1) == [('Must be an object.', [])]
def test_object_keys():
schema = Object()
assert schema.validate({}) == []
assert schema.validate({'a': 1}) == []
assert schema.validate({1: 1}) == [('Object keys must be strings.', [])]
def test_object_properties():
schema = Object(properties={'name': String()})
assert schema.validate({}) == []
assert schema.validate({'name': ''}) == []
assert schema.validate({'name': 1}) == [('Must be a string.', ['name'])]
def test_object_required():
schema = Object(required=['name'])
assert schema.validate({'name': 1}) == []
assert schema.validate({}) == [('This field is required.', ['name'])]
def test_object_max_properties():
schema = Object(max_properties=2)
assert schema.validate({'a': 1, 'b': 2}) == []
assert schema.validate({'a': 1, 'b': 2, 'c': 3}) == [('Must have no more than 2 properties.', [])]
def test_object_min_properties():
schema = Object(min_properties=2)
assert schema.validate({'a': 1, 'b': 2}) == []
assert schema.validate({'a': 1}) == [('Must have at least 2 properties.', [])]
def test_object_empty():
schema = Object(min_properties=1)
assert schema.validate({'a': 1}) == []
assert schema.validate({}) == [('Must not be empty.', [])]
def test_object_pattern_properties():
schema = Object(pattern_properties={'^x-': String(max_length=3)})
assert schema.validate({'foox-a': 1}) == []
assert schema.validate({'x-foo': 1}) == [('Must be a string.', ['x-foo'])]
def test_object_additional_properties_as_boolean():
schema = Object(properties={'a': String()}, additional_properties=False)
assert schema.validate({'a': ''}) == []
assert schema.validate({'b': ''}) == [('Invalid property.', ['b'])]
def test_object_additional_properties_as_schema():
schema = Object(properties={'a': String()}, additional_properties=String())
assert schema.validate({'a': ''}) == []
assert schema.validate({'b': 1}) == [('Must be a string.', ['b'])]