json_schemer 0.2.7 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -6
  3. data/Gemfile.lock +7 -7
  4. data/json_schemer.gemspec +3 -3
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/format.rb +25 -58
  8. data/lib/json_schemer/schema/base.rb +52 -32
  9. data/lib/json_schemer/version.rb +1 -1
  10. metadata +8 -229
  11. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  12. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  13. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  14. data/JSON-Schema-Test-Suite/README.md +0 -181
  15. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -295
  16. data/JSON-Schema-Test-Suite/index.js +0 -45
  17. data/JSON-Schema-Test-Suite/package.json +0 -28
  18. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  20. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -11
  21. data/JSON-Schema-Test-Suite/remotes/name.json +0 -11
  22. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  23. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  24. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +0 -87
  25. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +0 -133
  26. data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +0 -218
  27. data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +0 -188
  38. data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +0 -250
  39. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +0 -28
  40. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +0 -33
  41. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +0 -38
  42. data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +0 -28
  43. data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +0 -33
  45. data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +0 -38
  46. data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +0 -59
  47. data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +0 -60
  48. data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +0 -117
  49. data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +0 -206
  50. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +0 -105
  51. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +0 -77
  52. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +0 -13
  53. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +0 -53
  54. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +0 -23
  55. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +0 -18
  56. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +0 -33
  57. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +0 -18
  58. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +0 -28
  59. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +0 -33
  60. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +0 -28
  61. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +0 -43
  62. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +0 -53
  63. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +0 -168
  64. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +0 -18
  65. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +0 -33
  66. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +0 -23
  67. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +0 -43
  68. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +0 -28
  69. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +0 -103
  70. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +0 -15
  71. data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +0 -34
  72. data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +0 -151
  73. data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +0 -167
  74. data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +0 -78
  75. data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +0 -443
  76. data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +0 -167
  77. data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +0 -105
  78. data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +0 -464
  79. data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +0 -89
  80. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  82. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  83. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  84. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  85. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  86. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  87. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  88. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  89. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  90. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  91. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  92. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  93. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  94. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  95. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  96. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +0 -18
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  99. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  100. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  101. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  102. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  103. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  104. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  105. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  106. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -79
  107. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  108. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  109. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  110. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  111. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  112. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  113. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  114. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  115. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  116. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  117. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  118. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  119. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  120. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  121. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  122. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  123. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  124. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  125. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  126. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  127. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  128. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -13
  129. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  131. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  132. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  133. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  134. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  135. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  136. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  137. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  138. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -89
  139. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  140. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  141. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  142. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  143. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  144. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  145. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  146. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  147. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  148. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  149. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  150. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  151. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  152. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  153. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  154. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  155. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  156. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  157. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  161. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  162. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  163. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  164. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  165. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -13
  166. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  167. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  168. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  169. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  170. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  171. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  172. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  173. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  174. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  175. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  176. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -89
  177. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  178. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  179. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  180. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  181. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  182. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  183. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  184. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  185. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  186. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  187. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  188. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  189. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  190. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  191. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  192. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  193. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  194. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  195. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  196. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  197. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  198. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  199. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  200. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  201. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  202. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  203. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  204. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  205. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -13
  206. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  207. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  224. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  225. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  226. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  227. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  228. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  229. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  230. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  231. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  232. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -89
  233. data/JSON-Schema-Test-Suite/tox.ini +0 -8
