blob: dca97f5467b2c06129dfad76b845072a69e3697e (
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
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
---
name: fail-anchor-1
desc: schema with anchor
schema:
type: seq
required: true
sequence:
- type: map
required: true
mapping:
first-name: &name
type: str
required: true
family-name: *name
data:
- first-name: foo
last-name: Foo
- first-name: bar
family-name: 100
errors:
- "Cannot find required key 'family-name'. Path: '/0'"
- "Key 'last-name' was not defined. Path: '/0'"
- "Value '100' is not of type 'str'. Path: '/1/family-name'"
## Kwalify errors
# :required_nokey : 1:3:[/0] key 'family-name:' is required.
# :key_undefined : 2:3:[/0/last-name] key 'last-name:' is undefined.
# :type_unmatch : 4:3:[/1/family-name] '100': not a string.
---
name: fail-anchor-2
desc: schema with anchor 2
schema:
type: map
required: true
mapping:
title: &name
type: str
required: true
address-book:
type: seq
required: true
sequence:
- type: map
mapping:
name: *name
email:
type: str
required: true
data:
title: my friends
address-book:
- name: 100
email: foo@mail.com
- first-name: bar
email: bar@mail.com
errors:
- "Cannot find required key 'name'. Path: '/address-book/1'"
- "Key 'first-name' was not defined. Path: '/address-book/1'"
- "Value '100' is not of type 'str'. Path: '/address-book/0/name'"
## Kwalify errors
# :type_unmatch : 3:5:[/address-book/0/name] '100': not a string.
# :required_nokey : 5:5:[/address-book/1] key 'name:' is required.
# :key_undefined : 5:5:[/address-book/1/first-name] key 'first-name:' is undefined.
# TODO: THIS TEST IS BROKEN BECUASE IT CAUSE INFINITE RECURSION IN PYTHON
# ---
# name: fail-anchor-3
# desc: document with anchor
# schema:
# type: seq
# sequence:
# - &employee
# type: map
# mapping:
# name:
# type: str
# post:
# type: str
# enum:
# - exective
# - manager
# - clerk
# supervisor: *employee
# data:
# - &foo
# name: 100
# post: exective
# supervisor: *foo
# - &bar
# name: foo
# post: worker
# supervisor: *foo
# errors:
# - ''
# ## Kwalify errors
# # :type_unmatch : 2:3:[/0/name] '100': not a string.
# # :enum_notexist : 7:3:[/1/post] 'worker': invalid post value.
|