1+ import sys
2+
13import pytest
24from fastjsonschema import JsonSchemaException
35
@@ -213,6 +215,9 @@ def test_valid_vdom(value):
213215 validate_vdom_json (value )
214216
215217
218+ @pytest .mark .skipif (
219+ sys .version_info < (3 , 10 ), reason = "error messages are different in Python<3.10"
220+ )
216221@pytest .mark .parametrize (
217222 "value, error_message_pattern" ,
218223 [
@@ -230,34 +235,34 @@ def test_valid_vdom(value):
230235 ),
231236 (
232237 {"tagName" : "tag" , "children" : None },
233- r"data must be array" ,
238+ r"data\.children must be array" ,
234239 ),
235240 (
236241 {"tagName" : "tag" , "children" : [None ]},
237- r"data must be object or string" ,
242+ r"data\.children\[{data_x}\] must be object or string" ,
238243 ),
239244 (
240245 {"tagName" : "tag" , "children" : [{"tagName" : None }]},
241- r"data\.tagName must be string" ,
246+ r"data\.children\[{data_x}\]\. tagName must be string" ,
242247 ),
243248 (
244249 {"tagName" : "tag" , "attributes" : None },
245- r"data.attributes must be object" ,
250+ r"data\ .attributes must be object" ,
246251 ),
247252 (
248253 {"tagName" : "tag" , "eventHandlers" : None },
249- r"data must be object" ,
254+ r"data\.eventHandlers must be object" ,
250255 ),
251256 (
252257 {"tagName" : "tag" , "eventHandlers" : {"onEvent" : None }},
253- r"data must be object" ,
258+ r"data\.eventHandlers\.{data_key} must be object" ,
254259 ),
255260 (
256261 {
257262 "tagName" : "tag" ,
258263 "eventHandlers" : {"onEvent" : {}},
259264 },
260- r"data must contain \['target'\] properties" ,
265+ r"data\.eventHandlers\.{data_key}\ must contain \['target'\] properties" ,
261266 ),
262267 (
263268 {
@@ -269,7 +274,7 @@ def test_valid_vdom(value):
269274 }
270275 },
271276 },
272- r"data\.preventDefault must be boolean" ,
277+ r"data\.eventHandlers\.{data_key}\. preventDefault must be boolean" ,
273278 ),
274279 (
275280 {
@@ -281,29 +286,29 @@ def test_valid_vdom(value):
281286 }
282287 },
283288 },
284- r"data\.stopPropagation must be boolean" ,
289+ r"data\.eventHandlers\.{data_key}\. stopPropagation must be boolean" ,
285290 ),
286291 (
287292 {"tagName" : "tag" , "importSource" : None },
288- r"data must be object" ,
293+ r"data\.importSource must be object" ,
289294 ),
290295 (
291296 {"tagName" : "tag" , "importSource" : {}},
292- r"data must contain \['source'\] properties" ,
297+ r"data\.importSource must contain \['source'\] properties" ,
293298 ),
294299 (
295300 {
296301 "tagName" : "tag" ,
297302 "importSource" : {"source" : "something" , "fallback" : 0 },
298303 },
299- r"data\.fallback must be object or string or null" ,
304+ r"data\.importSource\. fallback must be object or string or null" ,
300305 ),
301306 (
302307 {
303308 "tagName" : "tag" ,
304309 "importSource" : {"source" : "something" , "fallback" : {"tagName" : None }},
305310 },
306- r"data.tagName must be string" ,
311+ r"data\.importSource\.fallback\ .tagName must be string" ,
307312 ),
308313 ],
309314)
0 commit comments