summaryrefslogtreecommitdiff
path: root/tests/files/fail/test_unique.yaml
blob: 0af5d7c66b400d331d110a828e5a3043db54f3e3 (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
---
name: fail-unique-1
desc: "NOTE: The reverse unique do not currently work proper # This will test the unique constraint but should fail"
data:
  - name: foo
    email: admin@mail.com
    groups:
      - foo
      - users
      - admin
      - foo
  - name: bar
    email: admin@mail.com
    groups:
      - admin
      - users
  - name: bar
    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
errors:
  - "Value 'bar' is not unique. Previous path: '/1/name'. Path: '/2/name'"
  - "Value 'foo' is not unique. Previous path: '/0/groups/0'. Path: '/0/groups/3'"
---
name: fail-unique-2
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
  - age:  10
    name: bar
errors:
  - "Value 'bar' is not unique. Previous path: '/1/name'. Path: '/2/name'"
  ## Kwalify errors
  # :value_notunique    : 6:3:[/2/name] 'bar': is already used at '/1/name'.
---
name: fail-unique-3
desc: unique constraint test with seq
schema:
  type: seq
  sequence:
    - type: str
      unique: true
data:
  - foo
  - ~
  - bar
  - ~
  - bar
errors:
  - "Value 'bar' is not unique. Previous path: '/2'. Path: '/4'"
  ## Kwalify errors
  # :value_notunique    : 5:1:[/4] 'bar': is already used at '/2'.
---
name: fail-unique-4
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:
  - &a1
    name:  x1
    value: 10
  - <<: *a1
  - <<: *a1         # wrong validation error
    name:  x3
errors:
  - "Value 'x1' is not unique. Previous path: '/0/name'. Path: '/1/name'"
  # TODO: Possibly missing one error here...
  ## Kwalify errors
  # :value_notunique    : 4:3:[/1/name] 'x1': is already used at '/0/name'.
  # :value_notunique    : 5:3:[/2/name] 'x1': is already used at '/0/name'.