+
    P4i·L  ã                   ó    € ^ RI Ht ^ RIt^ RIHt ^ RIHt  ! R R]4      t ! R R]4      t ! R	 R
]4      t	 ! R R]4      t
 ! R R]4      tR# )é    )ÚTestCaseN)Ú
exceptions)Ú_LATEST_VERSIONc                   ó€   a € ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tRtV tR# )ÚTestBestMatchc                ó2  € \        \        V4      P                  V4      4      p\        P                  ! \        V4      4      p\        P                  ! \        V4      4      pV P                  VP                  4       VP                  4       R V RV 24       V# )zNo consistent best match!
Got: z

Then: )	Úlistr   Úiter_errorsr   Ú
best_matchÚiterÚreversedÚassertEqualÚ	_contents)ÚselfÚinstanceÚschemaÚerrorsÚbestÚreversed_bests   &&&   ÚB/usr/lib/python3/dist-packages/jsonschema/tests/test_exceptions.pyÚbest_match_ofÚTestBestMatch.best_match_of	   s€   € Ü”o fÓ-×9Ñ9¸(ÓCÓDˆÜ×$Ò$¤T¨&£\Ó2ˆÜ"×-Ò-¬h°vÓ.>Ó?ˆØ×ÑØ�N‰NÓØ×#Ñ#Ó%Ø.¨t¨f°J¸}¸oÐNô	
ð
 ˆó    c                óˆ   € R RR^R RRR/////pV P                  RR. //VR7      pV P                  VP                  R4       R# )Ú
propertiesÚfooÚminPropertiesÚbarÚtypeÚobject©r   r   N©r   r   Ú	validator©r   r   r   s   &  r   Ú(test_shallower_errors_are_better_matchesÚ6TestBestMatch.test_shallower_errors_are_better_matches   sa   € àØØ# QØ  5¨6°8Ð*<Ð"=ððð
ˆð ×!Ñ!¨E°E¸2°;Ð+?ÈÐ!ÓOˆØ×Ñ˜Ÿ™¨Ö9r   c                óŒ   € R^RRR/RR/.RRR/RR/./pV P                  / VR7      pV P                  VP                  R4       R# )	zV
A property you *must* match is probably better than one you have to
match a part of.
r   ÚanyOfr   ÚstringÚnumberÚoneOfr!   Nr"   r$   s   &  r   Ú%test_oneOf_and_anyOf_are_weak_matchesÚ3TestBestMatch.test_oneOf_and_anyOf_are_weak_matches    sc   € ð ˜QØ�v˜xÐ(¨6°8Ð*<Ð=Ø�v˜xÐ(¨6°8Ð*<Ð=ð
ˆð
 ×!Ñ!¨2°fÐ!Ó=ˆØ×Ñ˜Ÿ™¨Ö9r   c                ó�   € RRRRR/RRRR///.///pV P                  RR^//VR7      pV P                  VP                  R4       R	# )
a  
If the most relevant error is an anyOf, then we traverse its context
and select the otherwise *least* relevant error, since in this case
that means the most specific, deep, error inside the instance.

I.e. since only one of the schemas must match, we look for the most
relevant one.
r   r   r(   r   r)   r   Úarrayr!   N©r   r   Úvalidator_valuer$   s   &  r   Ú8test_if_the_most_relevant_error_is_anyOf_it_is_traversedÚFTestBestMatch.test_if_the_most_relevant_error_is_anyOf_it_is_traversed.   ós   € ð ØØØ Ð*Ø%¨°¸Ð/@Ð'AÐBðððð	
ˆð ×!Ñ!¨E°E¸2°;Ð+?ÈÐ!ÓOˆØ×Ñ˜×-Ñ-¨wÖ7r   c                ó~   € RRR/RR/RR/./pV P                  . VR7      pV P                  VP                  R4       R# )zz
We don't traverse into an anyOf (as above) if all of its context errors
seem to be equally "wrong" against the instance.
r(   r   r)   Úintegerr    r!   Nr"   r$   s   &  r   Ú3test_no_anyOf_traversal_for_equally_relevant_errorsÚATestBestMatch.test_no_anyOf_traversal_for_equally_relevant_errorsE   óV   € ð Ø˜Ð"Ø˜Ð#Ø˜Ð"ðð
ˆð ×!Ñ!¨2°fÐ!Ó=ˆØ×Ñ˜Ÿ™¨Ö1r   c                ór   € RRR/./pV P                  . VR7      pV P                  VP                  R4       R# )zl
We *do* traverse anyOf with a single nested error, even though it is
vacuously equally relevant to itself.
r(   r   r)   r!   Nr"   r$   s   &  r   Ú6test_anyOf_traversal_for_single_equally_relevant_errorÚDTestBestMatch.test_anyOf_traversal_for_single_equally_relevant_errorU   óF   € ð Ø˜Ð"ðð
ˆð
 ×!Ñ!¨2°fÐ!Ó=ˆØ×Ñ˜Ÿ™¨Ö0r   c                ó�   € RRRRR/RRRR///.///pV P                  RR^//VR7      pV P                  VP                  R4       R	# )
a  
If the most relevant error is an oneOf, then we traverse its context
and select the otherwise *least* relevant error, since in this case
that means the most specific, deep, error inside the instance.

I.e. since only one of the schemas must match, we look for the most
relevant one.
r   r   r+   r   r)   r   r/   r!   Nr0   r$   s   &  r   Ú8test_if_the_most_relevant_error_is_oneOf_it_is_traversedÚFTestBestMatch.test_if_the_most_relevant_error_is_oneOf_it_is_traversedc   r4   r   c                ó~   € RRR/RR/RR/./pV P                  . VR7      pV P                  VP                  R4       R# )zz
We don't traverse into an oneOf (as above) if all of its context errors
seem to be equally "wrong" against the instance.
r+   r   r)   r6   r    r!   Nr"   r$   s   &  r   Ú3test_no_oneOf_traversal_for_equally_relevant_errorsÚATestBestMatch.test_no_oneOf_traversal_for_equally_relevant_errorsz   r9   r   c                ór   € RRR/./pV P                  . VR7      pV P                  VP                  R4       R# )zl
We *do* traverse oneOf with a single nested error, even though it is
vacuously equally relevant to itself.
r+   r   r)   r!   Nr"   r$   s   &  r   Ú6test_oneOf_traversal_for_single_equally_relevant_errorÚDTestBestMatch.test_oneOf_traversal_for_single_equally_relevant_errorŠ   r=   r   c                ó�   € RRRRR/RRRR///.///pV P                  RR^//VR7      pV P                  VP                  R4       R	# )
z�
Now, if the error is allOf, we traverse but select the *most* relevant
error from the context, because all schemas here must match anyways.
r   r   ÚallOfr   r)   r   r/   r!   Nr0   r$   s   &  r   Ú8test_if_the_most_relevant_error_is_allOf_it_is_traversedÚFTestBestMatch.test_if_the_most_relevant_error_is_allOf_it_is_traversed˜   ss   € ð ØØØ Ð*Ø%¨°¸Ð/@Ð'AÐBðððð	
ˆð ×!Ñ!¨E°E¸2°;Ð+?ÈÐ!ÓOˆØ×Ñ˜×-Ñ-¨xÖ8r   c           
     óœ   € RRRRR/RRR/RRRR///././//pV P                  RR^//VR7      pV P                  VP                  R4       R	# )
