1
+ import sys
2
+
1
3
import pytest
2
4
from fastjsonschema import JsonSchemaException
3
5
@@ -213,6 +215,9 @@ def test_valid_vdom(value):
213
215
validate_vdom_json (value )
214
216
215
217
218
+ @pytest .mark .skipif (
219
+ sys .version_info < (3 , 10 ), reason = "error messages are different in Python<3.10"
220
+ )
216
221
@pytest .mark .parametrize (
217
222
"value, error_message_pattern" ,
218
223
[
@@ -230,34 +235,34 @@ def test_valid_vdom(value):
230
235
),
231
236
(
232
237
{"tagName" : "tag" , "children" : None },
233
- r"data must be array" ,
238
+ r"data\.children must be array" ,
234
239
),
235
240
(
236
241
{"tagName" : "tag" , "children" : [None ]},
237
- r"data must be object or string" ,
242
+ r"data\.children\[{data_x}\] must be object or string" ,
238
243
),
239
244
(
240
245
{"tagName" : "tag" , "children" : [{"tagName" : None }]},
241
- r"data\.tagName must be string" ,
246
+ r"data\.children\[{data_x}\]\. tagName must be string" ,
242
247
),
243
248
(
244
249
{"tagName" : "tag" , "attributes" : None },
245
- r"data.attributes must be object" ,
250
+ r"data\ .attributes must be object" ,
246
251
),
247
252
(
248
253
{"tagName" : "tag" , "eventHandlers" : None },
249
- r"data must be object" ,
254
+ r"data\.eventHandlers must be object" ,
250
255
),
251
256
(
252
257
{"tagName" : "tag" , "eventHandlers" : {"onEvent" : None }},
253
- r"data must be object" ,
258
+ r"data\.eventHandlers\.{data_key} must be object" ,
254
259
),
255
260
(
256
261
{
257
262
"tagName" : "tag" ,
258
263
"eventHandlers" : {"onEvent" : {}},
259
264
},
260
- r"data must contain \['target'\] properties" ,
265
+ r"data\.eventHandlers\.{data_key}\ must contain \['target'\] properties" ,
261
266
),
262
267
(
263
268
{
@@ -269,7 +274,7 @@ def test_valid_vdom(value):
269
274
}
270
275
},
271
276
},
272
- r"data\.preventDefault must be boolean" ,
277
+ r"data\.eventHandlers\.{data_key}\. preventDefault must be boolean" ,
273
278
),
274
279
(
275
280
{
@@ -281,29 +286,29 @@ def test_valid_vdom(value):
281
286
}
282
287
},
283
288
},
284
- r"data\.stopPropagation must be boolean" ,
289
+ r"data\.eventHandlers\.{data_key}\. stopPropagation must be boolean" ,
285
290
),
286
291
(
287
292
{"tagName" : "tag" , "importSource" : None },
288
- r"data must be object" ,
293
+ r"data\.importSource must be object" ,
289
294
),
290
295
(
291
296
{"tagName" : "tag" , "importSource" : {}},
292
- r"data must contain \['source'\] properties" ,
297
+ r"data\.importSource must contain \['source'\] properties" ,
293
298
),
294
299
(
295
300
{
296
301
"tagName" : "tag" ,
297
302
"importSource" : {"source" : "something" , "fallback" : 0 },
298
303
},
299
- r"data\.fallback must be object or string or null" ,
304
+ r"data\.importSource\. fallback must be object or string or null" ,
300
305
),
301
306
(
302
307
{
303
308
"tagName" : "tag" ,
304
309
"importSource" : {"source" : "something" , "fallback" : {"tagName" : None }},
305
310
},
306
- r"data.tagName must be string" ,
311
+ r"data\.importSource\.fallback\ .tagName must be string" ,
307
312
),
308
313
],
309
314
)
0 commit comments