summaryrefslogtreecommitdiff
path: root/tests/files/success/test_unique.yaml
blob: 20cb64ff08965b2d9a08854b93fafd1a127fe827 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
name:  unique1
desc:  unique constraint test with map
#
schema:
  type: seq
  sequence:
    - type: map
      mapping:
       "name":
          unique: true
       "age":
          type: int
#
data:
  - name: foo
    age:  10
  - name: bar
    age:  10
  - name: baz
    age:  10
---
name:  unique2
desc:  unique constraint test with seq
#
schema:
  type: seq
  sequence:
    - type: str
      unique: true
#
data:
  - foo
  - ~
  - bar
  - ~
  - baz
---
name:  unique3
desc:  unique constraint and '<<' (merge)
#
schema:
    type: seq
    sequence:
      - type: map
        mapping:
         "name":
           type: str
           required: True
           unique: true
         "value": 
           type: any
           required: True
#
data:
    # no sense
    - name: x1
      value: 10
    - name: x2
      value: 20
---
name:  unique4
desc:  unique constrant and anchor
#
schema:
    type: seq
    sequence:
      - type: map
        mapping:
         "name":
            type: str
         "value":
            type: any
#
data:
    # no sense
    - name: x1
      value: 10
    - name: x2
      value: 20
---
name: unique5
desc: unique constring in nested data structures
data:
  - name: foo
    email: admin@mail.com
    groups:
      - users
      - foo
      - admin
  - name: bar
    email: admin@mail.com
    groups:
      - users
      - admin
  - name: baz
    email: baz@mail.com
    groups:
      - users
schema:
  type: seq
  sequence:
    - type: map
      required: True
      mapping:
        name: 
          type: str
          required: True
          unique: True
        email:
          type: str
        groups:
          type: seq
          sequence:
            - type: str
              unique: True
---
name: unique6
desc: Test that unique do not fail when the key it tries to lookup is missing
data:
  - xref: 'GOC:hm'
    uri: 'GOC:hm'
  - uri: 'http://orcid.org/0000-0002-4862-3181'
schema:
  type: seq
  sequence:
    - type: map
      mapping:
        "uri":
          type: str
          required: true
          unique: true
          pattern: ^((ht|f)tp(s?)\:\/\/\w[\/\.\-\:\w]+)|(GOC\:[\w\_]+)$
        "xref":
          type: str
          required: false
          unique: true
          pattern: ^\w+:\w+$