zX
We traverse into nested contexts (a oneOf containing an error in a
nested oneOf here).
r   r   r+   r   r)   r   r/   r!   Nr0   r$   s   &  r   Útest_nested_context_for_oneOfÚ+TestBestMatch.test_nested_context_for_oneOf«   s�   € ð ØØØ Ð*à#Ø!'¨Ð 2à$0Ø(-°¸Ð/@ð3&ð!"ð&ð	ðððð
ˆð& ×!Ñ!¨E°E¸2°;Ð+?ÈÐ!ÓOˆØ×Ñ˜×-Ñ-¨wÖ7r   c                ó  € R RRRRR^/RRR^
/.///pV P                  RR/VR	7      pV P                  VP                  R4       R RRRRR^
/RRR^/.///pV P                  RR/VR	7      pV P                  VP                  R4       R
# )r   r   r(   r   r/   ÚminItemsr)   Ú	minLengthr   r!   Nr"   ©r   r   r   Ú	reordereds   &   r   Ú"test_it_prioritizes_matching_typesÚ0TestBestMatch.test_it_prioritizes_matching_typesÇ   sÐ   € àØØØ ¨*°aÐ8Ø ¨;¸Ð;ðððð	
ˆð ×!Ñ!¨E°5¨>À&Ð!ÓIˆØ×Ñ˜Ÿ™¨Ô5ð ØØØ ¨;¸Ð;Ø ¨*°aÐ8ðððð	
ˆ	ð ×!Ñ!¨E°5¨>À)Ð!ÓLˆØ×Ñ˜Ÿ™¨Ö5r   c                ó  € R RRRRR.R^/RRR.R	^
/.///pV P                  RR
/VR7      pV P                  VP                  R	4       R RRRRR	^
/RRR^/.///pV P                  RR
/VR7      pV P                  VP                  R	4       R# )r   r   r(   r   r/   r    rO   r6   r)   rP   r   r!   Nr"   rQ   s   &   r   Ú(test_it_prioritizes_matching_union_typesÚ6TestBestMatch.test_it_prioritizes_matching_union_typesâ   sÚ   € àØØØ '¨8Ð!4°jÀ!ÐDØ )¨XÐ!6¸ÀRÐHðððð	
ˆð ×!Ñ!¨E°5¨>À&Ð!ÓIˆØ×Ñ˜Ÿ™¨Ô5ð ØØØ ¨;¸Ð;Ø ¨*°aÐ8ðððð	
ˆ	ð ×!Ñ!¨E°5¨>À)Ð!ÓLˆØ×Ñ˜Ÿ™¨Ö5r   c                ór   € R RR//pV P                  RR/VR7      pV P                  VP                  4       R# )r   r   Fr   r!   N)r   ÚassertIsNoner#   r$   s   &  r   Útest_boolean_schemasÚ"TestBestMatch.test_boolean_schemasý   s;   € Ø ¨ Ð/ˆØ×!Ñ!¨E°5¨>À&Ð!ÓIˆØ×Ñ˜$Ÿ.™.Ö)r   c                óÄ   € \        R ^/4      pVP                  / 4      w  pV P                  \        P                  ! VP                  / 4      4      P
                  R 4       R# )r   N)r   r
   r   r   r   r#   )r   r#   Úerrors   &  r   Útest_one_errorÚTestBestMatch.test_one_error  sS   € Ü# _°aÐ$8Ó9ˆ	Ø×&Ñ& rÓ*‰ˆØ×ÑÜ×!Ò! )×"7Ñ"7¸Ó";Ó<×FÑFØö	