@@ -1,74 +0,0 @@
1
- [
2
- {
3
- "description": "remote ref",
4
- "schema": {"$ref": "http://localhost:1234/integer.json"},
5
- "tests": [
6
- {
7
- "description": "remote ref valid",
8
- "data": 1,
9
- "valid": true
10
- },
11
- {
12
- "description": "remote ref invalid",
13
- "data": "a",
14
- "valid": false
15
- }
16
- ]
17
- },
18
- {
19
- "description": "fragment within remote ref",
20
- "schema": {"$ref": "http://localhost:1234/subSchemas.json#/integer"},
21
- "tests": [
22
- {
23
- "description": "remote fragment valid",
24
- "data": 1,
25
- "valid": true
26
- },
27
- {
28
- "description": "remote fragment invalid",
29
- "data": "a",
30
- "valid": false
31
- }
32
- ]
33
- },
34
- {
35
- "description": "ref within remote ref",
36
- "schema": {
37
- "$ref": "http://localhost:1234/subSchemas.json#/refToInteger"
38
- },
39
- "tests": [
40
- {
41
- "description": "ref within ref valid",
42
- "data": 1,
43
- "valid": true
44
- },
45
- {
46
- "description": "ref within ref invalid",
47
- "data": "a",
48
- "valid": false
49
- }
50
- ]
51
- },
52
- {
53
- "description": "change resolution scope",
54
- "schema": {
55
- "id": "http://localhost:1234/",
56
- "items": {
57
- "id": "folder/",
58
- "items": {"$ref": "folderInteger.json"}
59
- }
60
- },
61
- "tests": [
62
- {
63
- "description": "changed scope ref valid",
64
- "data": [[1]],
65
- "valid": true
66
- },
67
- {
68
- "description": "changed scope ref invalid",
69
- "data": [["a"]],
70
- "valid": false
71
- }
72
- ]
73
- }
74
- ]
@@ -1,53 +0,0 @@
1
- [
2
- {
3
- "description": "required validation",
4
- "schema": {
5
- "properties": {
6
- "foo": {"required" : true},
7
- "bar": {}
8
- }
9
- },
10
- "tests": [
11
- {
12
- "description": "present required property is valid",
13
- "data": {"foo": 1},
14
- "valid": true
15
- },
16
- {
17
- "description": "non-present required property is invalid",
18
- "data": {"bar": 1},
19
- "valid": false
20
- }
21
- ]
22
- },
23
- {
24
- "description": "required default validation",
25
- "schema": {
26
- "properties": {
27
- "foo": {}
28
- }
29
- },
30
- "tests": [
31
- {
32
- "description": "not required by default",
33
- "data": {},
34
- "valid": true
35
- }
36
- ]
37
- },
38
- {
39
- "description": "required explicitly false validation",
40
- "schema": {
41
- "properties": {
42
- "foo": {"required": false}
43
- }
44
- },
45
- "tests": [
46
- {
47
- "description": "not required if required is false",
48
- "data": {},
49
- "valid": true
50
- }
51
- ]
52
- }
53
- ]
@@ -1,489 +0,0 @@
1
- [
2
- {
3
- "description": "integer type matches integers",
4
- "schema": {"type": "integer"},
5
- "tests": [
6
- {
7
- "description": "an integer is an integer",
8
- "data": 1,
9
- "valid": true
10
- },
11
- {
12
- "description": "a float is not an integer",
13
- "data": 1.1,
14
- "valid": false
15
- },
16
- {
17
- "description": "a string is not an integer",
18
- "data": "foo",
19
- "valid": false
20
- },
21
- {
22
- "description": "a string is still not an integer, even if it looks like one",
23
- "data": "1",
24
- "valid": false
25
- },
26
- {
27
- "description": "an object is not an integer",
28
- "data": {},
29
- "valid": false
30
- },
31
- {
32
- "description": "an array is not an integer",
33
- "data": [],
34
- "valid": false
35
- },
36
- {
37
- "description": "a boolean is not an integer",
38
- "data": true,
39
- "valid": false
40
- },
41
- {
42
- "description": "null is not an integer",
43
- "data": null,
44
- "valid": false
45
- }
46
- ]
47
- },
48
- {
49
- "description": "number type matches numbers",
50
- "schema": {"type": "number"},
51
- "tests": [
52
- {
53
- "description": "an integer is a number",
54
- "data": 1,
55
- "valid": true
56
- },
57
- {
58
- "description": "a float is a number",
59
- "data": 1.1,
60
- "valid": true
61
- },
62
- {
63
- "description": "a string is not a number",
64
- "data": "foo",
65
- "valid": false
66
- },
67
- {
68
- "description": "a string is still not a number, even if it looks like one",
69
- "data": "1",
70
- "valid": false
71
- },
72
- {
73
- "description": "an object is not a number",
74
- "data": {},
75
- "valid": false
76
- },
77
- {
78
- "description": "an array is not a number",
79
- "data": [],
80
- "valid": false
81
- },
82
- {
83
- "description": "a boolean is not a number",
84
- "data": true,
85
- "valid": false
86
- },
87
- {
88
- "description": "null is not a number",
89
- "data": null,
90
- "valid": false
91
- }
92
- ]
93
- },
94
- {
95
- "description": "string type matches strings",
96
- "schema": {"type": "string"},
97
- "tests": [
98
- {
99
- "description": "1 is not a string",
100
- "data": 1,
101
- "valid": false
102
- },
103
- {
104
- "description": "a float is not a string",
105
- "data": 1.1,
106
- "valid": false
107
- },
108
- {
109
- "description": "a string is a string",
110
- "data": "foo",
111
- "valid": true
112
- },
113
- {
114
- "description": "a string is still a string, even if it looks like a number",
115
- "data": "1",
116
- "valid": true
117
- },
118
- {
119
- "description": "an object is not a string",
120
- "data": {},
121
- "valid": false
122
- },
123
- {
124
- "description": "an array is not a string",
125
- "data": [],
126
- "valid": false
127
- },
128
- {
129
- "description": "a boolean is not a string",
130
- "data": true,
131
- "valid": false
132
- },
133
- {
134
- "description": "null is not a string",
135
- "data": null,
136
- "valid": false
137
- }
138
- ]
139
- },
140
- {
141
- "description": "object type matches objects",
142
- "schema": {"type": "object"},
143
- "tests": [
144
- {
145
- "description": "an integer is not an object",
146
- "data": 1,
147
- "valid": false
148
- },
149
- {
150
- "description": "a float is not an object",
151
- "data": 1.1,
152
- "valid": false
153
- },
154
- {
155
- "description": "a string is not an object",
156
- "data": "foo",
157
- "valid": false
158
- },
159
- {
160
- "description": "an object is an object",
161
- "data": {},
162
- "valid": true
163
- },
164
- {
165
- "description": "an array is not an object",
166
- "data": [],
167
- "valid": false
168
- },
169
- {
170
- "description": "a boolean is not an object",
171
- "data": true,
172
- "valid": false
173
- },
174
- {
175
- "description": "null is not an object",
176
- "data": null,
177
- "valid": false
178
- }
179
- ]
180
- },
181
- {
182
- "description": "array type matches arrays",
183
- "schema": {"type": "array"},
184
- "tests": [
185
- {
186
- "description": "an integer is not an array",
187
- "data": 1,
188
- "valid": false
189
- },
190
- {
191
- "description": "a float is not an array",
192
- "data": 1.1,
193
- "valid": false
194
- },
195
- {
196
- "description": "a string is not an array",
197
- "data": "foo",
198
- "valid": false
199
- },
200
- {
201
- "description": "an object is not an array",
202
- "data": {},
203
- "valid": false
204
- },
205
- {
206
- "description": "an array is an array",
207
- "data": [],
208
- "valid": true
209
- },
210
- {
211
- "description": "a boolean is not an array",
212
- "data": true,
213
- "valid": false
214
- },
215
- {
216
- "description": "null is not an array",
217
- "data": null,
218
- "valid": false
219
- }
220
- ]
221
- },
222
- {
223
- "description": "boolean type matches booleans",
224
- "schema": {"type": "boolean"},
225
- "tests": [
226
- {
227
- "description": "an integer is not a boolean",
228
- "data": 1,
229
- "valid": false
230
- },
231
- {
232
- "description": "a float is not a boolean",
233
- "data": 1.1,
234
- "valid": false
235
- },
236
- {
237
- "description": "a string is not a boolean",
238
- "data": "foo",
239
- "valid": false
240
- },
241
- {
242
- "description": "an object is not a boolean",
243
- "data": {},
244
- "valid": false
245
- },
246
- {
247
- "description": "an array is not a boolean",
248
- "data": [],
249
- "valid": false
250
- },
251
- {
252
- "description": "a boolean is a boolean",
253
- "data": true,
254
- "valid": true
255
- },
256
- {
257
- "description": "null is not a boolean",
258
- "data": null,
259
- "valid": false
260
- }
261
- ]
262
- },
263
- {
264
- "description": "null type matches only the null object",
265
- "schema": {"type": "null"},
266
- "tests": [
267
- {
268
- "description": "an integer is not null",
269
- "data": 1,
270
- "valid": false
271
- },
272
- {
273
- "description": "a float is not null",
274
- "data": 1.1,
275
- "valid": false
276
- },
277
- {
278
- "description": "a string is not null",
279
- "data": "foo",
280
- "valid": false
281
- },
282
- {
283
- "description": "an object is not null",
284
- "data": {},
285
- "valid": false
286
- },
287
- {
288
- "description": "an array is not null",
289
- "data": [],
290
- "valid": false
291
- },
292
- {
293
- "description": "a boolean is not null",
294
- "data": true,
295
- "valid": false
296
- },
297
- {
298
- "description": "null is null",
299
- "data": null,
300
- "valid": true
301
- }
302
- ]
303
- },
304
- {
305
- "description": "any type matches any type",
306
- "schema": {"type": "any"},
307
- "tests": [
308
- {
309
- "description": "any type includes integers",
310
- "data": 1,
311
- "valid": true
312
- },
313
- {
314
- "description": "any type includes float",
315
- "data": 1.1,
316
- "valid": true
317
- },
318
- {
319
- "description": "any type includes string",
320
- "data": "foo",
321
- "valid": true
322
- },
323
- {
324
- "description": "any type includes object",
325
- "data": {},
326
- "valid": true
327
- },
328
- {
329
- "description": "any type includes array",
330
- "data": [],
331
- "valid": true
332
- },
333
- {
334
- "description": "any type includes boolean",
335
- "data": true,
336
- "valid": true
337
- },
338
- {
339
- "description": "any type includes null",
340
- "data": null,
341
- "valid": true
342
- }
343
- ]
344
- },
345
- {
346
- "description": "multiple types can be specified in an array",
347
- "schema": {"type": ["integer", "string"]},
348
- "tests": [
349
- {
350
- "description": "an integer is valid",
351
- "data": 1,
352
- "valid": true
353
- },
354
- {
355
- "description": "a string is valid",
356
- "data": "foo",
357
- "valid": true
358
- },
359
- {
360
- "description": "a float is invalid",
361
- "data": 1.1,
362
- "valid": false
363
- },
364
- {
365
- "description": "an object is invalid",
366
- "data": {},
367
- "valid": false
368
- },
369
- {
370
- "description": "an array is invalid",
371
- "data": [],
372
- "valid": false
373
- },
374
- {
375
- "description": "a boolean is invalid",
376
- "data": true,
377
- "valid": false
378
- },
379
- {
380
- "description": "null is invalid",
381
- "data": null,
382
- "valid": false
383
- }
384
- ]
385
- },
386
- {
387
- "description": "types can include schemas",
388
- "schema": {
389
- "type": [
390
- "array",
391
- {"type": "object"}
392
- ]
393
- },
394
- "tests": [
395
- {
396
- "description": "an integer is invalid",
397
- "data": 1,
398
- "valid": false
399
- },
400
- {
401
- "description": "a string is invalid",
402
- "data": "foo",
403
- "valid": false
404
- },
405
- {
406
- "description": "a float is invalid",
407
- "data": 1.1,
408
- "valid": false
409
- },
410
- {
411
- "description": "an object is valid",
412
- "data": {},
413
- "valid": true
414
- },
415
- {
416
- "description": "an array is valid",
417
- "data": [],
418
- "valid": true
419
- },
420
- {
421
- "description": "a boolean is invalid",
422
- "data": true,
423
- "valid": false
424
- },
425
- {
426
- "description": "null is invalid",
427
- "data": null,
428
- "valid": false
429
- }
430
- ]
431
- },
432
- {
433
- "description":
434
- "when types includes a schema it should fully validate the schema",
435
- "schema": {
436
- "type": [
437
- "integer",
438
- {
439
- "properties": {
440
- "foo": {"type": "null"}
441
- }
442
- }
443
- ]
444
- },
445
- "tests": [
446
- {
447
- "description": "an integer is valid",
448
- "data": 1,
449
- "valid": true
450
- },
451
- {
452
- "description": "an object is valid only if it is fully valid",
453
- "data": {"foo": null},
454
- "valid": true
455
- },
456
- {
457
- "description": "an object is invalid otherwise",
458
- "data": {"foo": "bar"},
459
- "valid": false
460
- }
461
- ]
462
- },
463
- {
464
- "description": "types from separate schemas are merged",
465
- "schema": {
466
- "type": [
467
- {"type": ["string"]},
468
- {"type": ["array", "null"]}
469
- ]
470
- },
471
- "tests": [
472
- {
473
- "description": "an integer is invalid",
474
- "data": 1,
475
- "valid": false
476
- },
477
- {
478
- "description": "a string is valid",
479
- "data": "foo",
480
- "valid": true
481
- },
482
- {
483
- "description": "an array is valid",
484
- "data": [1, 2, 3],
485
- "valid": true
486
- }
487
- ]
488
- }
489
- ]