r   c                ó„   € \        / 4      pV P                  \        P                  ! VP	                  / 4      4      4       R # )N)r   rY   r   r   r
   )r   r#   s   & r   Útest_no_errorsÚTestBestMatch.test_no_errors
  s0   € Ü# BÓ'ˆ	Ø×Ñœ*×/Ò/°	×0EÑ0EÀbÓ0IÓJÖKr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r%   r,   r2   r7   r;   r?   rB   rE   rI   rL   rS   rV   rZ   r^   ra   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s\   ø‡ € ò	ò
:ò:ò8ò.2ò 1ò8ò.2ò 1ò9ò&8ò86ò66ò6*ò

÷Lð Lr   r   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚTestByRelevancei  c                ó   € \         P                  ! R R.R7      p\         P                  ! RRR.R7      p\        W.\         P                  R7      pV P	                  W14       \        W!.\         P                  R7      pV P	                  W14       R# )úOh no!Úbaz©ÚpathúOh yes!r   r   ©ÚkeyN)r   ÚValidationErrorÚmaxÚ	relevanceÚassertIs)r   ÚshallowÚdeepÚmatchs   &   r   Ú#test_short_paths_are_better_matchesÚ3TestByRelevance.test_short_paths_are_better_matches  sl   € Ü×,Ò,¨X¸U¸GÔDˆÜ×)Ò)¨)¸5À%¸.ÔIˆÜ�W�O¬×)=Ñ)=Ô>ˆØ�‰�eÔ%ä�T�O¬×)=Ñ)=Ô>ˆØ�‰�eÖ%r   c                óÌ  € \         P                  ! R . R7      p\         P                  ! RR.R7      p\        W.\         P                  R7      pT P	                  V Uu. uF  p\        VP                  4      NK  	  upR.. .4       \        W!.\         P                  R7      pT P	                  V Uu. uF  p\        VP                  4      NK  	  upR.. .4       R# u upi u upi )ro   rq   rs   r   rt   N)r   rv   Úsortedrx   r   r	   rr   )r   rz   r{   r   r]   s   &    r   Ú*test_global_errors_are_even_better_matchesÚ:TestByRelevance.test_global_errors_are_even_better_matches  sÀ   € Ü×,Ò,¨X¸BÔ?ˆÜ×)Ò)¨)¸5¸'ÔBˆä˜˜¬Z×-AÑ-AÔBˆØ×ÑÙ+1Ó2©6 %ŒT�%—*‘*Ö©6Ñ2ØˆW�bˆMô	
ô
 ˜˜¬Z×-AÑ-AÔBˆØ×ÑÙ+1Ó2©6 %ŒT�%—*‘*Ö©6Ñ2ØˆW�bˆMö	
ùò 3ùò 3s   ÁCÂ1C!c                ó  € \         P                  ! R . RR7      p\         P                  ! R. RR7      p\         P                  ! RR7      p\        W.VR7      pV P	                  WB4       \        W!.VR7      pV P	                  WB4       R# )ro   Úa©rr   r#   rs   Úb)Úweakrt   N©r   rv   Úby_relevancerw   ry   )r   r‡   Únormalr   r|   s   &    r   Ú%test_weak_keywords_are_lower_priorityÚ5TestByRelevance.test_weak_keywords_are_lower_priority)  sn   € Ü×)Ò)¨(¸ÀsÔKˆÜ×+Ò+¨I¸BÈ#ÔNˆä×,Ò,°#Ô6ˆ
ä�T�N¨
Ô3ˆØ�‰�eÔ$ä�V�N¨
Ô3ˆØ�‰�eÖ$r   c                óL  € \         P                  ! R . RR7      p\         P                  ! R. RR7      p\         P                  ! R. RR7      p\         P                  ! RRR7      p\        WV.VR7      pV P	                  WS4       \        W2V.VR7      pV P	                  WS4       R	# )
ro   r„   r…   rs   r†   zOh fine!Úc)r‡   Ústrongrt   Nrˆ   )r   r‡   rŠ   r�   r   r|   s   &     r   Ú(test_strong_keywords_are_higher_priorityÚ8TestByRelevance.test_strong_keywords_are_higher_priority5  sŠ   € Ü×)Ò)¨(¸ÀsÔKˆÜ×+Ò+¨I¸BÈ#ÔNˆÜ×+Ò+¨J¸RÈ3ÔOˆä×,Ò,°#¸cÔBˆ
ä�T 6Ð*°
Ô;ˆØ�‰�eÔ$ä�V TÐ*°
Ô;ˆØ�‰�eÖ$r   rc   N)
rd   re   rf   rg   r}   r�   r‹   r�   rh   ri   rj   s   @r   rm   rm     s   ø‡ € ò&ò
ò 
%÷%ð %r   rm   c                   óh   a € ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )ÚTestErrorTreeiC  c                óÔ   € \        ^4       Uu. uF  p\        P                  ! RVR7      NK  	  pp\        P                  ! V4      pV P	                  VP
                  ^4       R# u upi )é   Ú	Something©r#   N)Úranger   rv   Ú	ErrorTreer   Útotal_errors)r   Úir   Útrees   &   r   Ú/test_it_knows_how_many_total_errors_it_containsÚ=TestErrorTree.test_it_knows_how_many_total_errors_it_containsD  sb   € ô ˜1”Xó
á�ô ×&Ò& {¸a×@Ùð 	ð 
ô ×#Ò# FÓ+ˆØ×Ñ˜×*Ñ*¨AÖ.ùò
s   Ž!A%c                óŠ   € \         P                  ! R R.R7      .p\         P                  ! V4      pV P                  RV4       R# )ú	a messager   rq   N)r   rv   r™   ÚassertIn©r   r   rœ   s   &  r   Ú1test_it_contains_an_item_if_the_item_had_an_errorÚ?TestErrorTree.test_it_contains_an_item_if_the_item_had_an_errorM  s7   € Ü×,Ò,¨[À¸wÔGÐHˆÜ×#Ò# FÓ+ˆØ�‰�e˜TÖ"r   c                óŠ   € \         P                  ! R R.R7      .p\         P                  ! V4      pV P                  RV4       R# )r    r   rq   r   N)r   rv   r™   ÚassertNotInr¢   s   &  r   Ú9test_it_does_not_contain_an_item_if_the_item_had_no_errorÚGTestErrorTree.test_it_does_not_contain_an_item_if_the_item_had_no_errorR  s9   € Ü×,Ò,¨[À¸wÔGÐHˆÜ×#Ò# FÓ+ˆØ×Ñ˜ Ö%r   c                ó    € \         P                  ! R RR7      p\         P                  ! V.4      pV P                  VP                  RV/4       R# )r    r   r—   N©r   rv   r™   r   r   ©r   r]   rœ   s   &  r   Ú/test_keywords_that_failed_appear_in_errors_dictÚ=TestErrorTree.test_keywords_that_failed_appear_in_errors_dictW  s>   € Ü×*Ò*¨;À%ÔHˆÜ×#Ò# U GÓ,ˆØ×Ñ˜Ÿ™ u¨e nÖ5r   c                óü   € \         P                  ! R R.R7      \         P                  ! RR^ .R7      .p\         P                  ! V4      pV P                  ^ VR,          4       V P	                  ^VR,          4       R# )za bar messager   rq   za bar -> 0 messageN)r   rv   r™   r¡   r¦   r¢   s   &  r   Ú1test_it_creates_a_child_tree_for_each_nested_pathÚ?TestErrorTree.test_it_creates_a_child_tree_for_each_nested_path\  sh   € ä×&Ò& ¸e¸WÔEÜ×&Ò&Ð';À5È!À*ÔMð
ˆô ×#Ò# FÓ+ˆØ�‰�a˜˜e�Ô%Ø×Ñ˜˜D �KÖ(r   c                óú   € \         P                  ! R RR^ .R7      \         P                  ! RRR^ .R7      r!\         P                  ! W.4      pV P                  VR,          ^ ,          P                  RVRV/4       R# )Ú1r   r   )r#   rr   Ú2ÚquuxNrª   ©r   Úe1Úe2rœ   s   &   r   Ú+test_children_have_their_errors_dicts_builtÚ9TestErrorTree.test_children_have_their_errors_dicts_builte  sn   € ä×&Ò& s°eÀ5È!À*ÔMÜ×&Ò& s°fÀEÈ1À:ÔNð ô ×#Ò# R HÓ-ˆØ×Ñ˜˜e� Q�×.Ñ.°¸¸FÀBÐ0GÖHr   c                ó¢   € \         P                  ! R RRR.RR7      \         P                  ! RRR^.R	R7      r!\         P                  ! W.4       R
# )r²   r   r   Úbar2Úi1©r#   rr   r   r³   r´   ÚfoobarÚi2N)r   rv   r™   )r   r¶   r·   s   &  r   Ú"test_multiple_errors_with_instanceÚ0TestErrorTree.test_multiple_errors_with_instancem  sW   € ä×&Ò&ØØØ˜V�_Øô	ô
 ×&Ò&ØØ Ø �]Øô	ð ô 	×Ò˜b˜XÖ&r   c                óì   € \         P                  ! R R. R7      p\         P                  ! V.4      pV P                  \        4      ;_uu_ 4        V^ ,           RRR4       R#   + '       g   i     R# ; i)Ú123r   )r#   r   N)r   rv   r™   ÚassertRaisesÚ
IndexErrorr«   s   &  r   Ú>test_it_does_not_contain_subtrees_that_are_not_in_the_instanceÚLTestErrorTree.test_it_does_not_contain_subtrees_that_are_not_in_the_instance|  sO   € Ü×*Ò*¨5¸EÈBÔOˆÜ×#Ò# U GÓ,ˆà×Ñœz×*Õ*Ø�ŽG÷ +×*×*Ò*ús   Á
A"Á"A3	c                ó¸   € \         P                  ! RR/ R.R7      p\         P                  ! V.4      pV P                  VR,          \         P                  4       R# )zt
If a keyword refers to a path that isn't in the instance, the
tree still properly returns a subtree for that path.
r    r   )r#   r   rr   N)r   rv   r™   ÚassertIsInstancer«   s   &  r   Ú9test_if_its_in_the_tree_anyhow_it_does_not_raise_an_errorÚGTestErrorTree.test_if_its_in_the_tree_anyhow_it_does_not_raise_an_errorƒ  sM   € ô ×*Ò*Ø 5°2¸U¸Gô
ˆô ×#Ò# U GÓ,ˆØ×Ñ˜d 5�k¬:×+?Ñ+?Ö@r   c                ó¢   € \         P                  ! R RRR.RR7      p\         P                  ! V.4      pV P                  \	        V4      R4       R# )r²   r   r   r»   r¼   r½   z<ErrorTree (1 total error)>N©r   rv   r™   r   Úreprr«   s   &  r   Útest_repr_singleÚTestErrorTree.test_repr_single�  sK   € Ü×*Ò*ØØØ˜�Øô	
ˆô ×#Ò# U GÓ,ˆØ×Ñœ˜d›Ð%BÖCr   c                óØ   € \         P                  ! R RRR.RR7      \         P                  ! RRR^.R	R7      r!\         P                  ! W.4      pV P                  \	        V4      R
4       R# )r²   r   r   r»   r¼   r½   r³   r´   r¾   r¿   z<ErrorTree (2 total errors)>NrÍ   rµ   s   &   r   Útest_repr_multipleÚ TestErrorTree.test_repr_multiple™  sn   € ä×&Ò&ØØØ˜V�_Øô	ô
 ×&Ò&ØØ Ø �]Øô	ð ô ×#Ò# R HÓ-ˆØ×Ñœ˜d›Ð%CÖDr   c                óh   € \         P                  ! . 4      pV P                  \        V4      R 4       R# )z<ErrorTree (0 total errors)>N)r   r™   r   rÎ   )r   rœ   s   & r   Útest_repr_emptyÚTestErrorTree.test_repr_empty©  s'   € Ü×#Ò# BÓ'ˆØ×Ñœ˜d›Ð%CÖDr   rc   N)rd   re   rf   rg   r�   r£   r§   r¬   r¯   r¸   rÀ   rÆ   rÊ   rÏ   rÒ   rÕ   rh   ri   rj   s   @r   r“   r“   C  sL   ø‡ € ò/ò#ò
&ò
6ò
)òIò'òò
AòDòE÷ Eð Er   r“   c                   ó\   a € ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )ÚTestErrorInitReprStri®  c                ót   € \        R RR^RR/R7      pVP                  V4       \        P                  ! R/ VB # )Úhellor   r)   )Úmessager#   r1   r   r   rc   )ÚdictÚupdater   rv   )r   ÚkwargsÚdefaultss   &, r   Ú
make_errorÚTestErrorInitReprStr.make_error¯  sB   € ÜØØØ$ØØ˜HÐ%ô
ˆð 	�‰˜ÔÜ×)Ò)Ñ5¨HÑ5Ð5r   c                ó  € \         P                  ! V4      P                  R 4      pV P                  ! R/ VB p\	        V4      P                  R 4      w  rEpV P                  WCP                  4       V P                  Wa4       R# )Ú
Nrc   )ÚtextwrapÚdedentÚrstriprà   ÚstrÚ	partitionr   rÛ   )r   ÚexpectedrÞ   r]   Úmessage_lineÚ_Úrests   &&,    r   ÚassertShowsÚ TestErrorInitReprStr.assertShowsº  se   € Ü—?’? 8Ó,×3Ñ3°DÓ9ˆà—’Ñ) &Ñ)ˆÜ # E£
× 4Ñ 4°TÓ :Ñˆ˜Ø×Ñ˜§}¡}Ô5Ø×Ñ˜Ö(r   c                óp   € V P                  4       pV P                  \        VP                  4      ^4       R# )é   N)rà   ÚassertGreaterÚlenÚargs)r   r]   s   & r   Ú!test_it_calls_super_and_sets_argsÚ6TestErrorInitReprStr.test_it_calls_super_and_sets_argsÂ  s&   € Ø—‘Ó!ˆØ×Ñœ3˜uŸz™z›?¨AÖ.r   c                óf   € V P                  \        \        P                  ! R R7      4      R4       R# )zHello!©rÛ   z<ValidationError: 'Hello!'>N)r   rÎ   r   rv   ©r   s   &r   Ú	test_reprÚTestErrorInitReprStr.test_reprÆ  s&   € Ø×ÑÜ”×+Ò+°HÔ=Ó>Ø)ö	
r   c           	     ó  € \         P                  ! R 4      pV P                  \        V4      R 4       RRRRR^RRR//pV FA  p\	        V4      pWC \         P                  ! R/ VB pV P                  \        V4      R 4       KC  	  R# )	rÛ   r#   r   r1   r)   r   r   Nr÷   )r   rv   r   rç   rÜ   )r   r]   rÞ   ÚattrÚks   &    r   Útest_unset_errorÚ%TestErrorInitReprStr.test_unset_errorÌ  s‰   € Ü×*Ò*¨9Ó5ˆØ×Ñœ˜U› YÔ/ð ˜Ø˜xØ˜Ø�v˜xÐ(ð	
ˆó ˆDÜ�V“ˆAØ�Ü×.Ò.Ñ>¸AÑ>ˆEØ×ÑœS ›Z¨Ö3ó	 r   c                ó.   € V P                  R . . R7       R# )zŒ
            Failed validating 'type' in schema:
                {'type': 'string'}

            On instance:
                5
            ©rr   Úschema_pathN©rí   rø   s   &r   Útest_empty_pathsÚ%TestErrorInitReprStr.test_empty_pathsÝ  s"   € Ø×Ñðð Øð 	ö 
	
r   c                ó2   € V P                  R ^ .R.R7       R# )z�
            Failed validating 'type' in schema:
                {'type': 'string'}

            On instance[0]:
                5
            Úitemsr  Nr  rø   s   &r   Útest_one_item_pathsÚ(TestErrorInitReprStr.test_one_item_pathsê  s&   € Ø×Ñðð �Ø ˜	ð 	ö 
	
r   c                ó6   € V P                  R ^ R.. ROR7       R# )z 
            Failed validating 'type' in schema['items'][0]:
                {'type': 'string'}

            On instance[0]['a']:
                5
            r„   r  N)r  r   rð   r  rø   s   &r   Útest_multiple_item_pathsÚ-TestErrorInitReprStr.test_multiple_item_paths÷  s&   € Ø×Ñðð �S�Ú'ð 	ö 
	
r   c                óž   € V P                  R \        \        ^4      4      \        \	        \        ^4      \        ^4      4      4      RR7       R# )a?  
            Failed validating 'maxLength' in schema:
                {0: 0,
                 1: 1,
                 2: 2,
                 3: 3,
                 4: 4,
                 5: 5,
                 6: 6,
                 7: 7,
                 8: 8,
                 9: 9,
                 10: 10,
                 11: 11,
                 12: 12,
                 13: 13,
                 14: 14,
                 15: 15,
                 16: 16,
                 17: 17,
                 18: 18,
                 19: 19}

            On instance:
                [0,
                 1,
                 2,
                 3,
                 4,
                 5,
                 6,
                 7,
                 8,
                 9,
                 10,
                 11,
                 12,
                 13,
                 14,
                 15,
                 16,
                 17,
                 18,
                 19,
                 20,
                 21,
                 22,
                 23,
                 24]
            Ú	maxLength)r   r   r#   N)rí   r	   r˜   rÜ   Úziprø   s   &r   Útest_uses_pprintÚ%TestErrorInitReprStr.test_uses_pprint  sC   € Ø×Ñð1ôd œ% ›)“_ÜœœE "›I¤u¨R£yÓ1Ó2Ø!ðk 	ö 6	
r   c                ó®   a €  ! V 3R lR4      pV! 4       p\         P                  ! RRVRRR7      pS P                  \        V4      \	        V4      4       R# )	z”
Check for #164 which rendered exceptions unusable when a
`ValidationError` involved instances with an `__eq__` method
that returned truthy values.
c                   ó:   <a € ] tR tRt o V3R ltV3R ltRtV tR# )ÚdTestErrorInitReprStr.test_str_works_with_instances_having_overriden_eq_operator.<locals>.DontEQMeBroiD  c                ó*   <€ SP                  R 4       R# ©zDon't!N©Úfail©ÚthisÚotherr   s   &&€r   Ú__eq__ÚkTestErrorInitReprStr.test_str_works_with_instances_having_overriden_eq_operator.<locals>.DontEQMeBro.__eq__E  ó   ø€ Ø—	‘	˜(Ö#r   c                ó*   <€ SP                  R 4       R# r  r  r  s   &&€r   Ú__ne__ÚkTestErrorInitReprStr.test_str_works_with_instances_having_overriden_eq_operator.<locals>.DontEQMeBro.__ne__H  r  r   rc   N)rd   re   rf   rg   r  r   rh   ri   )rk   r   s   @€r   ÚDontEQMeBror  D  s   ù‡ € õ$÷$ó $r   r"  r    r   Úsomer   )r#   r   r1   r   N)r   rv   r¡   rÎ   rç   )r   r"  r   r]   s   f   r   Ú:test_str_works_with_instances_having_overriden_eq_operatorÚOTestErrorInitReprStr.test_str_works_with_instances_having_overriden_eq_operator=  sM   ø€ ÷	$ô 	$ñ “=ˆÜ×*Ò*ØØØØ"Øô
ˆð 	�‰”d˜8“n¤c¨%£jÖ1r   rc   N)rd   re   rf   rg   rà   rí   rô   rù   rþ   r  r  r  r  r$  rh   ri   rj   s   @r   rØ   rØ   ®  s=   ø‡ € ò	6ò)ò/ò
ò4ò"
ò
ò
ò7
÷r2ð 2r   rØ   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestHashableiV  c                ó†   € \        \        P                  ! R 4      .4       \        \        P                  ! R 4      .4       R# )Ú N)Úsetr   rv   ÚSchemaErrorrø   s   &r   Útest_hashableÚTestHashable.test_hashableW  s.   € ÜŒZ×'Ò'¨Ó+Ð,Ô-ÜŒZ×#Ò# BÓ'Ð(Ö)r   rc   N)rd   re   rf   rg   r,  rh   ri   rj   s   @r   r'  r'  V  s   ø‡ € ÷*ð *r   r'  )Úunittestr   rä   Ú
jsonschemar   Újsonschema.validatorsr   r   rm   r“   rØ   r'  rc   r   r   Ú<module>r1     s[   ðÝ Û å !Ý 1ôDL�Hô DLôN1%�hô 1%ôhhE�Hô hEôVe2˜8ô e2ôP*�8ö *r   