Ë
    ùmxi�W ã                  ó´  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d d	lZd d	lZd d	lZd d	lZd d	lZd d
lmZmZ d dlmZ d d	lZd dlmZm Z m!Z!m"Z"m#Z# d„ Z$ G d„ de«      Z% G d„ de«      Z& G d„ de«      Z' G d„ d«      Z( G d„ de(«      Z) G d„ d«      Z* G d„ de*e)e«      Z+ G d„ de*e)e«      Z, G d„ de)e«      Z- G d „ d!e)e«      Z. G d"„ d#e)e«      Z/ G d$„ d%e)e«      Z0 G d&„ d'e«      Z1 G d(„ d)e«      Z2 G d*„ d+e«      Z3 G d,„ d-e«      Z4 G d.„ d/e«      Z5 G d0„ d1e«      Z6d2„ Z7e G d3„ d4«      «       Z8e G d5„ d6«      «       Z9y	)7é    )Úannotations)ÚdequeÚ
namedtuple)Úcontextmanager)ÚDecimal)ÚBytesIO)ÚAny)ÚTestCaseÚmock)Úpathname2urlN)ÚdefineÚfield)ÚDRAFT202012)ÚFormatCheckerÚTypeCheckerÚ
exceptionsÚ	protocolsÚ
validatorsc              #  ól   K  — |D ]+  }|j                  dd«       t        j                  di |¤Ž–— Œ- y ­w)NÚmessagezYou told me to fail!© )Ú
setdefaultr   ÚValidationError)Ú	validatorÚerrorsÚinstanceÚschemaÚeachs        úW/home/htdocs/ttos/venv/lib/python3.12/site-packages/jsonschema/tests/test_validators.pyÚfailr       s8   è ø€ Øò 1ˆØ�‰˜	Ð#9Ô:Ü×(Ñ(Ñ0¨4Ñ0Ó0ñ1ùs   ‚24c                  ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCreateAndExtendc                óÌ  — | j                  | j                  t        j                  t	        t        j                  «      «       | j                  | j                  t        j
                  t	        t        j
                  «      «       ddi| _        dt        i| _        t        «       | _	        t        j                  | j                  | j                  | j                  ¬«      | _        y )Nú$idzsome://meta/schemar    )Úmeta_schemar   Útype_checker)Ú
addCleanupÚassertEqualr   Ú_META_SCHEMASÚdictÚ_VALIDATORSr%   r    r   r&   ÚcreateÚ	Validator©Úselfs    r   ÚsetUpzTestCreateAndExtend.setUp$   s¬   € Ø�‰Ø×ÑÜ×$Ñ$Ü”×)Ñ)Ó*ô	
ð
 	�‰Ø×ÑÜ×"Ñ"Ü”×'Ñ'Ó(ô	
ð "Ð#7Ð8ˆÔØ!¤4˜.ˆŒÜ'›MˆÔÜ#×*Ñ*Ø×(Ñ(Ø—‘Ø×*Ñ*ô
ˆ�ó    c                óè   — | j                  | j                  j                  | j                  j                  | j                  j                  f| j
                  | j                  | j                  f«       y ©N)r(   r-   Ú
VALIDATORSÚMETA_SCHEMAÚTYPE_CHECKERr   r%   r&   r.   s    r   Ú
test_attrszTestCreateAndExtend.test_attrs9   s\   € Ø×Ñà—‘×)Ñ)Ø—‘×*Ñ*Ø—‘×+Ñ+ðð
 —‘Ø× Ñ Ø×!Ñ!ðõ
	
r1   c                ób   — dg i}| j                  | j                  |«      j                  |«       y )Nr    )r(   r-   r   ©r/   r   s     r   Ú	test_initzTestCreateAndExtend.test_initF   s*   € Ø˜"�ˆØ×Ñ˜Ÿ™¨Ó/×6Ñ6¸Õ?r1   c                ó†   — dg i}| j                  |«      }t        |j                  d«      «      }| j                  |g «       y )Nr    Úhello)r-   ÚlistÚiter_errorsr(   ©r/   r   r   r   s       r   Útest_iter_errors_successfulz/TestCreateAndExtend.test_iter_errors_successfulJ   s>   € Ø˜"�ˆØ—N‘N 6Ó*ˆ	ä�i×+Ñ+¨GÓ4Ó5ˆØ×Ñ˜ Õ$r1   c           
     óP  — dddigi}| j                  |«      }t        j                  dd|dddigt        dg«      ¬«      }t	        |j                  d«      «      }| j                  t        |«      d«       | j                  |d   j                  «       |j                  «       «       y )Nr    r   zWhoops!Úgoodbye)r   r   r   Úvalidator_valueÚschema_pathé   r   )	r-   r   r   r   r=   r>   r(   ÚlenÚ	_contents)r/   r   r   Úexpected_errorr   s        r   Útest_iter_errors_one_errorz.TestCreateAndExtend.test_iter_errors_one_errorQ   s£   € Ø˜I yÐ1Ð2Ð3ˆØ—N‘N 6Ó*ˆ	ä#×3Ñ3ØØØØØ'¨Ð3Ð4Ü˜v˜h›ô
ˆô �i×+Ñ+¨IÓ6Ó7ˆØ×Ñœ˜V› aÔ(Ø×Ñ˜ ™×,Ñ,Ó.°×0HÑ0HÓ0JÕKr1   c                ó¬   — dddidddœddigi}| j                  |«      }t        |j                  d«      «      }| j                  t	        |«      d	«       y )
Nr    r   ÚFirstzSecond!Úasdf)r   r   ÚThirdrB   é   )r-   r=   r>   r(   rF   r?   s       r   Ú test_iter_errors_multiple_errorsz4TestCreateAndExtend.test_iter_errors_multiple_errorsb   sb   € àØ˜GÐ$Ø%°FÑ;Ø˜GÐ$ðð
ˆð —N‘N 6Ó*ˆ	ä�i×+Ñ+¨IÓ6Ó7ˆØ×Ñœ˜V› aÕ(r1   c                óN  — t        j                  ddid¬«      }| j                  t         j                  j                  d«       | j                  t         j
                  j                  d«       | j                  |j                  d«       | j                  |j                  d«       y )Nr$   Ú	somethingú
my version©r%   ÚversionÚMyVersionValidator)	r   r,   r'   r)   Úpopr+   r(   Ú__name__Ú__qualname__©r/   r-   s     r   Ú.test_if_a_version_is_provided_it_is_registeredzBTestCreateAndExtend.test_if_a_version_is_provided_it_is_registeredo   s�   € Ü×%Ñ%Ø Ð,Ø ô
ˆ	ð 	�‰œ
×0Ñ0×4Ñ4°kÔBØ�‰œ
×.Ñ.×2Ñ2°LÔAØ×Ñ˜×+Ñ+Ð-AÔBØ×Ñ˜×/Ñ/Ð1EÕFr1   c                ó   — t        j                  ddid¬«      }| j                  t         j                  j                  d«       | j                  t         j
                  j                  d«       | j                  t         |i «      «      d«       y )Nr$   rQ   rR   rS   z2MyVersionValidator(schema={}, format_checker=None))r   r,   r'   r)   rV   r+   r(   ÚreprrY   s     r   Ú	test_reprzTestCreateAndExtend.test_repry   sp   € Ü×%Ñ%Ø Ð,Ø ô
ˆ	ð 	�‰œ
×0Ñ0×4Ñ4°kÔBØ�‰œ
×.Ñ.×2Ñ2°LÔAØ×ÑÜ‘˜2“ÓØ@õ	
r1   c                óH  — t        j                  ddid¬«      }| j                  t         j                  j                  d«       | j                  t         j
                  j                  d«       | j                  t         |dt        t        d«      «      i«      «      d«       y )Nr$   rQ   rR   rS   Úaiè  zNMyVersionValidator(schema={'a': [0, 1, 2, 3, 4, 5, ...]}, format_checker=None))
r   r,   r'   r)   rV   r+   r(   r\   r=   ÚrangerY   s     r   Útest_long_reprz"TestCreateAndExtend.test_long_repr…   s�   € Ü×%Ñ%Ø Ð,Ø ô
ˆ	ð 	�‰œ
×0Ñ0×4Ñ4°kÔBØ�‰œ
×.Ñ.×2Ñ2°LÔAØ×ÑÜ‘˜C¤¤e¨D£kÓ!2Ð3Ó4Ó5ð'õ	
r1   c                ór   — t        j                  i ¬«      }| j                  t         |i «      «      d«       y )N©r%   z)Validator(schema={}, format_checker=None))r   r,   r(   r\   rY   s     r   Útest_repr_no_versionz(TestCreateAndExtend.test_repr_no_version“   s/   € Ü×%Ñ%°"Ô5ˆ	Ø×ÑÜ‘˜2“ÓØ7õ	
r1   c                ó  — t        j                  ddid¬«      }| j                  t         j                  j                  d«       | j                  t         j
                  j                  d«       | j                  |j                  d«       y )Nr$   rQ   zfoo-barrS   ÚFooBarValidator)r   r,   r'   r)   rV   r+   r(   rX   rY   s     r   Ú-test_dashes_are_stripped_from_validator_nameszATestCreateAndExtend.test_dashes_are_stripped_from_validator_namesš   sj   € Ü×%Ñ%Ø Ð,Øô
ˆ	ð 	�‰œ
×0Ñ0×4Ñ4°kÔBØ�‰œ
×.Ñ.×2Ñ2°IÔ>Ø×Ñ˜×/Ñ/Ð1BÕCr1   c                ó¦   — t        t        j                  «      }t        j                  ddi¬«       | j	                  t        j                  |«       y )NÚidrc   )r*   r   r)   r,   r(   )r/   Úoriginals     r   Ú6test_if_a_version_is_not_provided_it_is_not_registeredzJTestCreateAndExtend.test_if_a_version_is_not_provided_it_is_not_registered£   s:   € Üœ
×0Ñ0Ó1ˆÜ×Ñ t¨T lÕ3Ø×Ñœ×1Ñ1°8Õ<r1   c                ó*  — d}d|i}t        j                  |dd„ ¬«       | j                  t         j                  j                  |«       | j                  t         j
                  j                  d«       | j                  |t         j                  «       y )Númeta schema idri   rR   c                ó&   — | j                  dd«      S ©Nri   Ú ©Úget©Úss    r   ú<lambda>zMTestCreateAndExtend.test_validates_registers_meta_schema_id.<locals>.<lambda>¯   ó   € ˜AŸE™E $¨›O€ r1   ©r%   rT   Úid_of©r   r,   r'   r)   rV   r+   ÚassertIn©r/   Úmeta_schema_keyÚmy_meta_schemas      r   Ú'test_validates_registers_meta_schema_idz;TestCreateAndExtend.test_validates_registers_meta_schema_id¨   sr   € Ø*ˆØ Ð0ˆä×ÑØ&Ø Ù+õ	
ð
 	�‰œ
×0Ñ0×4Ñ4°oÔFØ�‰œ
×.Ñ.×2Ñ2°LÔAà�‰�o¤z×'?Ñ'?Õ@r1   c                ó&  — d}d|i}t        j                  |d¬«       | j                  t         j                  j                  |«       | j                  t         j
                  j                  d«       | j                  |t         j                  «       y )Númeta schema $idr$   rR   rS   ry   r{   s      r   Ú.test_validates_registers_meta_schema_draft6_idzBTestCreateAndExtend.test_validates_registers_meta_schema_draft6_id¶   so   € Ø+ˆØ Ð1ˆä×ÑØ&Ø õ	
ð 	�‰œ
×0Ñ0×4Ñ4°oÔFØ�‰œ
×.Ñ.×2Ñ2°LÔAà�‰�o¤z×'?Ñ'?Õ@r1   c                ó�   ‡— t        j                  i d¬«      Š| j                  t        ˆfd„dg fddddd	i fd
fD «       «      «       y )Nr   ©r%   r   c              3  óV   •K  — | ]   \  }} ‰i «      j                  ||¬ «      –— Œ" y­w))r   ÚtypeN)Úis_type)Ú.0r…   r   r-   s      €r   ú	<genexpr>z@TestCreateAndExtend.test_create_default_types.<locals>.<genexpr>Æ   s1   øè ø€ ò á"�D˜(ñ ˜"“×%Ñ%¨x¸dÐ%×Cñùs   ƒ&)Úarray)ÚbooleanT)Úintegeré   )ÚnullN)Únumberg      (@Úobject)ÚstringÚfoo)r   r,   Ú
assertTrueÚallrY   s    @r   Útest_create_default_typesz-TestCreateAndExtend.test_create_default_typesÃ   sW   ø€ Ü×%Ñ%°"ÀÔDˆ	Ø�‰Üó ð ˜b�MØ%Ø#Ø"Ø$Ø˜r�NØ%ð'ôó õ	
r1   c                óR  — t        j                  t         j                  j                  d   di idœ¬«      }|j	                  ddi«       | j                  t        j                  «      5  |j	                  i «       ddd«        |ddi«      j                  d«       y# 1 sw Y   Œ#xY w)zq
        One can create a validator class whose metaschema uses a different
        dialect than itself.
        r$   Úconst)ú$schemaÚnotrc   r‘   ÚbarN)	r   r,   ÚDraft202012Validatorr5   Úcheck_schemaÚassertRaisesr   ÚSchemaErrorÚvalidate©r/   ÚNoEmptySchemasValidators     r   Ú+test_check_schema_with_different_metaschemaz?TestCreateAndExtend.test_check_schema_with_different_metaschemaÔ   s™   € ô #-×"3Ñ"3ä%×:Ñ:×FÑFÀuÑMØ �}ñô#
Ðð 	 ×,Ñ,¨e°U¨^Ô<à×Ñœz×5Ñ5Ó6ñ 	5Ø#×0Ñ0°Ô4÷	5ñ 	  ¨ Ó/×8Ñ8¸Õ?÷	5ð 	5ús   Á)BÂB&c                óÒ   — t        j                  dddigidt        i¬«      }| j                  t        j
                  «      5  |j                  i «       ddd«       y# 1 sw Y   yxY w)zž
        A validator whose metaschema doesn't declare $schema defaults to its
        own validation behavior, not the latest "normal" specification.
        r    r   zMeta schema whoops!rƒ   N)r   r,   r    rœ   r   r�   r›   rŸ   s     r   Ú<test_check_schema_with_different_metaschema_defaults_to_selfzPTestCreateAndExtend.test_check_schema_with_different_metaschema_defaults_to_selfç   sf   € ô #-×"3Ñ"3Ø 9Ð.CÐ"DÐ!EÐFØ¤�~ô#
Ðð ×Ñœz×5Ñ5Ó6ñ 	5Ø#×0Ñ0°Ô4÷	5÷ 	5ñ 	5ús   ÁAÁA&c                óš  — t        | j                  j                  «      }t        «       }t	        j
                  | j                  d|i¬«      }| j                  |j                  |j                  |j                  | j                  j                  ft        ||¬«      | j                  j                  | j                  j                  |f«       y )NÚnew)r   ©r¥   )	r*   r-   r4   r�   r   Úextendr(   r5   r6   )r/   rj   r¥   ÚExtendeds       r   Útest_extendzTestCreateAndExtend.test_extendô   s¦   € Ü˜Ÿ™×1Ñ1Ó2ˆÜ‹hˆä×$Ñ$Ø�N‰NØ˜s�|ô
ˆð 	×Ñà×#Ñ#Ø×$Ñ$Ø×%Ñ%Ø—‘×)Ñ)ð	ô �X 3Ô'Ø—‘×*Ñ*Ø—‘×+Ñ+Øð	õ	
r1   c                óN  ‡ — ˆ fd„}d}d|dœ}t        j                  |‰ j                   ‰ j                  |¬«      }‰ j                  |j	                  |j
                  «      |«       t        j                  |«      }‰ j                  |j	                  |j
                  «      |«       y)zK
        Extending a validator preserves its notion of schema IDs.
        c                óZ   •— | j                  d‰j                  j                  | «      «      S )NÚ__test__)rr   r-   ÚID_OF)r   r/   s    €r   rx   z3TestCreateAndExtend.test_extend_idof.<locals>.id_of  s#   ø€ Ø—:‘:˜j¨$¯.©.×*>Ñ*>¸vÓ*FÓGÐGr1   zthe://correct/id/zthe://wrong/id/)r$   r¬   )r%   r   r&   rx   N)r   r,   r&   r(   r­   r5   r§   )r/   rx   Ú
correct_idr%   ÚOriginalÚDeriveds   `     r   Útest_extend_idofz$TestCreateAndExtend.test_extend_idof
  s“   ø€ ô	Hà(ˆ
à$Ø"ñ
ˆô ×$Ñ$Ø#Ø—‘Ø×*Ñ*Øô	
ˆð 	×Ñ˜Ÿ™¨×(<Ñ(<Ó=¸zÔJä×#Ñ# HÓ-ˆØ×Ñ˜Ÿ™ w×':Ñ':Ó;¸ZÕHr1   c                ó  — dddiidddœ}t        j                  |«      }| j                  |j                  d«      «       t        j                  t         j                  «      }| j                   ||«      j                  d«      «       y)	zV
        Extending a validator preserves its notion of applicable validators.
        Útestr…   rŽ   z#/$defs/testrE   )ú$defsú$refÚmaximumé%   N)r   ÚDraft4Validatorr’   Úis_validr§   )r/   r   Údraft4r°   s       r   Ú!test_extend_applicable_validatorsz5TestCreateAndExtend.test_extend_applicable_validators   sv   € ð ˜v xÐ0Ð1Ø"Øñ
ˆô ×+Ñ+¨FÓ3ˆØ�‰˜Ÿ™¨Ó+Ô,ä×#Ñ#¤J×$>Ñ$>Ó?ˆØ�‰™ ›×0Ñ0°Ó4Õ5r1   N)rW   Ú
__module__rX   r0   r7   r:   r@   rI   rO   rZ   r]   ra   rd   rg   rk   r~   r�   r”   r¡   r£   r©   r±   r»   r   r1   r   r"   r"   #   sn   „ ò
ò*
ò@ò%òLò")òGò

ò
ò
òDò=ò
AòAò
ò"@ò&5ò
ò,Ió,6r1   r"   c                  óh  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6d5„ Z7d6„ Z8d7„ Z9d8„ Z:d9„ Z;d:„ Z<y;)<ÚTestValidationErrorMessagesc                ó:  — |j                  dt        j                  «      }|j                  |«        ||g|¢­i |¤Ž}t	        |j                  |«      «      }| j                  |d|›�¬«       | j                  t        |«      dd|›�¬«       |d   j                  S )NÚclszNo errors were raised for )ÚmsgrE   z"Expected exactly one error, found r   )
rV   r   Ú_LATEST_VERSIONr›   r=   r>   r’   r(   rF   r   )r/   r   r   ÚargsÚkwargsrÀ   r   r   s           r   Úmessage_forz'TestValidationErrorMessages.message_for3  s    € Ø�j‰j˜¤
× :Ñ :Ó;ˆØ×Ñ˜Ô Ù˜Ð0 Ò0¨Ñ0ˆ	Ü�i×+Ñ+¨HÓ5Ó6ˆØ�‰˜Ð&@ÀÀÐ$MˆÔNØ×ÑÜ�‹KØØ4°V°JÐ?ð 	ô 	
ð
 �a‰y× Ñ Ð r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y ©NrE   r…   r�   ©r   r   ú1 is not of type 'string'©rÅ   r(   ©r/   r   s     r   Útest_single_type_failurez4TestValidationErrorMessages.test_single_type_failure@  s-   € Ø×"Ñ"¨A°v¸xÐ6HÐ"ÓIˆØ×Ñ˜Ð"=Õ>r1   c                óT   — | j                  dddgi¬«      }| j                  |d«       y rÇ   rÊ   rË   s     r   Útest_single_type_list_failurez9TestValidationErrorMessages.test_single_type_list_failureD  s/   € Ø×"Ñ"¨A°vÀ¸zÐ6JÐ"ÓKˆØ×Ñ˜Ð"=Õ>r1   c                óh   — d}| j                  ddt        |«      i¬«      }| j                  |d«       y )N)r�   r�   rE   r…   rÈ   z#1 is not of type 'string', 'object')rÅ   r=   r(   )r/   Útypesr   s      r   Útest_multiple_type_failurez6TestValidationErrorMessages.test_multiple_type_failureH  s6   € Ø"ˆØ×"Ñ"¨A°v¼tÀE»{Ð6KÐ"ÓLˆØ×Ñ˜Ð"GÕHr1   c                ó|   — ddddœgi}| j                  d|t        j                  ¬«      }| j                  |d«       y )Nr…   ÚFoorN   )ÚnameÚminimumrE   ©r   r   rÀ   z1 is not of type 'Foo'©rÅ   r   ÚDraft3Validatorr(   ©r/   r   r   s      r   Ú#test_object_with_named_type_failurez?TestValidationErrorMessages.test_object_with_named_type_failureM  sK   € Ø E°aÑ8Ð9Ð:ˆØ×"Ñ"ØØÜ×*Ñ*ð #ó 
ˆð
 	×Ñ˜Ð":Õ;r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrE   rÕ   é   rÈ   z1 is less than the minimum of 2rÊ   rË   s     r   Útest_minimumz(TestValidationErrorMessages.test_minimumV  s,   € Ø×"Ñ"¨A°yÀ!°nÐ"ÓEˆØ×Ñ˜Ð"CÕDr1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrE   r¶   r   rÈ   z"1 is greater than the maximum of 0rÊ   rË   s     r   Útest_maximumz(TestValidationErrorMessages.test_maximumZ  s,   € Ø×"Ñ"¨A°yÀ!°nÐ"ÓEˆØ×Ñ˜Ð"FÕGr1   c                ó†   — d\  }}d||ii}| j                  ddi|t        j                  ¬«      }| j                  |d«       y ©N©r™   r‘   Údependenciesr™   rÜ   rÖ   z'foo' is a dependency of 'bar'r×   ©r/   ÚdependÚonr   r   s        r   Ú test_dependencies_single_elementz<TestValidationErrorMessages.test_dependencies_single_element^  sT   € Ø!‰
ˆ�Ø  6¨2 ,Ð/ˆØ×"Ñ"Ø˜Q�ZØÜ×*Ñ*ð #ó 
ˆð
 	×Ñ˜Ð"BÕCr1   c                ó€   — dddigi}| j                  dd|git        j                  ¬«      }| j                  |d«       y )Nr…   rÕ   rN   rE   rÖ   z+1 is not of type {'type': [{'minimum': 3}]}r×   )r/   r…   r   s      r   Ú-test_object_without_title_type_failure_draft3zITestValidationErrorMessages.test_object_without_title_type_failure_draft3h  sT   € Ø˜) Q˜Ð(Ð)ˆØ×"Ñ"ØØ˜T˜FÐ#Ü×*Ñ*ð #ó 
ˆð
 	×ÑØØ9õ	
r1   c                óˆ   — d\  }}d||gii}| j                  ddi|t        j                  ¬«      }| j                  |d«       y rá   r×   rä   s        r   Útest_dependencies_list_draft3z9TestValidationErrorMessages.test_dependencies_list_draft3t  óV   € Ø!‰
ˆ�Ø  6¨B¨4 .Ð1ˆØ×"Ñ"Ø˜Q�ZØÜ×*Ñ*ð #ó 
ˆð
 	×Ñ˜Ð"BÕCr1   c                óˆ   — d\  }}d||gii}| j                  ddi|t        j                  ¬«      }| j                  |d«       y rá   ©rÅ   r   ÚDraft7Validatorr(   rä   s        r   Útest_dependencies_list_draft7z9TestValidationErrorMessages.test_dependencies_list_draft7~  rì   r1   c                ót   — | j                  dgg ddœt        j                  ¬«      }| j                  d|«       y )NrÜ   F©ÚitemsÚadditionalItemsrÖ   z(2 was unexpected)©rÅ   r   rØ   rz   rË   s     r   Ú#test_additionalItems_single_failurez?TestValidationErrorMessages.test_additionalItems_single_failureˆ  s>   € Ø×"Ñ"Ø�SØ°EÑ:Ü×*Ñ*ð #ó 
ˆð
 	�‰Ð*¨GÕ4r1   c                óv   — | j                  g d¢g ddœt        j                  ¬«      }| j                  d|«       y )N©rE   rÜ   rN   Frò   rÖ   z(1, 2, 3 were unexpected)rõ   rË   s     r   Ú&test_additionalItems_multiple_failureszBTestValidationErrorMessages.test_additionalItems_multiple_failures�  s<   € Ø×"Ñ"ÚØ°EÑ:Ü×*Ñ*ð #ó 
ˆð
 	�‰Ð1°7Õ;r1   c                ó^   — d}ddi}| j                  |di|¬«      }| j                  d|«       y )Nr‘   ÚadditionalPropertiesFrÜ   rÈ   z('foo' was unexpected)©rÅ   rz   )r/   Ú
additionalr   r   s       r   Ú(test_additionalProperties_single_failurezDTestValidationErrorMessages.test_additionalProperties_single_failure˜  s9   € Øˆ
Ø(¨%Ð0ˆØ×"Ñ"¨Z¸¨OÀFÐ"ÓKˆØ�‰Ð.°Õ8r1   c                óì   — ddi}| j                  t        j                  ddg«      |¬«      }| j                  t	        d«      |«       | j                  t	        d«      |«       | j                  d|«       y )Nrû   Fr‘   r™   rÈ   zwere unexpected))rÅ   r*   Úfromkeysrz   r\   rÙ   s      r   Ú+test_additionalProperties_multiple_failureszGTestValidationErrorMessages.test_additionalProperties_multiple_failuresž  si   € Ø(¨%Ð0ˆØ×"Ñ"Ü—]‘] E¨5 >Ó2Øð #ó 
ˆð
 	�‰”d˜5“k 7Ô+Ø�‰”d˜5“k 7Ô+Ø�‰Ð(¨'Õ2r1   c                óZ   — ddi}| j                  ddi|¬«      }| j                  d|«       y )Nr–   rŒ   r‘   r™   rÈ   z12 was expectedrü   rÙ   s      r   Ú
test_constz&TestValidationErrorMessages.test_const©  s;   € Ø˜2�ˆØ×"Ñ"Ø˜U�^Øð #ó 
ˆð 	�‰Ð'¨Õ1r1   c                ó~   — dddii}| j                  di g g|t        j                  ¬«      }| j                  |d«       y )NÚcontainsr–   rŒ   rÜ   rÖ   z4None of [2, {}, []] are valid under the given schema)rÅ   r   ÚDraft6Validatorr(   rÙ   s      r   Útest_contains_draft_6z1TestValidationErrorMessages.test_contains_draft_6±  sP   € Ø˜w¨˜mÐ,ˆØ×"Ñ"Ø˜˜R�[ØÜ×*Ñ*ð #ó 
ˆð
 	×ÑØØBõ	
r1   c                ó  — t        d¬«      } |j                  d«      d„ «       ddi}| j                  d||¬«      }| j                  t	        d«      |«       | j                  t	        d«      |«       | j                  d|«       y )	Nr   )ÚformatsÚthingc                 ó   — y©NFr   )Úvalues    r   ru   zQTestValidationErrorMessages.test_invalid_format_default_message.<locals>.<lambda>¿  s   � r1   ÚformatÚbla)r   r   Úformat_checkerzis not a)r   ÚchecksrÅ   rz   r\   )r/   Úcheckerr   r   s       r   Ú#test_invalid_format_default_messagez?TestValidationErrorMessages.test_invalid_format_default_message½  s|   € Ü¨Ô+ˆØˆ�‰�wÓÑ 3Ô4à˜GÐ$ˆØ×"Ñ"ØØØ"ð #ó 
ˆð 	�‰”d˜5“k 7Ô+Ø�‰”d˜7“m WÔ-Ø�‰�j 'Õ*r1   c                ó¼  — ddddiddidœdœ}| j                  ddi|t        j                  ¬	«      }| j                  |d
j	                  t        d«      t        d«      t        d«      «      «       | j                  dddœ|t        j                  ¬	«      }| j                  |dj	                  t        d«      t        d«      t        d«      t        d«      «      «       y )Nr�   Fr…   r�   )ú^abc$ú^def$)r…   rû   ÚpatternPropertiesÚzebraé{   rÖ   z,{} does not match any of the regexes: {}, {}r  r  iÈ  )r  Úfishz.{}, {} do not match any of the regexes: {}, {}r  )rÅ   r   r¸   r(   r  r\   rÙ   s      r   Ú1test_additionalProperties_false_patternPropertieszMTestValidationErrorMessages.test_additionalProperties_false_patternPropertiesÌ  sç   € Ø"Ø*/à &¨Ð1Ø &¨Ð1ñ(ñˆð ×"Ñ"Ø˜s�^ØÜ×*Ñ*ð #ó 
ˆð
 	×ÑØØ:×AÑAÜ�W“œt G›}¬d°7«móô	
ð ×"Ñ"Ø"¨CÑ0ØÜ×*Ñ*ð #ó 
ˆð
 	×ÑØØ<×CÑCÜ�V“œd 7›m¬T°'«]¼DÀ»Móõ	
r1   c                óN   — | j                  dd¬«      }| j                  |d«       y )NrQ   FrÈ   z'False schema does not allow 'something'rÊ   rË   s     r   Útest_False_schemaz-TestValidationErrorMessages.test_False_schemaê  s0   € Ø×"Ñ"Ø Øð #ó 
ˆð 	×Ñ˜Ð"KÕLr1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrN   Ú
multipleOfrÜ   rÈ   z3 is not a multiple of 2rÊ   rË   s     r   Útest_multipleOfz+TestValidationErrorMessages.test_multipleOfñ  s5   € Ø×"Ñ"ØØ  !Ð$ð #ó 
ˆð 	×Ñ˜Ð"<Õ=r1   c                óR   — | j                  g ddi¬«      }| j                  |d«       y )NÚminItemsrÜ   rÈ   z[] is too shortrÊ   rË   s     r   Útest_minItemsz)TestValidationErrorMessages.test_minItemsø  s,   € Ø×"Ñ"¨B¸
ÀA°Ð"ÓGˆØ×Ñ˜Ð"3Õ4r1   c                óV   — | j                  g d¢ddi¬«      }| j                  |d«       y )Nrø   ÚmaxItemsrÜ   rÈ   z[1, 2, 3] is too longrÊ   rË   s     r   Útest_maxItemsz)TestValidationErrorMessages.test_maxItemsü  s,   € Ø×"Ñ"ªI¸zÈ1¸oÐ"ÓNˆØ×Ñ˜Ð"9Õ:r1   c                óR   — | j                  g ddi¬«      }| j                  |d«       y )Nr"  rE   rÈ   z[] should be non-emptyrÊ   rË   s     r   Útest_minItems_1z+TestValidationErrorMessages.test_minItems_1   s,   € Ø×"Ñ"¨B¸
ÀA°Ð"ÓGˆØ×Ñ˜Ð":Õ;r1   c                óV   — | j                  g d¢ddi¬«      }| j                  |d«       y )Nrø   r%  r   rÈ   z![1, 2, 3] is expected to be emptyrÊ   rË   s     r   Útest_maxItems_0z+TestValidationErrorMessages.test_maxItems_0  s,   € Ø×"Ñ"ªI¸zÈ1¸oÐ"ÓNˆØ×Ñ˜Ð"EÕFr1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )Nrp   Ú	minLengthrÜ   rÈ   z'' is too shortrÊ   rË   s     r   Útest_minLengthz*TestValidationErrorMessages.test_minLength  s5   € Ø×"Ñ"ØØ Ð#ð #ó 
ˆð 	×Ñ˜Ð"3Õ4r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NÚabcÚ	maxLengthrÜ   rÈ   z'abc' is too longrÊ   rË   s     r   Útest_maxLengthz*TestValidationErrorMessages.test_maxLength  s5   € Ø×"Ñ"ØØ Ð#ð #ó 
ˆð 	×Ñ˜Ð"5Õ6r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )Nrp   r,  rE   rÈ   z'' should be non-emptyrÊ   rË   s     r   Útest_minLength_1z,TestValidationErrorMessages.test_minLength_1  s-   € Ø×"Ñ"¨B¸ÀQÐ7GÐ"ÓHˆØ×Ñ˜Ð":Õ;r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )Nr/  r0  r   rÈ   z'abc' is expected to be emptyrÊ   rË   s     r   Útest_maxLength_0z,TestValidationErrorMessages.test_maxLength_0  s-   € Ø×"Ñ"¨E¸;ÈÐ:JÐ"ÓKˆØ×Ñ˜Ð"AÕBr1   c                óR   — | j                  i ddi¬«      }| j                  |d«       y )NÚminPropertiesrÜ   rÈ   z"{} does not have enough propertiesrÊ   rË   s     r   Útest_minPropertiesz.TestValidationErrorMessages.test_minProperties  s-   € Ø×"Ñ"¨B¸ÈÐ7KÐ"ÓLˆØ×Ñ˜Ð"FÕGr1   c                óZ   — | j                  i i i dœddi¬«      }| j                  |d«       y )N)r_   ÚbÚcÚmaxPropertiesrÜ   rÈ   z3{'a': {}, 'b': {}, 'c': {}} has too many propertiesrÊ   rË   s     r   Útest_maxPropertiesz.TestValidationErrorMessages.test_maxProperties"  s?   € Ø×"Ñ"Ø B¨RÑ0Ø# QÐ'ð #ó 
ˆð 	×ÑØØAõ	
r1   c                óR   — | j                  i ddi¬«      }| j                  |d«       y )Nr7  rE   rÈ   z{} should be non-emptyrÊ   rË   s     r   Útest_minProperties_1z0TestValidationErrorMessages.test_minProperties_1,  s-   € Ø×"Ñ"¨B¸ÈÐ7KÐ"ÓLˆØ×Ñ˜Ð":Õ;r1   c                óV   — | j                  ddiddi¬«      }| j                  |d«       y )NrE   rÜ   r<  r   rÈ   z{1: 2} is expected to be emptyrÊ   rË   s     r   Útest_maxProperties_0z0TestValidationErrorMessages.test_maxProperties_00  s9   € Ø×"Ñ"Ø˜�VØ# QÐ'ð #ó 
ˆð 	×Ñ˜Ð"BÕCr1   c                ó\   — | j                  g d¢di i gdœ¬«      }| j                  |d«       y )N)rE   rÜ   r‘   F©ró   ÚprefixItemsrÈ   z1Expected at most 2 items but found 1 extra: 'foo'rÊ   rË   s     r   Útest_prefixItems_with_itemsz7TestValidationErrorMessages.test_prefixItems_with_items7  s<   € Ø×"Ñ"Ú"Ø"°B¸°8Ñ<ð #ó 
ˆð 	×ÑØØ?õ	
r1   c                ó\   — | j                  g d¢di i gdœ¬«      }| j                  |d«       y )N©rE   rÜ   r‘   é   FrC  rÈ   z6Expected at most 2 items but found 2 extra: ['foo', 5]rÊ   rË   s     r   Ú*test_prefixItems_with_multiple_extra_itemszFTestValidationErrorMessages.test_prefixItems_with_multiple_extra_itemsA  s<   € Ø×"Ñ"Ú%Ø"°B¸°8Ñ<ð #ó 
ˆð 	×ÑØØDõ	
r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NÚbbbÚpatternz^a*$rÈ   z'bbb' does not match '^a*$'rÊ   rË   s     r   Útest_patternz(TestValidationErrorMessages.test_patternK  s5   € Ø×"Ñ"ØØ˜vÐ&ð #ó 
ˆð 	×Ñ˜Ð"?Õ@r1   c                óV   — | j                  g dddii¬«      }| j                  |d«       y )Nr  r…   r�   rÈ   z3[] does not contain items matching the given schemarÊ   rË   s     r   Útest_does_not_containz1TestValidationErrorMessages.test_does_not_containR  s=   € Ø×"Ñ"ØØ ¨Ð 2Ð3ð #ó 
ˆð 	×ÑØØAõ	
r1   c                ó\   — | j                  ddgddiddœ¬«      }| j                  |d«       y )	Nr‘   rE   r…   r�   rÜ   ©r  ÚminContainsrÈ   úMToo few items match the given schema (expected at least 2 but only 1 matched)rÊ   rË   s     r   Útest_contains_too_fewz1TestValidationErrorMessages.test_contains_too_few\  sC   € Ø×"Ñ"Ø˜Q�ZØ!'¨Ð 2À1ÑEð #ó 
ˆð 	×ÑØð7õ	
r1   c                ó^   — | j                  ddgddidddœ¬«      }| j                  |d	«       y )
Nr‘   rE   r…   r�   rÜ   é   ©r  rR  ÚmaxContainsrÈ   rS  rÊ   rË   s     r   Ú&test_contains_too_few_both_constrainedzBTestValidationErrorMessages.test_contains_too_few_both_constrainedg  sI   € Ø×"Ñ"Ø˜Q�Zà# XÐ.Ø Ø ñð #ó 
ˆð 	×ÑØðõ	
r1   c                ó\   — | j                  g d¢ddiddœ¬«      }| j                  |d«       y )N©r‘   r™   Úbazr…   r�   rÜ   ©r  rX  rÈ   ú:Too many items match the given schema (expected at most 2)rÊ   rË   s     r   Útest_contains_too_manyz2TestValidationErrorMessages.test_contains_too_manyv  s=   € Ø×"Ñ"Ú*Ø!'¨Ð 2À1ÑEð #ó 
ˆð 	×ÑØØHõ	
r1   c                ób   — | j                  dgdz  ddidddœ¬«      }| j                  |d	«       y )
Nr‘   rH  r…   r�   rÜ   rV  rW  rÈ   z:Too many items match the given schema (expected at most 4)rÊ   rË   s     r   Ú'test_contains_too_many_both_constrainedzCTestValidationErrorMessages.test_contains_too_many_both_constrained€  sI   € Ø×"Ñ"Ø�W˜q‘[à# XÐ.Ø Ø ñð #ó 
ˆð 	×ÑØØHõ	
r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrN   ÚexclusiveMinimumrH  rÈ   z+3 is less than or equal to the minimum of 5rÊ   rË   s     r   Útest_exclusiveMinimumz1TestValidationErrorMessages.test_exclusiveMinimumŽ  s8   € Ø×"Ñ"ØØ&¨Ð*ð #ó 
ˆð 	×ÑØØ9õ	
r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrN   ÚexclusiveMaximumrÜ   rÈ   z.3 is greater than or equal to the maximum of 2rÊ   rË   s     r   Útest_exclusiveMaximumz1TestValidationErrorMessages.test_exclusiveMaximum˜  s1   € Ø×"Ñ"¨AÐ7IÈ1Ð6MÐ"ÓNˆØ×ÑØØ<õ	
r1   c                óT   — | j                  i ddgi¬«      }| j                  |d«       y )NÚrequiredr‘   rÈ   z'foo' is a required propertyrÊ   rË   s     r   Útest_requiredz)TestValidationErrorMessages.test_requiredŸ  s/   € Ø×"Ñ"¨B¸
ÀUÀGÐ7LÐ"ÓMˆØ×Ñ˜Ð"@ÕAr1   c                ó\   — | j                  di idddgii¬«      }| j                  |d«       y )Nr‘   ÚdependentRequiredr™   rÈ   z'bar' is a dependency of 'foo'rÊ   rË   s     r   Útest_dependentRequiredz2TestValidationErrorMessages.test_dependentRequired£  s@   € Ø×"Ñ"Ø˜R�[Ø'¨%°%°Ð)9Ð:ð #ó 
ˆð 	×Ñ˜Ð"BÕCr1   c                óT   — | j                  i ddgi¬«      }| j                  |d«       y )NÚoneOfFrÈ   z.{} is not valid under any of the given schemasrÊ   rË   s     r   Útest_oneOf_matches_nonez3TestValidationErrorMessages.test_oneOf_matches_noneª  s2   € Ø×"Ñ"¨B¸À%ÀÐ7IÐ"ÓJˆØ×ÑØØ<õ	
r1   c                óV   — | j                  i dddgi¬«      }| j                  |d«       y )Nro  TrÈ   z${} is valid under each of True, TruerÊ   rË   s     r   Útest_oneOf_matches_too_manyz7TestValidationErrorMessages.test_oneOf_matches_too_many±  s1   € Ø×"Ñ"¨B¸À$ÈÀÐ7NÐ"ÓOˆØ×Ñ˜Ð"HÕIr1   c                ó\   — dddœ}| j                  ddg|¬«      }| j                  |d«       y )Nr‰   F©r…   ÚunevaluatedItemsr‘   r™   rÈ   z@Unevaluated items are not allowed ('foo', 'bar' were unexpected)rü   rÙ   s      r   Útest_unevaluated_itemsz2TestValidationErrorMessages.test_unevaluated_itemsµ  s7   € Ø!°uÑ=ˆØ×"Ñ"¨U°E¨NÀ6Ð"ÓJˆØ�‰ØØNõ	
r1   c                óX   — dddœ}| j                  d|¬«      }| j                  |d«       y )Nr‰   Frt  r‘   rÈ   z'foo' is not of type 'array'rÊ   rÙ   s      r   Ú&test_unevaluated_items_on_invalid_typezBTestValidationErrorMessages.test_unevaluated_items_on_invalid_type½  s2   € Ø!°uÑ=ˆØ×"Ñ"¨E¸&Ð"ÓAˆØ×Ñ˜Ð"@ÕAr1   c                ól   — dddiiddidœ}| j                  ddddœ|¬	«      }| j                  |d
«       y )Nr‘   r…   r�   r–   rŒ   ©Ú
propertiesÚunevaluatedPropertiesr™   r[  rÈ   z_Unevaluated properties are not valid under the given schema ('bar' was unevaluated and invalid)rÊ   rÙ   s      r   Ú5test_unevaluated_properties_invalid_against_subschemazQTestValidationErrorMessages.test_unevaluated_properties_invalid_against_subschemaÂ  s_   € à  6¨8Ð"4Ð5Ø&-¨r ]ñ
ˆð ×"Ñ"àØØñð
 ð #ó 
ˆð 	×ÑØð2õ	
r1   c                ó^   — dddœ}| j                  dddœ|¬«      }| j                  |d«       y )	Nr�   F©r…   r|  r‘   r™   ©r‘   r™   rÈ   zEUnevaluated properties are not allowed ('bar', 'foo' were unexpected)rÊ   rÙ   s      r   Ú&test_unevaluated_properties_disallowedzBTestValidationErrorMessages.test_unevaluated_properties_disallowedÕ  sI   € Ø"¸UÑCˆØ×"Ñ"àØñð ð #ó 
ˆð 	×ÑØð-õ	
r1   c                óX   — dddœ}| j                  d|¬«      }| j                  |d«       y )Nr�   Fr  r‘   rÈ   z'foo' is not of type 'object'rÊ   rÙ   s      r   Ú+test_unevaluated_properties_on_invalid_typezGTestValidationErrorMessages.test_unevaluated_properties_on_invalid_typeä  s2   € Ø"¸UÑCˆØ×"Ñ"¨E¸&Ð"ÓAˆØ×Ñ˜Ð"AÕBr1   c                ó^   — i gddœ}| j                  g d¢|¬«      }| j                  |d«       y )NF©rD  ró   r[  rÈ   z9Expected at most 1 item but found 2 extra: ['bar', 'baz']rÊ   rÙ   s      r   Útest_single_itemz,TestValidationErrorMessages.test_single_itemé  s?   € Ø"$ °Ñ6ˆØ×"Ñ"Ú*Øð #ó 
ˆð 	×ÑØØGõ	
r1   c                ó|   — i gddœ}| j                  g d¢|t        j                  ¬«      }| j                  |d«       y )NFrò   ©r‘   r™   r·   rÖ   z<Additional items are not allowed ('bar', 37 were unexpected)rî   rÙ   s      r   Ú-test_heterogeneous_additionalItems_with_ItemszITestValidationErrorMessages.test_heterogeneous_additionalItems_with_Itemsô  sH   € Ø˜4°EÑ:ˆØ×"Ñ"Ú'ØÜ×*Ñ*ð #ó 
ˆð
 	×ÑØØJõ	
r1   c                ó^   — i gddœ}| j                  g d¢|¬«      }| j                  |d«       y )NFr…  rˆ  rÈ   z6Expected at most 1 item but found 2 extra: ['bar', 37]rÊ   rÙ   s      r   Ú$test_heterogeneous_items_prefixItemsz@TestValidationErrorMessages.test_heterogeneous_items_prefixItems   s?   € Ø"$ °Ñ6ˆØ×"Ñ"Ú'Øð #ó 
ˆð 	×ÑØØDõ	
r1   c                ó^   — i gddœ}| j                  g d¢|¬«      }| j                  |d«       y )NF)rD  ru  rˆ  rÈ   z=Unevaluated items are not allowed ('bar', 37 were unexpected)rÊ   rÙ   s      r   Ú/test_heterogeneous_unevaluatedItems_prefixItemszKTestValidationErrorMessages.test_heterogeneous_unevaluatedItems_prefixItems  s?   € Ø"$ ¸5ÑAˆØ×"Ñ"Ú'Øð #ó 
ˆð 	×ÑØØKõ	
r1   c                ód   — di iddœ}| j                  i dddœ|¬«      }| j                  |d«       y	)
úK
        Not valid deserialized JSON, but this should not blow up.
        r‘   F)r{  rû   r\  rŒ   ©r‘   r_   r·   rÈ   z?Additional properties are not allowed (37, 'a' were unexpected)NrÊ   rÙ   s      r   Ú2test_heterogeneous_properties_additionalPropertieszNTestValidationErrorMessages.test_heterogeneous_properties_additionalProperties  sJ   € ð "'¨ ÀUÑKˆØ×"Ñ"Ø e°Ñ4Øð #ó 
ˆð 	×ÑØØMõ	
r1   c                ód   — di iddœ}| j                  i dddœ|¬«      }| j                  |d«       y	)
r�  r‘   Frz  r\  rŒ   r�  rÈ   z@Unevaluated properties are not allowed (37, 'a' were unexpected)NrÊ   rÙ   s      r   Ú3test_heterogeneous_properties_unevaluatedPropertieszOTestValidationErrorMessages.test_heterogeneous_properties_unevaluatedProperties$  sJ   € ð "'¨ ÀeÑLˆØ×"Ñ"Ø e°Ñ4Øð #ó 
ˆð 	×ÑØØNõ	
r1   N)=rW   r¼   rX   rÅ   rÌ   rÎ   rÑ   rÚ   rÝ   rß   rç   ré   rë   rð   rö   rù   rþ   r  r  r  r  r  r  r   r#  r&  r(  r*  r-  r1  r3  r5  r8  r=  r?  rA  rE  rI  rM  rO  rT  rY  r_  ra  rd  rg  rj  rm  rp  rr  rv  rx  r}  r�  rƒ  r†  r‰  r‹  r�  r‘  r“  r   r1   r   r¾   r¾   2  s5  „ ò!ò?ò?òIò
<òEòHòDò

òDòDò5ò<ò9ò	3ò2ò

ò+ò
ò<Mò>ò5ò;ò<òGò5ò7ò<òCòHò
ò<òDò
ò
òAò
ò	
ò
ò
ò
ò
ò
òBòDò
òJò
òBò

ò&
òCò
	
ò

ò	
ò	
ò
ó
r1   r¾   c                  ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestValidationErrorDetailsc                ó6  — d}dddiddigi}t        j                  |«      }t        |j                  |«      «      }| j	                  t        |«      d«       |d   }| j	                  |j                  d«       | j	                  |j                  |d   «       | j	                  |j                  |«       | j	                  |j                  |«       | j                  |j                  «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                   d	«       | j	                  |j"                  t        dg«      «       | j	                  |j$                  t        dg«      «       | j	                  |j&                  t        dg«      «       | j	                  t        |j(                  «      d
«       t+        |j(                  «      \  }}| j	                  |j                  d«       | j	                  |j                  |d   d   d   «       | j	                  |j                  |«       | j	                  |j                  |d   d   «       | j-                  |j                  |«       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                   d	«       | j	                  |j"                  t        ddg«      «       | j	                  |j$                  t        ddg«      «       | j	                  |j&                  t        g d¢«      «       | j/                  |j(                  «       | j	                  |j                  d«       | j	                  |j                  |d   d   d   «       | j	                  |j                  |«       | j	                  |j                  |d   d   «       | j-                  |j                  |«       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                   d	«       | j	                  |j"                  t        ddg«      «       | j	                  |j$                  t        ddg«      «       | j	                  |j&                  t        g d¢«      «       | j	                  t        |j(                  «      d«       y )NrH  ÚanyOfrÕ   é   r…   r�   rE   r   ú$rÜ   )r—  r   rÕ   )r—  rE   r…   )r   r¸   r=   r>   r(   rF   r   rC   r   r   ÚassertIsNoneÚparentÚpathr   Úrelative_pathÚabsolute_pathÚ	json_pathrD   Úrelative_schema_pathÚabsolute_schema_pathÚcontextÚsorted_errorsÚassertIsÚassertFalse©r/   r   r   r   r   ÚeÚe1Úe2s           r   Ú
test_anyOfz%TestValidationErrorDetails.test_anyOf6  sA  € ØˆàØ˜B�Ø˜Ð"ðð
ˆô ×.Ñ.¨vÓ6ˆ	Ü�i×+Ñ+¨HÓ5Ó6ˆØ×Ñœ˜V› aÔ(Ø�1‰Iˆà×Ñ˜Ÿ™ gÔ.Ø×Ñ˜×*Ñ*¨F°7©OÔ<Ø×Ñ˜Ÿ™ XÔ.Ø×Ñ˜Ÿ™ 6Ô*Ø×Ñ˜!Ÿ(™(Ô#à×Ñ˜Ÿ™¤ r£Ô+Ø×Ñ˜Ÿ™¬%°«)Ô4Ø×Ñ˜Ÿ™¬%°«)Ô4Ø×Ñ˜Ÿ™ cÔ*à×Ñ˜Ÿ™¬¨w¨iÓ(8Ô9Ø×Ñ˜×/Ñ/´¸°yÓ1AÔBØ×Ñ˜×/Ñ/´¸°yÓ1AÔBà×Ñœ˜QŸY™Y›¨Ô+ä˜qŸy™yÓ)‰ˆˆBà×Ñ˜Ÿ™ yÔ1Ø×Ñ˜×+Ñ+¨V°G©_¸QÑ-?À	Ñ-JÔKØ×Ñ˜Ÿ™ hÔ/Ø×Ñ˜Ÿ™ F¨7¡O°AÑ$6Ô7Ø�‰�b—i‘i Ô#à×Ñ˜Ÿ™¤%¨£)Ô,Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜Ÿ™ sÔ+à×Ñ˜Ÿ™¬°°9¨~Ó)>Ô?Ø×Ñ˜×0Ñ0´%¸¸I¸Ó2GÔHØ×ÑØ×#Ñ#¤UÒ+BÓ%Cô	
ð 	×Ñ˜Ÿ™Ô$à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜×+Ñ+¨V°G©_¸QÑ-?ÀÑ-GÔHØ×Ñ˜Ÿ™ hÔ/Ø×Ñ˜Ÿ™ F¨7¡O°AÑ$6Ô7Ø�‰�b—i‘i Ô#à×Ñ˜Ÿ™¤%¨£)Ô,Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜Ÿ™ sÔ+à×Ñ˜Ÿ™¬°°6¨{Ó);Ô<Ø×Ñ˜×0Ñ0´%¸¸F¸Ó2DÔEØ×Ñ˜×0Ñ0´%Ò8LÓ2MÔNà×Ñœ˜RŸZ™Z›¨!Õ,r1   c                ó"  — ddi}dddiddddgiidœgi}t        j                  |«      }t        |j                  |«      «      }| j	                  t        |«      d«       |d	   }| j	                  |j                  d«       | j	                  |j                  |d   «       | j	                  |j                  |«       | j	                  |j                  |«       | j                  |j                  «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                   d
«       | j	                  |j"                  t        dg«      «       | j	                  |j$                  t        dg«      «       | j	                  |j&                  t        dg«      «       | j	                  t        |j(                  «      d«       t+        |j(                  «      \  }}| j	                  |j                  d«       | j	                  |j                  |d   d	   d   «       | j	                  |j                  |«       | j	                  |j                  |d   d	   «       | j-                  |j                  |«       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                  t        g «      «       | j	                  |j                   d
«       | j	                  |j"                  t        d	dg«      «       | j	                  |j$                  t        d	dg«      «       | j	                  |j&                  t        g d¢«      «       | j/                  |j(                  «       | j	                  |j                  d«       | j	                  |j                  dg«       | j	                  |j                  d«       | j	                  |j                  ddgi«       | j-                  |j                  |«       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                   d«       | j	                  |j"                  t        g d¢«      «       | j	                  |j$                  t        g d¢«      «       | j	                  |j&                  t        g d¢«      «       | j/                  |j(                  «       y )Nr‘   rE   r…   r‹   r�   ÚenumrÜ   ©r…   r{  r   r™  )r…   r   r…   ú$.foo)rE   r{  r‘   r¬  )r…   rE   r{  r‘   r¬  )r   rØ   r=   r>   r(   rF   r   rC   r   r   rš  r›  rœ  r   r�  rž  rŸ  rD   r   r¡  r¢  r£  r¤  r¥  r¦  s           r   Ú	test_typez$TestValidationErrorDetails.test_type{  sG  € Ø˜1�:ˆàØ˜Ð#à$Ø#(¨6°A°3¨-Ð"8ñðð
ˆô ×.Ñ.¨vÓ6ˆ	Ü�i×+Ñ+¨HÓ5Ó6ˆØ×Ñœ˜V› aÔ(Ø�1‰Iˆà×Ñ˜Ÿ™ fÔ-Ø×Ñ˜×*Ñ*¨F°6©NÔ;Ø×Ñ˜Ÿ™ XÔ.Ø×Ñ˜Ÿ™ 6Ô*Ø×Ñ˜!Ÿ(™(Ô#à×Ñ˜Ÿ™¤ r£Ô+Ø×Ñ˜Ÿ™¬%°«)Ô4Ø×Ñ˜Ÿ™¬%°«)Ô4Ø×Ñ˜Ÿ™ cÔ*à×Ñ˜Ÿ™¬¨v¨h«Ô8Ø×Ñ˜×/Ñ/´¸°x³ÔAØ×Ñ˜×/Ñ/´¸°x³ÔAà×Ñœ˜QŸY™Y›¨Ô+ä˜qŸy™yÓ)‰ˆˆBà×Ñ˜Ÿ™ vÔ.Ø×Ñ˜×+Ñ+¨V°F©^¸AÑ->¸vÑ-FÔGØ×Ñ˜Ÿ™ hÔ/Ø×Ñ˜Ÿ™ F¨6¡N°1Ñ$5Ô6Ø�‰�b—i‘i Ô#à×Ñ˜Ÿ™¤%¨£)Ô,Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜×)Ñ)¬5°«9Ô5Ø×Ñ˜Ÿ™ sÔ+à×Ñ˜Ÿ™¬°°6¨{Ó);Ô<Ø×Ñ˜×0Ñ0´%¸¸F¸Ó2DÔEØ×Ñ˜×0Ñ0´%Ò8KÓ2LÔMà×Ñ˜Ÿ™Ô$à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜×+Ñ+¨a¨SÔ1Ø×Ñ˜Ÿ™ aÔ(Ø×Ñ˜Ÿ™ V¨a¨S MÔ2Ø�‰�b—i‘i Ô#à×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜Ÿ™ wÔ/à×ÑØ�N‰NœEÒ"BÓCô	
ð 	×ÑØ×#Ñ#¤UÒ+KÓ%Lô	
ð 	×ÑØ×#Ñ#ÜÒ:Ó;ô	
ð
 	×Ñ˜Ÿ™Õ$r1   c                óò  — ddgdddœ}dddid	did
g d¢dœdœi}t        j                  |«      }|j                  |«      }t        |«      \  }}}}| j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  t        dg«      «       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d	«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       y )NrÜ   rE   é   Úspam)r‘   r™   r\  Úquuxr{  r…   r�   r"  é
   )rÜ   rV  é   é   )r¶   r¬  r[  r™   r\  r‘   ú$.barz$.bazr®  r¬  r¶   )r   rØ   r>   r£  r(   rœ  r   r�  rž  rŸ  r   )	r/   r   r   r   r   r¨  r©  Úe3Úe4s	            r   Útest_single_nestingz.TestValidationErrorDetails.test_single_nestingÈ  sT  € Ø a S°¸VÑDˆàØ Ð)Ø" A�Ø#%ª|Ñ<ñð
ˆô ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ& vÓ.‰ˆˆB��Bà×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜Ÿ™¤%¨¨£.Ô1à×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:à×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:Ø×Ñ˜×)Ñ)¬5°%°«>Ô:à×Ñ˜Ÿ™ wÔ/Ø×Ñ˜Ÿ™ wÔ/Ø×Ñ˜Ÿ™ wÔ/Ø×Ñ˜Ÿ™ wÔ/à×Ñ˜Ÿ™ zÔ2Ø×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ yÔ1Ø×Ñ˜Ÿ™ vÕ.r1   c                ó   — ddddgidœdg}dddgddd	gid
ddiddidœdœdœdœdœ}t        j                  |«      }|j                  |«      }t        |«      \  }}}}}	}
| j	                  |j
                  t        g «      «       | j	                  |j
                  t        dg«      «       | j	                  |j
                  t        ddg«      «       | j	                  |j
                  t        g d¢«      «       | j	                  |	j
                  t        g d¢«      «       | j	                  |
j
                  t        ddg«      «       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |	j                  d«       | j	                  |
j                  d«       | j	                  |j                  t        dg«      «       | j	                  |j                  t        ddg«      «       | j	                  t        |j                  «      g d¢«       | j	                  t        |j                  «      g d¢«       | j	                  t        |	j                  «      g d ¢«       | j	                  t        |
j                  «      g d!¢«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |	j                  d«       | j	                  |
j                  d«       y )"NrE   rÜ   r\  r€  r³  r�   r�   r¬  rN   r‰   ri  Tr"  )r™   r\  r­  )r…   ró   r   r™   )rE   r™   r™   )rE   r™   r\  r‘   r™  ú$[0]z$[1].barz$[1].bar.barz$[1].bar.bazz$[1].foor…   ró   )ró   r{  r™   r…   )ró   r{  r™   r{  r™   ri  )ró   r{  r™   r{  r\  r"  )ró   r{  r‘   r¬  )r   rØ   r>   r£  r(   rœ  r   rŸ  rD   r=   r   )r/   r   r   r   r   r¨  r©  r¸  r¹  Úe5Úe6s              r   Útest_multiple_nestingz0TestValidationErrorDetails.test_multiple_nestingï  sÚ  € Ø˜q¨%°!°¨Ñ6¸Ð?ˆàà! 8Ð,à" Q¨ FÐ+à 'à$.°Ð#5Ø$.° ?ñ'ññ	ññ
ˆô" ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ!.¨vÓ!6ÑˆˆB��B˜˜Bà×Ñ˜Ÿ™¤%¨£)Ô,Ø×Ñ˜Ÿ™¤%¨¨£*Ô-Ø×Ñ˜Ÿ™¤%¨¨E¨
Ó"3Ô4Ø×Ñ˜Ÿ™¤%Ò(9Ó":Ô;Ø×Ñ˜Ÿ™¤%Ò(9Ó":Ô;Ø×Ñ˜Ÿ™¤%¨¨E¨
Ó"3Ô4à×Ñ˜Ÿ™ sÔ+Ø×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ zÔ2Ø×Ñ˜Ÿ™ ~Ô6Ø×Ñ˜Ÿ™ ~Ô6Ø×Ñ˜Ÿ™ zÔ2à×Ñ˜Ÿ™¬°¨x«Ô9Ø×Ñ˜Ÿ™¬°¸Ð/@Ó)AÔBØ×ÑÜ�—‘Ó Ò"Hô	
ð 	×ÑÜ�—‘Ó ÚKô	
ð 	×ÑÜ�—‘Ó ÚKô	
ð 	×ÑÜ�—‘Ó Ò"Hô	
ð 	×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ zÔ2Ø×Ñ˜Ÿ™ zÔ2Ø×Ñ˜Ÿ™ vÕ.r1   c           	     ól  — dddddgddiddd	d
iidœdœdœgiiddgdd	d
iidœ}dddddddiidœidœi}t        j                  |«      }|j                  |«      \  }| j                  |j                  t        dg«      «       | j                  |j                  t        g d¢«      «       | j                  |j                  d«       |j                  \  }| j                  |j                  t        g d¢«      «       | j                  |j                  t        g d¢«      «       | j                  |j                  d«       |j                  \  }| j                  |j                  t        g d¢«      «       | j                  |j                  t        g d¢«      «       | j                  |j                  d«       y )NÚnoder—  r�   rÔ   Úchildrenr…   r�   ú^.*$rµ   z#/definitions/node)r…   r  )rÔ   rÂ  )r…   ri  r{  Úroot)Údefinitionsr…   ri  r{  r_   Úab)r{  rÄ  r—  z$.root)rÄ  rÂ  r_   )	r{  rÄ  r—  r   r{  rÂ  r  rÃ  r—  z$.root.children.a)rÄ  rÂ  r_   rÂ  rÆ  )r{  rÄ  r—  r   r{  rÂ  r  rÃ  r—  r   r{  rÂ  r  rÃ  r—  z$.root.children.a.children.ab)	r   r¸   r>   r(   rž  r   r¡  rŸ  r¢  )r/   r   r   r   r§  r¨  r©  s          r   Útest_recursivez)TestValidationErrorDetails.test_recursive,  sè  € ð ØØ (Ø%+¨ZÐ$8ð !'¨ð%ð )1à$*Ø(.Ð0Dð-&ð6"ñ)ñ	'ñð ððð* Ø˜Ø! FÐ,@Ð#AÐBñ1
ˆð8 ØàØ #à Ø &¨ð#ð%ñð
ñð
ˆô  ×.Ñ.¨vÓ6ˆ	à×"Ñ" 8Ó,‰ˆØ×Ñ˜Ÿ™¬%°°«/Ô:Ø×ÑØ×"Ñ"¤EÒ*IÓ$Jô	
ð 	×Ñ˜Ÿ™ hÔ/à�i‰i‰ˆØ×Ñ˜×)Ñ)¬5Ò1JÓ+KÔLØ×ÑØ×#Ñ#¤Uò
ó&ô	
ð 	×Ñ˜Ÿ™Ð':Ô;à�j‰j‰ˆØ×ÑØ×ÑœeÚ;óô	
ð
 	×ÑØ×#Ñ#¤Uòó&ô	
ð* 	×Ñ˜Ÿ™Ð'FÕGr1   c                óü  — dddœ}ddddœi}t        j                  |«      }|j                  |«      }t        |«      \  }}| j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j                  d	«       | j	                  |j                  d
«       | j	                  |j                  d«       | j	                  |j                  d«       y )Nr™   rÜ   râ   rû   r‹   rH  ©r…   rÕ   r‘   r·  r®  r…   rÕ   ©	r   rØ   r>   r£  r(   rœ  r   rŸ  r   ©r/   r   r   r   r   r¨  r©  s          r   Útest_additionalPropertiesz4TestValidationErrorDetails.test_additionalProperties‘  sÍ   € Ø ¨Ñ+ˆØ(°9ÈÑ*KÐLˆä×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ˜vÓ&‰ˆˆBà×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜Ÿ™¤%¨¨£.Ô1à×Ñ˜Ÿ™ wÔ/Ø×Ñ˜Ÿ™ wÔ/à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ yÕ1r1   c                ó  — dddœ}dddiddidœi}t        j                  |«      }|j                  |«      }t        |«      \  }}| j	                  |j
                  t        d	g«      «       | j	                  |j
                  t        d
g«      «       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       | j	                  |j                  d«       y )NrE   rÜ   râ   r  r…   r�   rÕ   rH  r™   r‘   r·  r®  rÊ  rË  s          r   Útest_patternPropertiesz1TestValidationErrorDetails.test_patternProperties¢  sÞ   € Ø QÑ'ˆàØ Ð)Ø! 1�~ñ"ð
ˆô ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ˜vÓ&‰ˆˆBà×Ñ˜Ÿ™¤%¨¨£.Ô1Ø×Ñ˜Ÿ™¤%¨¨£.Ô1à×Ñ˜Ÿ™ wÔ/Ø×Ñ˜Ÿ™ wÔ/à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ yÕ1r1   c                óü  — ddg}g dddœdœ}t        j                  |«      }|j                  |«      }t        |«      \  }}| j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j                  d«       | j	                  |j                  d	«       | j	                  |j                  d
«       | j	                  |j                  d«       y )Nr‘   rE   r‹   rH  rÉ  rò   r   r¼  ú$[1]r…   rÕ   rÊ  rË  s          r   Útest_additionalItemsz/TestValidationErrorDetails.test_additionalItems¸  sÑ   € Ø˜1�:ˆàØ(1¸aÑ@ñ
ˆô
 ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ˜vÓ&‰ˆˆBà×Ñ˜Ÿ™¤%¨¨£*Ô-Ø×Ñ˜Ÿ™¤%¨¨£*Ô-à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ vÔ.à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ yÕ1r1   c                óþ  — g d¢}i gdddœdœ}t        j                  |«      }|j                  |«      }t        |«      \  }}| j	                  |j
                  t        dg«      «       | j	                  |j
                  t        dg«      «       | j	                  |j                  d«       | j	                  |j                  d	«       | j	                  |j                  d
«       | j	                  |j                  d«       y )N)r‘   r™   rE   r‹   rH  rÉ  rò   rE   rÜ   rÐ  z$[2]r…   rÕ   rÊ  rË  s          r   Útest_additionalItems_with_itemsz:TestValidationErrorDetails.test_additionalItems_with_itemsÌ  sÏ   € Ú$ˆà�TØ(1¸aÑ@ñ
ˆô
 ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0ˆÜ˜vÓ&‰ˆˆBà×Ñ˜Ÿ™¤%¨¨£*Ô-Ø×Ñ˜Ÿ™¤%¨¨£*Ô-à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ vÔ.à×Ñ˜Ÿ™ vÔ.Ø×Ñ˜Ÿ™ yÕ1r1   c                ó¬  — ddi}ddddiii}t        j                  |«      }|j                  |«      \  }| j                  |j                  d«       | j                  |j
                  d«       | j                  |j                  t        g «      «       | j                  |j                  d«       | j                  |j                  t        ddg«      «       y )Nr‘   rŒ   ÚpropertyNamesr˜   r–   z0'foo' should not be valid under {'const': 'foo'}r™  ©
r   rï   r>   r(   r   r   rœ  r   rŸ  rD   )r/   r   r   r   Úerrors        r   Útest_propertyNamesz-TestValidationErrorDetails.test_propertyNamesà  s»   € Ø˜2�;ˆØ! E¨G°UÐ+;Ð#<Ð=ˆä×.Ñ.¨vÓ6ˆ	Ø×&Ñ& xÓ0‰ˆà×Ñ˜Ÿ™¨%Ô0Ø×ÑØ�M‰MØ>ô	
ð 	×Ñ˜Ÿ™¤U¨2£YÔ/Ø×Ñ˜Ÿ™¨#Ô.Ø×Ñ˜×*Ñ*¬E°?ÀEÐ2JÓ,KÕLr1   c                ó¦  — ddiddidœ}t        j                  |«      }|j                  d«      \  }| j                  |j                  d«       | j                  |j
                  d«       | j                  |j                  t        g «      «       | j                  |j                  d«       | j                  |j                  t        ddg«      «       y )Nr–   rŒ   é   )ÚifÚthenú13 was expectedr™  rÜ  rÖ  ©r/   r   r   r×  s       r   Útest_if_thenz'TestValidationErrorDetails.test_if_thenð  ó°   € à˜B�-Ø˜b�Mñ
ˆô
 ×.Ñ.¨vÓ6ˆ	Ø×&Ñ& rÓ*‰ˆà×Ñ˜Ÿ™¨'Ô2Ø×Ñ˜Ÿ™Ð(9Ô:Ø×Ñ˜Ÿ™¤U¨2£YÔ/Ø×Ñ˜Ÿ™¨#Ô.Ø×Ñ˜×*Ñ*¬E°6¸7Ð2CÓ,DÕEr1   c                ó¦  — ddiddidœ}t        j                  |«      }|j                  d«      \  }| j                  |j                  d«       | j                  |j
                  d«       | j                  |j                  t        g «      «       | j                  |j                  d«       | j                  |j                  t        ddg«      «       y )	Nr–   rŒ   rÚ  )rÛ  Úelser±  rÝ  r™  râ  rÖ  rÞ  s       r   Útest_if_elsez'TestValidationErrorDetails.test_if_elseÿ  rà  r1   c                ó2  — t        j                  d«      }|j                  d«      \  }| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  fdd d ddt        g «      df«       y )NFrŒ   zFalse schema does not allow 12r™  )r   rï   r>   r(   r   r   rC   r   r   rD   rŸ  r   )r/   r   r×  s      r   Útest_boolean_schema_Falsez4TestValidationErrorDetails.test_boolean_schema_False  sŒ   € Ü×.Ñ.¨uÓ5ˆ	Ø×&Ñ& rÓ*‰ˆà×Ñà—‘Ø—‘Ø×%Ñ%Ø—‘Ø—‘Ø×!Ñ!Ø—‘ðð 1ØØØØÜ�b“	Øðõ	
r1   c                ó²  — ddddii}}t        j                  d|it        j                  di ||i¬«      ¬«      }|j                  d	d
i«      \  }| j	                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  fdddd
t        d	g«      ddit        ddg«      df«       y )NÚsomeRefrû   r…   r‹   rµ   rp   ©Ústore©Úresolverr‘   ÚnotAnIntegerz''notAnInteger' is not of type 'integer'r®  )r   rï   Ú_RefResolverr>   r(   r   r   rC   r   rž  r   rD   rŸ  r   )r/   Úrefr   r   r×  s        r   Útest_refz#TestValidationErrorDetails.test_ref'  sâ   € ØÐ"8¸6À9Ð:MÐ!NˆVˆÜ×.Ñ.Ø�SˆMÜ×,Ñ,¨R°¸CÀ¸=ÔIô
ˆ	ð ×&Ñ&¨¨~Ð'>Ó?‰ˆà×Ñà—‘Ø—‘Ø×%Ñ%Ø—‘Ø×#Ñ#Ø—‘Ø×!Ñ!Ø—‘ð	ð :ØØØÜ�u�g“Ø˜Ð#ÜÐ-¨vÐ6Ó7Øð	õ	
r1   c                ó–  — dddii i ddigi}t        j                  |«      }|j                  g d¢«      \  }}| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fddddt        d	g«      ddit        g d
¢«      df«       | j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fddddt        dg«      ddit        g d¢«      df«       y )NrD  r…   r�   r¶   rN   rG  rÉ   rE   r   )rD  r   r…   r¼  z"5 is greater than the maximum of 3rH  )rD  rN   r¶   ú$[3]©r   rš   r>   r(   r   r   rC   r   rž  r   rD   rŸ  r   )r/   r   r   Ú
type_errorÚ	min_errors        r   Útest_prefixItemsz+TestValidationErrorDetails.test_prefixItemsF  s[  € Ø 6¨8Ð"4°b¸"¸yÈ!¸nÐ!MÐNˆÜ×3Ñ3°FÓ;ˆ	Ø )× 5Ñ 5Ò6FÓ GÑˆ
�IØ×Ñà×"Ñ"Ø×$Ñ$Ø×*Ñ*Ø×#Ñ#Ø×(Ñ(Ø×!Ñ!Ø×&Ñ&Ø×$Ñ$ð	ð ,ØØØÜ�q�c“
Ø˜Ð"ÜÒ0Ó1Øð	ô	
ð, 	×Ñà×!Ñ!Ø×#Ñ#Ø×)Ñ)Ø×"Ñ"Ø×'Ñ'Ø× Ñ Ø×%Ñ%Ø×#Ñ#ð	ð 5ØØØÜ�q�c“
Ø˜A�ÜÒ3Ó4Øð	õ	
r1   c                óŽ  — ddii gdœ}t        j                  |«      }|j                  g d¢«      \  }}| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fddddt        dg«      ddit        ddg«      d	f«       | j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fd
dddt        dg«      ddit        ddg«      df«       y )Nr…   r�   rC  )r‘   rÜ   r™   rV  r\  z2 is not of type 'string'rÜ   rE   ró   rÐ  z4 is not of type 'string'rV  rN   rñ  rò  ©r/   r   r   r¨  r©  s        r   rE  z6TestValidationErrorDetails.test_prefixItems_with_itemsw  sE  € à˜hÐ'Ø˜4ñ
ˆô ×3Ñ3°FÓ;ˆ	Ø×&Ñ&Ò'BÓC‰ˆˆBØ×Ñà—
‘
Ø—‘Ø×"Ñ"Ø—‘Ø× Ñ Ø—	‘	Ø—‘Ø—‘ð	ð ,ØØØÜ�q�c“
Ø˜Ð"Ü�w Ð'Ó(Øð	ô	
ð, 	×Ñà—
‘
Ø—‘Ø×"Ñ"Ø—‘Ø× Ñ Ø—	‘	Ø—‘Ø—‘ð	ð ,ØØØÜ�q�c“
Ø˜Ð"Ü�w Ð'Ó(Øð	õ	
r1   c                ó~  — ddiddœ}t        j                  |«      }|j                  g d¢«      \  }| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fdddg d¢t        g «      ddiddœt        dg«      d	f«       y
)zˆ
        `contains` + `maxContains` produces only one error, even if there are
        many more incorrectly matching elements.
        r…   r�   rÜ   r]  )r‘   rÜ   r™   rV  r\  r³  r^  rX  r  r™  Nrò  rÞ  s       r   r_  z1TestValidationErrorDetails.test_contains_too_many«  s¼   € ð
  & xÐ0ÀÑCˆÜ×3Ñ3°FÓ;ˆ	Ø×&Ñ&Ò'JÓK‰ˆØ×Ñà—‘Ø—‘Ø×%Ñ%Ø—‘Ø×#Ñ#Ø—‘Ø×!Ñ!Ø—‘ð	ð MØØÚ3Ü�b“	Ø$ hÐ/ÀÑBÜ�z�lÓ#Øð	õ	
r1   c                ó~  — ddiddœ}t        j                  |«      }|j                  g d¢«      \  }| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fdddg d¢t        g «      ddiddœt        dg«      d	f«       y )
Nr…   r�   rÜ   rQ  )r‘   rÜ   rV  rS  rR  r  r™  rò  rÞ  s       r   rT  z0TestValidationErrorDetails.test_contains_too_fewÊ  sº   € Ø% xÐ0ÀÑCˆÜ×3Ñ3°FÓ;ˆ	Ø×&Ñ&¢}Ó5‰ˆØ×Ñà—‘Ø—‘Ø×%Ñ%Ø—‘Ø×#Ñ#Ø—‘Ø×!Ñ!Ø—‘ð	ð?ð ØÚÜ�b“	Ø$ hÐ/ÀÑBÜ�z�lÓ#Øðõ	
r1   c                ó‚  — ddiddœ}t        j                  |«      }|j                  ddg«      \  }| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  fddddiddgt        g «      ddiddœt        dg«      df«       y )	Nr…   r�   rÜ   rQ  rV  z7[2, 4] does not contain items matching the given schemar  r™  rò  rÞ  s       r   Útest_contains_nonez-TestValidationErrorDetails.test_contains_noneè  sÆ   € Ø% xÐ0ÀÑCˆÜ×3Ñ3°FÓ;ˆ	Ø×&Ñ&¨¨1 vÓ.‰ˆØ×Ñà—‘Ø—‘Ø×%Ñ%Ø—‘Ø×#Ñ#Ø—‘Ø×!Ñ!Ø—‘ð	ð JØØ˜Ð"Ø�A�Ü�b“	Ø$ hÐ/ÀÑBÜ�z�lÓ#Øð	õ	
r1   c                ó  — dddgiidddgdœidœ}t        j                  |«      }|j                  di i«      \  }}| j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  f	d	ddgi t        dg«      ddgit        g d
¢«      t        g d
¢«      df	«       | j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  f	dddgi t        dg«      ddgdœt        g d
¢«      t        g d
¢«      df	«       y )Nr‘   ri  r™   Úapropz#/$defs/foor\  )rµ   ri  )r´   r{  z'bar' is a required property)r{  rý  ri  z$.apropz'baz' is a required property)r   rš   r>   r(   r   r   rC   r   rž  r   rD   r   rŸ  r   r÷  s        r   Útest_ref_siblingz+TestValidationErrorDetails.test_ref_sibling  s…  € à˜j¨5¨'Ð2Ð3àØ)Ø!& ñðñ
ˆô ×3Ñ3°FÓ;ˆ	Ø×&Ñ&¨° }Ó5‰ˆˆBØ×Ñà—
‘
Ø—‘Ø×"Ñ"Ø—‘Ø× Ñ Ø—	‘	Ø—‘Ø×'Ñ'Ø—‘ð
ð /ØØ�ØÜ�w�iÓ Ø˜e˜WÐ%ÜÒ9Ó:ÜÒ9Ó:Øð
ô	
ð0 	×Ñà—
‘
Ø—‘Ø×"Ñ"Ø—‘Ø× Ñ Ø—	‘	Ø—‘Ø×'Ñ'Ø—‘ð
ð /ØØ�ØÜ�w�iÓ Ø&°U°GÑ<ÜÒ9Ó:ÜÒ9Ó:Øð
õ	
r1   N)rW   r¼   rX   rª  r¯  rº  r¿  rÇ  rÌ  rÎ  rÑ  rÓ  rØ  rß  rã  rå  rï  rõ  rE  r_  rT  rû  rþ  r   r1   r   r•  r•  3  st   „ òC-òJK%òZ%/òN;/òzcHòJ2ò"2ò,2ò(2ò(Mò FòFò
ò2
ò>/
òb2
òh
ò>
ò<
ó6<
r1   r•  c                  ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚMetaSchemaTestsMixinc                ó¦   — | j                  t        j                  «      5  | j                  j	                  ddi«       d d d «       y # 1 sw Y   y xY w)Nr{  rŒ   ©rœ   r   r�   r-   r›   r.   s    r   Útest_invalid_propertiesz,MetaSchemaTestsMixin.test_invalid_propertiesD  sB   € Ø×Ñœz×5Ñ5Ó6ñ 	<Ø�N‰N×'Ñ'¨°rÐ(:Ô;÷	<÷ 	<ñ 	<úó    AÁAc                ó¦   — | j                  t        j                  «      5  | j                  j	                  ddi«       d d d «       y # 1 sw Y   y xY w)Nr"  Ú1r  r.   s    r   Útest_minItems_invalid_stringz1MetaSchemaTestsMixin.test_minItems_invalid_stringH  sB   € Ø×Ñœz×5Ñ5Ó6ñ 	;à�N‰N×'Ñ'¨°SÐ(9Ô:÷	;÷ 	;ñ 	;úr  c                ó:  — | j                   t        j                  t        j                  hv rF| j	                  t
        j                  «      5  | j                   j                  dg i«       ddd«       y| j                   j                  dg i«       y# 1 sw Y   yxY w)z¢
        Technically, all the spec says is they SHOULD have elements, not MUST.

        (As of Draft 6. Previous drafts do say MUST).

        See #529.
        r¬  N©r-   r   rØ   r¸   rœ   r   r�   r›   r.   s    r   Útest_enum_allows_empty_arraysz2MetaSchemaTestsMixin.test_enum_allows_empty_arraysM  s…   € ð �>‰>Ü×&Ñ&Ü×&Ñ&ð
ñ 
ð ×"Ñ"¤:×#9Ñ#9Ó:ñ :Ø—‘×+Ñ+¨V°R¨LÔ9÷:ð :ð �N‰N×'Ñ'¨°¨Õ5÷:ð :ús   ÁBÂBc                óB  — | j                   t        j                  t        j                  hv rH| j	                  t
        j                  «      5  | j                   j                  dddgi«       ddd«       y| j                   j                  dddgi«       y# 1 sw Y   yxY w)zž
        Technically, all the spec says is they SHOULD be unique, not MUST.

        (As of Draft 6. Previous drafts do say MUST).

        See #529.
        r¬  rŒ   Nr	  r.   s    r   Ú!test_enum_allows_non_unique_itemsz6MetaSchemaTestsMixin.test_enum_allows_non_unique_items^  s”   € ð �>‰>Ü×&Ñ&Ü×&Ñ&ð
ñ 
ð ×"Ñ"¤:×#9Ñ#9Ó:ñ @Ø—‘×+Ñ+¨V°b¸"°XÐ,>Ô?÷@ð @ð �N‰N×'Ñ'¨°"°b°Ð(:Õ;÷@ð @ús   Á BÂBc                ó¦   — | j                  t        j                  «      5  | j                  j	                  ddi«       d d d «       y # 1 sw Y   y xY w)NrL  ú
*notaregexr  r.   s    r   Útest_schema_with_invalid_regexz3MetaSchemaTestsMixin.test_schema_with_invalid_regexo  sF   € Ø×Ñœz×5Ñ5Ó6ñ 	CØ�N‰N×'Ñ'¨°LÐ(AÔB÷	C÷ 	Cñ 	Cúr  c                óB   — | j                   j                  ddid ¬«       y )NrL  r  ©r  )r-   r›   r.   s    r   Ú>test_schema_with_invalid_regex_with_disabled_format_validationzSMetaSchemaTestsMixin.test_schema_with_invalid_regex_with_disabled_format_validations  s$   € Ø�‰×#Ñ#Ø˜Ð%Øð 	$õ 	
r1   N)	rW   r¼   rX   r  r  r
  r  r  r  r   r1   r   r   r   B  s!   „ ò<ò;ò
6ò"<ò"Có
r1   r   c                  ó~   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚValidatorTestMixinc                ób   — | j                  | j                  i «      t        j                  «       y r3   )ÚassertIsInstancer-   r   r.   s    r   Ú)test_it_implements_the_validator_protocolz<ValidatorTestMixin.test_it_implements_the_validator_protocol{  s!   € Ø×Ñ˜dŸn™n¨RÓ0´)×2EÑ2EÕFr1   c                ó€   — | j                   \  }}| j                  | j                  |«      j                  |«      «       y r3   )Úvalidr’   r-   r¹   ©r/   r   r   s      r   Útest_valid_instances_are_validz1ValidatorTestMixin.test_valid_instances_are_valid~  s0   € ØŸ:™:Ñˆ�Ø�‰˜Ÿ™ vÓ.×7Ñ7¸ÓAÕBr1   c                ó€   — | j                   \  }}| j                  | j                  |«      j                  |«      «       y r3   )Úinvalidr¥  r-   r¹   r  s      r   Ú$test_invalid_instances_are_not_validz7ValidatorTestMixin.test_invalid_instances_are_not_valid‚  s2   € ØŸ<™<Ñˆ�Ø×Ñ˜Ÿ™¨Ó/×8Ñ8¸ÓBÕCr1   c                óz   — | j                  t        «       t        «       i«      j                  t        «       ¬«       y )N)r   )r-   r�   rž   r.   s    r   Ú(test_non_existent_properties_are_ignoredz;ValidatorTestMixin.test_non_existent_properties_are_ignored†  s'   € Ø�‰œ›¤&£(Ð+Ó,×5Ñ5¼v»xÐ5ÕHr1   c                óH  — ddit        «       }}| j                  ||¬«      }|j                  ddi| j                  j                  ¬«      }| j                  ddi| j                  j                  |j                  ¬«      }| j                  ||«       | j                  ||«       y )Nr…   r‹   r  r�   )r   r  )r  Ú	_resolver)r   r-   ÚevolveÚFORMAT_CHECKERr"  r(   ÚassertNotEqual)r/   r   r  rj   r¥   Úexpecteds         r   Útest_evolvezValidatorTestMixin.test_evolve‰  s¨   € Ø"(¨)Ð!4´m³o�ˆØ—>‘>ØØ)ð "ó 
ˆð �o‰oØ˜HÐ%ØŸ>™>×8Ñ8ð ó 
ˆð
 —>‘>Ø�XÐØŸ>™>×8Ñ8Ø—m‘mð "ó 
ˆð 	×Ñ˜˜hÔ'Ø×Ñ˜C Õ*r1   c                ó€  — | j                  t        «      5  t         G d„ d| j                  «      «       }ddd«        i d¬«      }| j	                  |j
                  g d¢«       |j                  ddi¬	«      }| j	                  |j
                  g d¢«       | j	                  |j                  d«       y# 1 sw Y   Œ€xY w)
ar  
        Subclassing validators isn't supported public API, but some users have
        done it, because we don't actually error entirely when it's done :/

        We need to deprecate doing so first to help as many of these users
        ensure they can move to supported APIs, but this test ensures that in
        the interim, we haven't broken those users.
        c                  ó2   — e Zd Z ed„ ¬«      Z ed¬«      Zy)ú:ValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNoc                 ó
   — g d¢S )Nrø   r   r   r1   r   ru   zCValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNo.<lambda>ª  s   € ªI€ r1   )Úfactoryr·   ©ÚdefaultN)rW   r¼   rX   r   r‘   Ú_barr   r1   r   ÚOhNor*  ¨  s   „ áÑ$5Ô6�Ù RÔ(‘r1   r0  NrŒ   )r™   rø   r…   r‹   ©r   )ÚassertWarnsÚDeprecationWarningr   r-   r(   r‘   r#  r/  )r/   r0  r   r¥   s       r   Útest_evolve_with_subclassz,ValidatorTestMixin.test_evolve_with_subclass�  s§   € ð ×ÑÔ0Ó1ñ 	)Üô)�t—~‘~ó )ó ð)÷	)ñ ˜ Ô$ˆ	Ø×Ñ˜Ÿ™ª	Ô2à×Ñ v¨yÐ&9ÐÓ:ˆØ×Ñ˜Ÿ™¢)Ô,Ø×Ñ˜Ÿ™ 2Õ&÷	)ð 	)ús   –B4Â4B=c                ód   — | j                  | j                  i «      j                  dd«      «       y )Nr‘   r�   )r’   r-   r†   r.   s    r   Ú#test_is_type_is_true_for_valid_typez6ValidatorTestMixin.test_is_type_is_true_for_valid_type´  s$   € Ø�‰˜Ÿ™ rÓ*×2Ñ2°5¸(ÓCÕDr1   c                ód   — | j                  | j                  i «      j                  dd«      «       y )Nr‘   r‰   ©r¥  r-   r†   r.   s    r   Ú&test_is_type_is_false_for_invalid_typez9ValidatorTestMixin.test_is_type_is_false_for_invalid_type·  s&   € Ø×Ñ˜Ÿ™¨Ó+×3Ñ3°E¸7ÓCÕDr1   c                óÄ   — | j                  | j                  i «      j                  dd«      «       | j                  | j                  i «      j                  dd«      «       y )NTr‹   rŽ   r8  r.   s    r   Ú,test_is_type_evades_bool_inheriting_from_intz?ValidatorTestMixin.test_is_type_evades_bool_inheriting_from_intº  sJ   € Ø×Ñ˜Ÿ™¨Ó+×3Ñ3°D¸)ÓDÔEØ×Ñ˜Ÿ™¨Ó+×3Ñ3°D¸(ÓCÕDr1   c                óˆ  — dddii}t        j                  | j                  | j                  j                  j	                  dd„ «      ¬«      } ||«      }|j                  ddt        d«      t        d«      z  g«       d	i g d
d g}| j                  |j                  |«      D �cg c]  }|j                  ‘Œ c}|«       y c c}w )Nró   r…   rŽ   c                ó^   — t        |t        t        t        f«      xr t        |t        «       S r3   )Ú
isinstanceÚintÚfloatr   Úbool©r  r
  s     r   ru   zGValidatorTestMixin.test_it_can_validate_with_decimals.<locals>.<lambda>Ä  s,   € ¤zØœC¤¬Ð0ó(ò (2ä$ U¬DÓ1Ð1ð r1   ©r&   rE   gš™™™™™ñ?r¶  r‘   T)
r   r§   r-   r6   Úredefinerž   r   r(   r>   r   )r/   r   r-   r   r  r×  s         r   Ú"test_it_can_validate_with_decimalsz5ValidatorTestMixin.test_it_can_validate_with_decimals¾  s·   € Ø˜F HÐ-Ð.ˆÜ×%Ñ%Ø�N‰NØŸ™×4Ñ4×=Ñ=Øñ2óô
ˆ	ñ ˜fÓ%ˆ	Ø×Ñ˜A˜s¤G¨A£J´¸³Ñ$;Ð<Ô=à˜"˜b $¨Ð-ˆØ×ÑØ)2×)>Ñ)>¸wÓ)GÖH ˆU�^‹^ÒHØõ	
ùÚHs   Â#B?c                ó`   — | j                  ddit        «       ¬«      }|j                  d«       y )Nr  Úcarrotr  Úbugs)r-   r   rž   ©r/   r   s     r   Ú7test_it_returns_true_for_formats_it_does_not_know_aboutzJValidatorTestMixin.test_it_returns_true_for_formats_it_does_not_know_aboutÓ  s1   € Ø—N‘NØ�xÐ ´³ð #ó 
ˆ	ð 	×Ñ˜6Õ"r1   c                ó\   — | j                  i «      }| j                  |j                  «       y r3   )r-   rš  r  rI  s     r   Ú,test_it_does_not_validate_formats_by_defaultz?ValidatorTestMixin.test_it_does_not_validate_formats_by_defaultÙ  s$   € Ø—N‘N 2Ó&ˆ	Ø×Ñ˜)×2Ñ2Õ3r1   c                ó”  ‡ ‡— t        «       }t        d«      Š|j                  dt        ¬«      ˆˆ fd„«       }‰ j                  ddi|¬«      }|j	                  d«       ‰ j                  t        j                  «      5 }|j	                  d«       d d d «       ‰ j                  j                  j                  ‰«       y # 1 sw Y   Œ0xY w)	NzBad!r‘   )Úraisesc                óJ   •— | dk(  ry| dk(  r‰‚‰j                  d| › d�«       y )NÚgoodTÚbadzWhat is z? [Baby Don't Hurt Me])r    )r  rQ  r/   s    €€r   ÚcheckzTValidatorTestMixin.test_it_validates_formats_if_a_checker_is_provided.<locals>.checká  s/   ø€ à˜ŠØØ˜%’Ø�	à—	‘	˜H U GÐ+AÐBÕCr1   r  r  rP  rQ  )r   Ú
ValueErrorr  r-   rž   rœ   r   r   r¤  Ú	exceptionÚcause)r/   r  rR  r   ÚcmrQ  s   `    @r   Ú2test_it_validates_formats_if_a_checker_is_providedzEValidatorTestMixin.test_it_validates_formats_if_a_checker_is_providedÝ  s·   ù€ Ü“/ˆÜ˜Ó ˆà	�‰˜¤jˆÓ	1ô	Dó 
2ð	Dð —N‘NØ�uÐ¨gð #ó 
ˆ	ð 	×Ñ˜6Ô"Ø×Ñœz×9Ñ9Ó:ð 	&¸bØ×Ñ˜uÔ%÷	&ð 	�‰�b—l‘l×(Ñ(¨#Õ.÷		&ð 	&ús   Á=B>Â>Cc                óÜ   — t        «       }d|gi}t        j                  | j                  | j                  j                  j                  |d„ «      ¬«      } ||«      j                  d«       y )Nr…   c                ó"   — t        |t        «      S r3   ©r>  r?  rB  s     r   ru   z@ValidatorTestMixin.test_non_string_custom_type.<locals>.<lambda>ü  s   € ¤z°%¼Ó'=€ r1   rC  r±  )r�   r   r§   r-   r6   rD  rž   )r/   Únon_string_typer   ÚCrazys       r   Útest_non_string_custom_typez.ValidatorTestMixin.test_non_string_custom_typeõ  s_   € Ü ›(ˆØ˜?Ð+Ð,ˆÜ×!Ñ!Ø�N‰NØŸ™×4Ñ4×=Ñ=ØÙ=óô
ˆñ 	ˆf‹×Ñ˜rÕ"r1   c                ót  — t        j                  | j                  | j                  j                  j	                  dd„ «      ¬«      }| j                  t        j                  «      5 } |ddi«      j                  d«       ddd«       | j                  dt        j                  «      «       y# 1 sw Y   Œ/xY w)	zh
        A tuple instance properly formats validation errors for uniqueItems.

        See #224
        r‰   c                ó"   — t        |t        «      S r3   )r>  ÚtuplerB  s     r   ru   zNValidatorTestMixin.test_it_properly_formats_tuples_in_errors.<locals>.<lambda>  s   € ¤z°%¼Ó'?€ r1   rC  ÚuniqueItemsT)rE   rE   Nz(1, 1) has non-unique elements)r   r§   r-   r6   rD  rœ   r   r   rž   rz   ÚstrrT  )r/   ÚTupleValidatorr§  s      r   Ú)test_it_properly_formats_tuples_in_errorsz<ValidatorTestMixin.test_it_properly_formats_tuples_in_errors  sš   € ô $×*Ñ*Ø�N‰NØŸ™×4Ñ4×=Ñ=ØÙ?óô
ˆð ×Ñœz×9Ñ9Ó:ð 	C¸aÙ˜M¨4Ð0Ó1×:Ñ:¸6ÔB÷	Cà�‰Ð6¼¸A¿K¹KÓ8HÕI÷	Cð 	Cús   Á&B.Â.B7c                óŽ  ‡— dddœ}t        dd«      Št        j                  | j                  | j                  j                  j                  d„ ˆfd„dœ«      ¬	«      } ||«      }t        g d
¢«      t        dgdgg«      t        dg«      t        dg«      gt        dg«      gt        dg«      ggt        dg«      ggggt        dg«      gggggt        t        dg«      g«      t        t        dg«      g«      g ‰dd«       ‰dd«      g ‰dt        dg«      g«       ‰dt        dg«      g«      g ‰d ‰dt        dg«      «      g«       ‰d ‰dt        dg«      «      g«      gt        t        t        dg«      «      «      t        t        t        dg«      «      «      gg
}|D ]  }|j                  |«       Œ t        g d¢«      t        dgdgg«      t        dg«      t        dg«      gt        dg«      gt        dg«      ggt        dg«      ggggt        dg«      gggggt        t        dg«      g«      t        t        dg«      g«      g ‰dd«       ‰dd«      g ‰dt        dg«      g«       ‰dt        dg«      g«      g ‰d ‰dt        dg«      «      g«       ‰d ‰dt        dg«      «      g«      gt        t        t        dg«      «      «      t        t        t        dg«      «      «      gg
}|D ];  }| j                  t        j                  «      5  |j                  |«       ddd«       Œ= y# 1 sw Y   ŒHxY w)zO
        Allow array to validate against another defined sequence type
        r‰   T)r…   ra  Ú	MyMappingza, bc                ó.   — t        |t        t        f«      S r3   )r>  r=   r   rB  s     r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   € ´JØ¤¤e˜}ó5€ r1   c                ó(   •— t        |t        ‰f«      S r3   )r>  r*   )r  r
  rf  s     €r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   ø€ ´ZØ¤ iÐ0ó6€ r1   )r‰   r�   rC  )r_   Nr  rp   TFr   r_   )r_   r:  r_   N)r   r   r§   r-   r6   Úredefine_manyr   rž   rœ   r   r   )r/   r   r-   r   Úvalid_instancesr   Úinvalid_instancesrf  s          @r   Útest_check_redefined_sequencez0ValidatorTestMixin.test_check_redefined_sequence  sY  ø€ ð "°$Ñ7ˆÜ˜{¨FÓ3ˆ	Ü×%Ñ%Ø�N‰NØŸ™×4Ñ4×BÑBñóñ	ó	ô
ˆ	ñ ˜fÓ%ˆ	ô Ò,Ó-Ü�E�7˜Q˜C�.Ó!Ü�E�7‹^œU A 3›ZÐ(Ü�U�G‹nÐ¤ q c£
˜|Ð,Ü˜�w“Ð Ð!Ð"Ð#¬°¨s«¨ ~Ð&6Ð%7Ð8Ü”E˜5˜'“NÐ#Ó$¤e¬U°A°3«Z¨LÓ&9Ð:Ù�s˜AÓ¡	¨#¨uÓ 5Ð6á˜#¤ q c£
˜|Ó,Ù˜#¤ u g£Ð/Ó0ðñ
 ˜#¡	¨#¬u°a°S«zÓ :Ð;Ó<Ù˜#¡	¨#¬u°e°W«~Ó >Ð?Ó@ðô ”5œ ˜w›Ó(Ó)¬5´´u¸a¸S³zÓ1BÓ+CÐDð!
ˆð& (ò 	)ˆHØ×Ñ˜xÕ(ð	)ô ’/Ó"Ü�E�7˜U˜GÐ$Ó%Ü�E�7‹^œU E 7›^Ð,Ü�U�G‹nÐ¤ u g£Ð/Ð0Ü˜�w“Ð Ð!Ð"Ð#¬°¨w«Ð(8Ð'9Ð&:Ð%;Ð<Ü”E˜5˜'“NÐ#Ó$¤e¬U°E°7«^Ð,<Ó&=Ð>Ù�s˜EÓ"¡I¨c°5Ó$9Ð:á˜#¤ u g£Ð/Ó0Ù˜#¤ u g£Ð/Ó0ðñ
 ˜#¡	¨#¬u°e°W«~Ó >Ð?Ó@Ù˜#¡	¨#¬u°e°W«~Ó >Ð?Ó@ðô ”5œ ˜w›Ó(Ó)¬5´´u¸e¸W³~Ó1FÓ+GÐHð!
Ðð& *ò 	-ˆHØ×"Ñ"¤:×#=Ñ#=Ó>ñ -Ø×"Ñ" 8Ô,÷-ð -ñ	-÷-ð -ús   ÌL;Ì;M	c                óÎ   — | j                  t        «      5  | j                  i «      j                  }d d d «       | j	                  t
        j                  «       y # 1 sw Y   Œ*xY wr3   )r2  r3  r-   rë  r  r   rí  )r/   rë  s     r   Ú.test_it_creates_a_ref_resolver_if_not_providedzAValidatorTestMixin.test_it_creates_a_ref_resolver_if_not_providedT  sP   € Ø×ÑÔ0Ó1ñ 	3Ø—~‘~ bÓ)×2Ñ2ˆH÷	3à×Ñ˜h¬
×(?Ñ(?Õ@÷	3ð 	3ús   –AÁA$c                óø   — dddi}}t        j                  di ||i¬«      }| j                  d|i|¬«      }| j                  t        j
                  «      5  |j                  d «       d d d «       y # 1 sw Y   y xY w)NÚsomeCoolRefr…   r‹   rp   rè  rµ   rê  )r   rí  r-   rœ   r   r   rž   ©r/   rî  r   rë  r   s        r   Ú/test_it_upconverts_from_deprecated_RefResolverszBValidatorTestMixin.test_it_upconverts_from_deprecated_RefResolversY  su   € Ø# f¨iÐ%8ˆVˆÜ×*Ñ*¨2¨r¸#¸v¸ÔGˆØ—N‘N F¨C =¸8�NÓDˆ	à×Ñœz×9Ñ9Ó:ñ 	%Ø×Ñ˜tÔ$÷	%÷ 	%ñ 	%ús   ÁA0Á0A9c                óà   ‡ —  G ˆ fd„d«      } |«       }ddi}‰ j                  t        j                  «      5  ‰ j                  ||¬«      j	                  d«       ddd«       y# 1 sw Y   yxY w)zb
        Legacy RefResolvers support only the context manager form of
        resolution.
        c                  ó"   •— e Zd Zeˆ fd„«       Zy)únValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolvers.<locals>.LegacyRefResolverc              3  ó>   •K  — ‰j                  |d«       ddi–— y ­w)Núthe refr…   r‹   ©r(   )Úthisrî  r/   s     €r   Ú	resolvingzxValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolvers.<locals>.LegacyRefResolver.resolvingh  s"   øè ø€ à× Ñ   iÔ0Ø˜yÐ)Ó)ùs   ƒN)rW   r¼   rX   r   rz  r.   s   €r   ÚLegacyRefResolverru  g  s   ø„ Øó*ó ñ*r1   r{  rµ   rw  rê  N)rœ   r   r   r-   rž   )r/   r{  rë  r   s   `   r   Ú@test_it_upconverts_from_yet_older_deprecated_legacy_RefResolverszSValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolversa  si   ø€ ÷	*ó 	*ñ %Ó&ˆØ˜)Ð$ˆà×Ñœz×9Ñ9Ó:ñ 	EØ�N‰N˜6¨HˆNÓ5×>Ñ>¸tÔD÷	E÷ 	Eñ 	Eús   ¸#A$Á$A-N)rW   r¼   rX   r  r  r  r   r'  r4  r6  r9  r;  rE  rJ  rL  rW  r]  rd  rl  rn  rr  r|  r   r1   r   r  r  z  sm   „ òGòCòDòIò+ò('ò.EòEòEò
ò*#ò4ò/ò0
#òJò"@-òDAò
%óEr1   r  c                  ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚAntiDraft6LeakMixinzN
    Make sure functionality from draft 6 doesn't leak backwards in time.
    c                óì   — | j                  t        j                  «      5 }| j                  j	                  d«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTzTrue is not of type©rœ   r   r�   r-   r›   rz   rb  rT  ©r/   r§  s     r   Útest_True_is_not_a_schemaz-AntiDraft6LeakMixin.test_True_is_not_a_schemay  sW   € Ø×Ñœz×5Ñ5Ó6ð 	.¸!Ø�N‰N×'Ñ'¨Ô-÷	.à�‰Ð+¬S°·±Ó-=Õ>÷	.ð 	.úó    A*Á*A3c                óì   — | j                  t        j                  «      5 }| j                  j	                  d«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NFzFalse is not of typer€  r�  s     r   Útest_False_is_not_a_schemaz.AntiDraft6LeakMixin.test_False_is_not_a_schema~  sW   € Ø×Ñœz×5Ñ5Ó6ð 	/¸!Ø�N‰N×'Ñ'¨Ô.÷	/à�‰Ð,¬c°!·+±+Ó.>Õ?÷	/ð 	/úrƒ  c                óì   — | j                  t        «      5 }| j                  d«      j                  d«       d d d «       | j	                  j
                  t        j                  «       y # 1 sw Y   Œ4xY w)NTrŒ   ©rœ   Ú	Exceptionr-   rž   ÚassertNotIsInstancerT  r   r   r�  s     r   Ú5test_True_is_not_a_schema_even_if_you_forget_to_checkzIAntiDraft6LeakMixin.test_True_is_not_a_schema_even_if_you_forget_to_checkƒ  sX   € Ø×ÑœyÓ)ð 	.¨QØ�N‰N˜4Ó ×)Ñ)¨"Ô-÷	.à× Ñ  §¡¬j×.HÑ.HÕI÷	.ð 	.úó   –!A*Á*A3c                óì   — | j                  t        «      5 }| j                  d«      j                  d«       d d d «       | j	                  j
                  t        j                  «       y # 1 sw Y   Œ4xY w)NFrŒ   r‡  r�  s     r   Ú6test_False_is_not_a_schema_even_if_you_forget_to_checkzJAntiDraft6LeakMixin.test_False_is_not_a_schema_even_if_you_forget_to_checkˆ  sX   € Ø×ÑœyÓ)ð 	/¨QØ�N‰N˜5Ó!×*Ñ*¨2Ô.÷	/à× Ñ  §¡¬j×.HÑ.HÕI÷	/ð 	/úr‹  N)rW   r¼   rX   Ú__doc__r‚  r…  rŠ  r�  r   r1   r   r~  r~  t  s   „ ñò?ò
@ò
Jó
Jr1   r~  c                  ó\   — e Zd ZU ej                  Zi i fZded<   ddidfZd„ Z	d„ Z
d„ Zd	„ Zy
)ÚTestDraft3Validatorútuple[dict, dict]r  r…   r‹   r‘   c                ó\   — | j                  ddi«      }|j                  t        «       «       y ©Nr…   Úany)r-   rž   r�   rI  s     r   Ú#test_any_type_is_valid_for_type_anyz7TestDraft3Validator.test_any_type_is_valid_for_type_any“  s$   € Ø—N‘N F¨E ?Ó3ˆ	Ø×Ñœ6›8Õ$r1   c                óP  — t        j                  | j                  | j                  j                  j	                  dd„ «      ¬«      } |ddi«      }|j                  d«       | j                  t        j                  «      5  |j                  d«       ddd«       y# 1 sw Y   yxY w)z(
        Sigh, because why not.
        r”  c                ó"   — t        |t        «      S r3   rZ  rB  s     r   ru   zBTestDraft3Validator.test_any_type_is_redefinable.<locals>.<lambda>ž  s   € ¬j¸ÄÓ.D€ r1   rC  r…   rŒ   r‘   N)	r   r§   r-   r6   rD  rž   rœ   r   r   )r/   r\  r   s      r   Útest_any_type_is_redefinablez0TestDraft3Validator.test_any_type_is_redefinable—  sŽ   € ô ×!Ñ!Ø�N‰NØŸ™×4Ñ4×=Ñ=ØÑDóô
ˆñ ˜6 5˜/Ó*ˆ	Ø×Ñ˜2ÔØ×Ñœz×9Ñ9Ó:ñ 	&Ø×Ñ˜uÔ%÷	&÷ 	&ñ 	&ús   ÂBÂB%c                óv   — | j                  | j                  ddi«      j                  t        «       «      «       y r“  )r’   r-   r¹   r�   r.   s    r   Ú!test_is_type_is_true_for_any_typez5TestDraft3Validator.test_is_type_is_true_for_any_type¦  s(   € Ø�‰˜Ÿ™¨° Ó7×@Ñ@ÄÃÓJÕKr1   c                óÆ   — | j                  | j                  i «      j                  dd«      «       | j                  | j                  ddi«      j                  d«      «       y )NTrŠ   r…   r”  )r’   r-   r†   r¹   r.   s    r   Ú6test_is_type_does_not_evade_bool_if_it_is_being_testedzJTestDraft3Validator.test_is_type_does_not_evade_bool_if_it_is_being_tested©  sH   € Ø�‰˜Ÿ™ rÓ*×2Ñ2°4¸ÓCÔDØ�‰˜Ÿ™¨° Ó7×@Ñ@ÀÓFÕGr1   N)rW   r¼   rX   r   rØ   r-   r  Ú__annotations__r  r•  r˜  rš  rœ  r   r1   r   r�  r�  Ž  sA   … Ø×*Ñ*€IØ " B˜x€EÐÓ'Ø�yÐ! 5Ð(€Gò%ò&òLóHr1   r�  c                  óD   — e Zd ZU ej                  Zi i fZded<   ddidfZy)ÚTestDraft4Validatorr‘  r  r…   r‹   r‘   N)	rW   r¼   rX   r   r¸   r-   r  r�  r  r   r1   r   rŸ  rŸ  ®  ó+   … Ø×*Ñ*€IØ " B˜x€EÐÓ'Ø�yÐ! 5Ð(�Gr1   rŸ  c                  óD   — e Zd ZU ej                  Zi i fZded<   ddidfZy)ÚTestDraft6Validatorr‘  r  r…   r‹   r‘   N)	rW   r¼   rX   r   r  r-   r  r�  r  r   r1   r   r¢  r¢  ´  r   r1   r¢  c                  óD   — e Zd ZU ej                  Zi i fZded<   ddidfZy)ÚTestDraft7Validatorr‘  r  r…   r‹   r‘   N)	rW   r¼   rX   r   rï   r-   r  r�  r  r   r1   r   r¤  r¤  º  r   r1   r¤  c                  óD   — e Zd ZU ej                  Zi i fZded<   ddidfZy)ÚTestDraft201909Validatorr‘  r  r…   r‹   r‘   N)	rW   r¼   rX   r   ÚDraft201909Validatorr-   r  r�  r  r   r1   r   r¦  r¦  À  ó+   … Ø×/Ñ/€IØ " B˜x€EÐÓ'Ø�yÐ! 5Ð(�Gr1   r¦  c                  óD   — e Zd ZU ej                  Zi i fZded<   ddidfZy)ÚTestDraft202012Validatorr‘  r  r…   r‹   r‘   N)	rW   r¼   rX   r   rš   r-   r  r�  r  r   r1   r   rª  rª  Æ  r¨  r1   rª  c                  ó   — e Zd ZdZd„ Zy)ÚTestLatestValidatorzQ
    These really apply to multiple versions but are easiest to test on one.
    c                óü   — d}d|i}t        j                  di |di¬«      }t        j                  ||¬«      }| j                  t        j
                  «      5  |j                  d «       d d d «       y # 1 sw Y   y xY w)Nrp  rµ   rp   Frè  rê  )r   rí  rÂ   rœ   r   r   rž   rq  s        r   Ú2test_ref_resolvers_may_have_boolean_schemas_storedzFTestLatestValidator.test_ref_resolvers_may_have_boolean_schemas_storedÑ  sq   € ØˆØ˜#�ˆÜ×*Ñ*¨2¨r¸#¸u¸ÔFˆÜ×.Ñ.¨vÀÔIˆ	à×Ñœz×9Ñ9Ó:ñ 	%Ø×Ñ˜tÔ$÷	%÷ 	%ñ 	%ús   ÁA2Á2A;N)rW   r¼   rX   rŽ  r®  r   r1   r   r¬  r¬  Ì  s   „ ñó%r1   r¬  c                  óf   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestValidatorForc                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   ú&http://json-schema.org/draft-03/schemaú'http://json-schema.org/draft-03/schema#)r¤  r   Úvalidator_forrØ   r9   s     r   Útest_draft_3zTestValidatorFor.test_draft_3Ü  ó`   € ØÐEÐFˆØ�‰Ü×$Ñ$ VÓ,Ü×&Ñ&ô	
ð
 ÐFÐGˆØ�‰Ü×$Ñ$ VÓ,Ü×&Ñ&õ	
r1   c                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   ú&http://json-schema.org/draft-04/schemaú'http://json-schema.org/draft-04/schema#)r¤  r   r´  r¸   r9   s     r   Útest_draft_4zTestValidatorFor.test_draft_4é  r¶  r1   c                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   ú&http://json-schema.org/draft-06/schemaú'http://json-schema.org/draft-06/schema#)r¤  r   r´  r  r9   s     r   Útest_draft_6zTestValidatorFor.test_draft_6ö  r¶  r1   c                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   ú&http://json-schema.org/draft-07/schemaú'http://json-schema.org/draft-07/schema#)r¤  r   r´  rï   r9   s     r   Útest_draft_7zTestValidatorFor.test_draft_7  r¶  r1   c                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   z,https://json-schema.org/draft/2019-09/schemaz-https://json-schema.org/draft/2019-09/schema#)r¤  r   r´  r§  r9   s     r   Útest_draft_201909z"TestValidatorFor.test_draft_201909  ó`   € ØÐKÐLˆØ�‰Ü×$Ñ$ VÓ,Ü×+Ñ+ô	
ð
 ÐLÐMˆØ�‰Ü×$Ñ$ VÓ,Ü×+Ñ+õ	
r1   c                óà   — ddi}| j                  t        j                  |«      t        j                  «       ddi}| j                  t        j                  |«      t        j                  «       y )Nr—   ú,https://json-schema.org/draft/2020-12/schemaú-https://json-schema.org/draft/2020-12/schema#)r¤  r   r´  rš   r9   s     r   Útest_draft_202012z"TestValidatorFor.test_draft_202012  rÅ  r1   c                ój   — | j                  t        j                  d«      t        j                  «       y )NT©r¤  r   r´  rÂ   r.   s    r   Ú	test_TruezTestValidatorFor.test_True*  s%   € Ø�‰Ü×$Ñ$ TÓ*Ü×&Ñ&õ	
r1   c                ój   — | j                  t        j                  d«      t        j                  «       y r  rË  r.   s    r   Ú
test_FalsezTestValidatorFor.test_False0  s%   € Ø�‰Ü×$Ñ$ UÓ+Ü×&Ñ&õ	
r1   c                óŒ   — t        j                  ddidd„ ¬«      }ddi}| j                  t        j                  |«      |«       y )Nri   rm   Ú12c                ó&   — | j                  dd«      S ro   rq   rs   s    r   ru   z8TestValidatorFor.test_custom_validator.<locals>.<lambda>:  rv   r1   rw   r—   ©r   r,   r¤  r´  ©r/   r-   r   s      r   Útest_custom_validatorz&TestValidatorFor.test_custom_validator6  sK   € Ü×%Ñ%ØÐ/Ð0ØÙ+ô
ˆ	ð
 Ð-Ð.ˆØ�‰Ü×$Ñ$ VÓ,Øõ	
r1   c                óˆ   — t        j                  ddid¬«      }ddi}| j                  t        j                  |«      |«       y )Nr$   r€   Ú13rS   r—   rÒ  rÓ  s      r   Útest_custom_validator_draft6z-TestValidatorFor.test_custom_validator_draft6B  sH   € Ü×%Ñ%ØÐ 1Ð2Øô
ˆ	ð Ð.Ð/ˆØ�‰Ü×$Ñ$ VÓ,Øõ	
r1   c                ój   — | j                  t        j                  i «      t        j                  «       y r3   rË  r.   s    r   Ú%test_validator_for_jsonschema_defaultz6TestValidatorFor.test_validator_for_jsonschema_defaultM  s!   € Ø�‰”j×.Ñ.¨rÓ2´J×4NÑ4NÕOr1   c                óR   — | j                  t        j                  i d ¬«      d «       y )Nr-  )r¤  r   r´  r.   s    r   Ú!test_validator_for_custom_defaultz2TestValidatorFor.test_validator_for_custom_defaultP  s   € Ø�‰”j×.Ñ.¨r¸4Ô@À$ÕGr1   c                ó  — | j                  t        «      5 }t        j                  ddi¬«       d d d «       | j	                  j
                  t        «       | j	                  t        |j                  «      d«       y # 1 sw Y   ŒOxY w)Nr—   ÚunknownSchemar1  z‚The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.)	r2  r3  r   r´  r(   ÚfilenameÚ__file__rb  Úwarning)r/   rV  s     r   Ú1test_warns_if_meta_schema_specified_was_not_foundzBTestValidatorFor.test_warns_if_meta_schema_specified_was_not_foundS  ss   € Ø×ÑÔ0Ó1ð 	J°RÜ×$Ñ$¨Y¸Ð,HÕI÷	Jð 	×Ñ˜Ÿ™¤hÔ/Ø×ÑÜ�—
‘
‹Oð&õ	
÷		Jð 	Jús   –A=Á=Bc                óÔ   — t        j                  d¬«      5 }t        j                  d«       t        j                  i i ¬«       d d d «       | j                  «       y # 1 sw Y   ŒxY w)NT©ÚrecordÚalways)r   r.  )ÚwarningsÚcatch_warningsÚsimplefilterr   r´  r¥  )r/   Úws     r   Ú0test_does_not_warn_if_meta_schema_is_unspecifiedzATestValidatorFor.test_does_not_warn_if_meta_schema_is_unspecified_  sU   € Ü×$Ñ$¨DÔ1ð 	<°QÜ×!Ñ! (Ô+Ü×$Ñ$¨B¸Õ;÷	<ð 	×Ñ˜Õ÷	<ð 	<ús   —-AÁA'c                ól   — ddit        «       }}| j                  t        j                  ||«      |«       y )Nr—   zmailto:foo@example.com)r�   r¤  r   r´  )r/   r   r.  s      r   Ú-test_validator_for_custom_default_with_schemaz>TestValidatorFor.test_validator_for_custom_default_with_schemae  s.   € Ø$Ð&>Ð?ÄÃ�ˆØ�‰”j×.Ñ.¨v°wÓ?ÀÕIr1   N)rW   r¼   rX   rµ  rº  r¾  rÂ  rÄ  rÉ  rÌ  rÎ  rÔ  r×  rÙ  rÛ  rá  rê  rì  r   r1   r   r°  r°  Û  sP   „ ò
ò
ò
ò
ò
ò
ò
ò
ò

ò	
òPòHò

òóJr1   r°  c                  óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestValidatec                óÚ   — g }t         j                  j                  |d|j                  «      5  t	        j
                  i |«       d d d «       | j                  ||g«       y # 1 sw Y   ŒxY w)Nr›   )r   Úpatchr�   Úappendr   rž   r(   )r/   r   r-   Úresults       r   Ú
assertUseszTestValidate.assertUsesk  sX   € ØˆÜ�Z‰Z×Ñ˜y¨.¸&¿-¹-ÓHñ 	,Ü×Ñ  FÔ+÷	,à×Ñ˜ & Õ*÷	,ð 	,ús   ®A!Á!A*c                ó�   — | j                  ddit        j                  ¬«       | j                  ddit        j                  ¬«       y )Nr—   r³  ©r   r-   r²  )ró  r   rØ   r.   s    r   Útest_draft3_validator_is_chosenz,TestValidate.test_draft3_validator_is_chosenq  óJ   € Ø�‰ØÐHÐIÜ ×0Ñ0ð 	ô 	
ð
 	�‰ØÐGÐHÜ ×0Ñ0ð 	õ 	
r1   c                ó�   — | j                  ddit        j                  ¬«       | j                  ddit        j                  ¬«       y )Nr—   r¹  rõ  r¸  )ró  r   r¸   r.   s    r   Útest_draft4_validator_is_chosenz,TestValidate.test_draft4_validator_is_chosen|  r÷  r1   c                ó�   — | j                  ddit        j                  ¬«       | j                  ddit        j                  ¬«       y )Nr—   r½  rõ  r¼  )ró  r   r  r.   s    r   Útest_draft6_validator_is_chosenz,TestValidate.test_draft6_validator_is_chosen‡  r÷  r1   c                ó�   — | j                  ddit        j                  ¬«       | j                  ddit        j                  ¬«       y )Nr—   rÁ  rõ  rÀ  )ró  r   rï   r.   s    r   Útest_draft7_validator_is_chosenz,TestValidate.test_draft7_validator_is_chosen’  r÷  r1   c                ó�   — | j                  ddit        j                  ¬«       | j                  ddit        j                  ¬«       y )Nr—   rÈ  rõ  rÇ  ©ró  r   rš   r.   s    r   Ú$test_draft202012_validator_is_chosenz1TestValidate.test_draft202012_validator_is_chosen�  sR   € Ø�‰àÐJðô !×5Ñ5ð	 	ô 	
ð 	�‰àÐIðô !×5Ñ5ð	 	õ 	
r1   c                óF   — | j                  i t        j                  ¬«       y )Nrõ  rÿ  r.   s    r   Ú)test_draft202012_validator_is_the_defaultz6TestValidate.test_draft202012_validator_is_the_default¬  s   € Ø�‰˜r¬Z×-LÑ-LˆÕMr1   c                óæ   — | j                  t        j                  «      5 }t        j                  dddi«       d d d «       | j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)NrŒ   r…   r�   z1(?s)Failed validating '.*' in schema.*On instance)rœ   r   r   r   rž   ÚassertRegexrb  rT  r�  s     r   Útest_validation_error_messagez*TestValidate.test_validation_error_message¯  s_   € Ø×Ñœz×9Ñ9Ó:ð 	8¸aÜ×Ñ  V¨XÐ$6Ô7÷	8à×ÑÜ�—‘ÓØ?õ	
÷	8ð 	8úó    A'Á'A0c                óæ   — | j                  t        j                  «      5 }t        j                  dddi«       d d d «       | j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)NrŒ   r…   z3(?s)Failed validating '.*' in metaschema.*On schema)rœ   r   r�   r   rž   r  rb  rT  r�  s     r   Útest_schema_error_messagez&TestValidate.test_schema_error_message·  s^   € Ø×Ñœz×5Ñ5Ó6ð 	2¸!Ü×Ñ  V¨R LÔ1÷	2à×ÑÜ�—‘ÓØAõ	
÷	2ð 	2úr  c                óø   — ddddœddigi}| j                  t        j                  «      5 }t        j                  d|«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)	Nro  rŽ   r˜  rÉ  r…   r‰   rŒ   z!12 is less than the minimum of 20)rœ   r   r   r   rž   rz   rb  rT  )r/   r   r§  s      r   Útest_it_uses_best_matchz$TestValidate.test_it_uses_best_match¿  sv   € àØ!¨bÑ1Ø˜Ð!ðð
ˆð ×Ñœz×9Ñ9Ó:ð 	,¸aÜ×Ñ  FÔ+÷	,à�‰Ð9¼3¸q¿{¹{Ó;KÕL÷	,ð 	,ús   «A0Á0A9N)rW   r¼   rX   ró  rö  rù  rû  rý  r   r  r  r  r
  r   r1   r   rî  rî  j  s6   „ ò+ò	
ò	
ò	
ò	
ò
òNò
ò
ó	Mr1   rî  c                  ó   — e Zd ZdZd„ Zy)ÚTestThreadinga¶  
    Threading-related functionality tests.

    jsonschema doesn't promise thread safety, and its validation behavior
    across multiple threads may change at any time, but that means it isn't
    safe to share *validators* across threads, not that anytime one has
    multiple threads that jsonschema won't work (it certainly is intended to).

    These tests ensure that this minimal level of functionality continues to
    work.
    c                óÈ   ‡— g Šˆfd„} |«        ddl m}  ||¬«      }|j                  «        |j                  «        | j	                  |j                  «       ‰fdg f«       y )Nc                 óŠ   •— 	 t        j                  dd¬«       y #  ‰ j                  t        j                  «       «       Y y xY w)Nr·   TrÈ   )r   rž   rñ  ÚsysÚexc_info)Úfaileds   €r   rž   zFTestThreading.test_validation_across_a_second_thread.<locals>.validateÛ  s1   ø€ ð.Ü×#Ñ#¨R¸Ö=øð.Ø—‘œcŸl™l›nÖ-ús	   ƒ ›%Ar   )ÚThread)ÚtargetF)Ú	threadingr  ÚstartÚjoinr(   Úis_alive)r/   rž   r  Úthreadr  s       @r   Ú&test_validation_across_a_second_threadz4TestThreading.test_validation_across_a_second_threadØ  sS   ø€ Øˆô	.ñ 	Œ
å$Ù˜xÔ(ˆØ�‰ŒØ�‰ŒØ×Ñ˜&Ÿ/™/Ó+¨VÐ4°u¸b°kÕBr1   N)rW   r¼   rX   rŽ  r  r   r1   r   r  r  Ë  s   „ ñ
óCr1   r  c                  ó   — e Zd Zd„ Zd„ Zy)ÚTestReferencingc                óÐ   — d„ }t        j                  |¬«      }ddi}t        j                  ||¬«      }| j	                  |j                  d«      |j                  d«      fd«       y )	Nc                ó0   — t        j                  ddi«      S )Nr…   r‹   )r   Úcreate_resource)Úuris    r   Úretrievez=TestReferencing.test_registry_with_retrieve.<locals>.retrieveì  s   € Ü×.Ñ.°¸	Ð/BÓCÐCr1   )r   rµ   úhttps://example.com/©ÚregistryrŒ   r‘   )TF)ÚreferencingÚRegistryr   rš   r(   r¹   )r/   r   r#  r   r   s        r   Útest_registry_with_retrievez+TestReferencing.test_registry_with_retrieveë  sf   € ò	Dô ×'Ñ'°Ô:ˆØÐ0Ð1ˆÜ×3Ñ3°FÀXÔNˆ	à×ÑØ×Ñ Ó# Y×%7Ñ%7¸Ó%>Ð?Øõ	
r1   c                ó¢  — t        j                  «       }ddi}t        j                  ||¬«      }t	        j
                  d¬«      5 }t	        j                  d«       | j                  t         j                  j                  «      5  |j                  d«       d d d «       d d d «       | j                  «       y # 1 sw Y   Œ#xY w# 1 sw Y   Œ'xY w)Nrµ   r!  r"  Trã  rå  rŒ   )r$  r%  r   rš   ræ  rç  rè  rœ   r   ÚUnresolvablerž   r¥  )r/   r#  r   r   ré  s        r   Ú;test_custom_registries_do_not_autoretrieve_remote_resourceszKTestReferencing.test_custom_registries_do_not_autoretrieve_remote_resourcesø  s­   € Ü×'Ñ'Ó)ˆØÐ0Ð1ˆÜ×3Ñ3°FÀXÔNˆ	ä×$Ñ$¨DÔ1ð 	'°QÜ×!Ñ! (Ô+Ø×"Ñ"¤;×#9Ñ#9×#FÑ#FÓGñ 'Ø×"Ñ" 2Ô&÷'÷	'ð 	×Ñ˜Õ÷'ð 'ú÷	'ð 	'ús$   Á?CÂB9ÂCÂ9C	Â>CÃCN)rW   r¼   rX   r&  r)  r   r1   r   r  r  ê  s   „ ò
ó	r1   r  c                  óˆ   — e Zd ZdZdZddiZd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRefResolverrp   zfoo://storedÚstoredr   c                óÀ   — i | _         | j                  | j                  i| _        t	        j
                  | j                  | j                   | j                  «      | _        y r3   )ÚreferrerÚ
stored_uriÚstored_schemaré  r   rí  Úbase_urirë  r.   s    r   r0   zTestRefResolver.setUp
	  sD   € ØˆŒØ—o‘o t×'9Ñ'9Ð:ˆŒ
Ü"×/Ñ/Ø�M‰M˜4Ÿ=™=¨$¯*©*ó
ˆ�r1   c                ó¨  — t         j                  j                  d   }t        j                  j                  | j                  d«      5 }| j                  j                  |«      5 }	 d d d «       d d d «       | j                  t         j                  j                  «       | j                  j                  «       y # 1 sw Y   ŒWxY w# 1 sw Y   Œ[xY w)Nri   Úresolve_remote)r   rØ   r5   r   rð  r�   rë  rz  r(   r¥  Úcalled)r/   rî  ÚpatchedÚresolveds       r   Ú6test_it_does_not_retrieve_schema_urls_from_the_networkzFTestRefResolver.test_it_does_not_retrieve_schema_urls_from_the_network	  s¤   € Ü×(Ñ(×4Ñ4°TÑ:ˆÜ�Z‰Z×Ñ˜tŸ}™}Ð.>Ó?ð 	À7Ø—‘×(Ñ(¨Ó-ð °Ø÷÷	ð 	×Ñ˜¤:×#=Ñ#=×#IÑ#IÔJØ×Ñ˜Ÿ™Õ(÷ð ú÷	ð 	ús$   ÁCÁ$B<Á&CÂ<C	ÃCÃCc                óÞ   — d}dt        «       i| j                  d<   | j                  j                  |«      5 }| j	                  || j                  d   d   «       d d d «       y # 1 sw Y   y xY w)Nz#/properties/foor‘   r{  )r�   r.  rë  rz  r(   )r/   rî  r6  s      r   Útest_it_resolves_local_refsz+TestRefResolver.test_it_resolves_local_refs	  sg   € Ø ˆØ',¬f«hÐ&7ˆ�‰�lÑ#Ø�]‰]×$Ñ$ SÓ)ð 	K¨XØ×Ñ˜X t§}¡}°\Ñ'BÀ5Ñ'IÔJ÷	K÷ 	Kñ 	Kús   ·#A#Á#A,c                óB  — dddidœ}t         j                  j                  |d„ ¬«      }|j                  d«      5 }| j	                  ||d   «       d d d «       |j                  d	«      5 }| j	                  ||d   «       d d d «       y # 1 sw Y   Œ9xY w# 1 sw Y   y xY w)
Nzhttp://bar/schema#r‘   r™   )ri   r_   c                ó&   — | j                  dd«      S ro   rq   r1  s    r   ru   zETestRefResolver.test_it_resolves_local_refs_with_id.<locals>.<lambda>#	  ó   €  §¡¨D°"Ó!5€ r1   ©rx   z#/ar_   zhttp://bar/schema#/a)r   rí  Úfrom_schemarz  r(   ©r/   r   rë  r6  s       r   Ú#test_it_resolves_local_refs_with_idz3TestRefResolver.test_it_resolves_local_refs_with_id	  s«   € Ø,°E¸5°>ÑBˆÜ×*Ñ*×6Ñ6ØÙ5ð 7ó 
ˆð ×Ñ Ó&ð 	4¨(Ø×Ñ˜X v¨c¡{Ô3÷	4à×ÑÐ 6Ó7ð 	4¸8Ø×Ñ˜X v¨c¡{Ô3÷	4ð 	4÷	4ð 	4ú÷	4ð 	4ús   »B	Á*BÂ	BÂBc                ój  — | j                   j                  | j                  «      5 }| j                  || j                  «       d d d «       ddi| j                   j
                  d<   | j                   j                  d«      5 }| j                  |d«       d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)Nr‘   rŒ   Ú
cached_refzcached_ref#/foo)rë  rz  r/  r¤  r0  ré  r(   )r/   r6  s     r   Útest_it_retrieves_stored_refsz-TestRefResolver.test_it_retrieves_stored_refs*	  sœ   € Ø�]‰]×$Ñ$ T§_¡_Ó5ð 	8¸Ø�M‰M˜( D×$6Ñ$6Ô7÷	8ð .3°B¨Kˆ�‰×Ñ˜LÑ)Ø�]‰]×$Ñ$Ð%6Ó7ð 	+¸8Ø×Ñ˜X rÔ*÷	+ð 	+÷		8ð 	8ú÷	+ð 	+ús   ¦BÂB)ÂB&Â)B2c                ól  — d}ddi}dt         j                  v r<| j                  t         j                  j                  dt         j                  d   «       t	        d|i«      t         j                  d<   | j
                  j                  |«      5 }| j                  |d«       d d d «       y # 1 sw Y   y xY w)Núhttp://bar#bazr\  rŒ   Úrequestsú
http://bar)r  Úmodulesr'   Ú__setitem__ÚReallyFakeRequestsrë  rz  r(   )r/   rî  r   r6  s       r   Ú,test_it_retrieves_unstored_refs_via_requestsz<TestRefResolver.test_it_retrieves_unstored_refs_via_requests2	  s•   € ØˆØ˜�ˆàœŸ™Ñ$Ø�O‰OÜ—‘×'Ñ'¨´S·[±[ÀÑ5Lôô #5°lÀFÐ5KÓ"LŒ�‰�JÑà�]‰]×$Ñ$ SÓ)ð 	+¨XØ×Ñ˜X rÔ*÷	+÷ 	+ñ 	+ús   ÂB*Â*B3c                óÒ  ‡ ‡— d}ddiŠdt         j                  v r<‰ j                  t         j                  j                  dt         j                  d   «       d t         j                  d<   t        ˆˆ fd„«       }t        j                  d|¬«      5  ‰ j                  j                  |«      5 }	 d d d «       d d d «       ‰ j                  d«       y # 1 sw Y   Œ$xY w# 1 sw Y   Œ(xY w)NrE  r\  rŒ   rF  c              3  ó�   •K  — ‰j                  | d«       t        t        j                  ‰«      j	                  d«      «      –— y ­w)NrG  Úutf8)r(   r   ÚjsonÚdumpsÚencode)Úurlr   r/   s    €€r   Úfake_urlopenzQTestRefResolver.test_it_retrieves_unstored_refs_via_urlopen.<locals>.fake_urlopenI	  s6   øè ø€ à×Ñ˜S ,Ô/Üœ$Ÿ*™* VÓ,×3Ñ3°FÓ;Ó<Ó<ùs   ƒAAzurllib.request.urlopenr¦   )
r  rH  r'   rI  r   r   rð  rë  rz  r(   )r/   rî  rS  r6  r   s   `   @r   Ú+test_it_retrieves_unstored_refs_via_urlopenz;TestRefResolver.test_it_retrieves_unstored_refs_via_urlopen?	  sÉ   ù€ ØˆØ˜�ˆàœŸ™Ñ$Ø�O‰OÜ—‘×'Ñ'¨´S·[±[ÀÑ5Lôð #'Œ�‰�JÑä	ô	=ó 
ð	=ô �Z‰ZÐ0°lÔCñ 	Ø—‘×(Ñ(¨Ó-ð °Ø÷÷	ð 	×Ñ˜ 2Õ&÷ð ú÷	ð 	ús$   ÂCÂ,CÂ.CÃC	ÃCÃC&c                ó–  — t        j                  dd¬«      5 }| j                  t        j                  |j
                  «       t        j                  ddi|«       d d d «       dt        j
                  «      › d�}| j                  j                  |«      5 }| j                  |d«       d d d «       y # 1 sw Y   ŒYxY w# 1 sw Y   y xY w)NFÚwt)ÚdeleteÚmoder‘   r™   zfile://z#foo)ÚtempfileÚNamedTemporaryFiler'   ÚosÚremoverÔ   rO  Údumpr   rë  rz  r(   )r/   Útempfrî  r6  s       r   Ú(test_it_retrieves_local_refs_via_urlopenz8TestRefResolver.test_it_retrieves_local_refs_via_urlopenS	  s©   € Ü×(Ñ(°¸DÔAð 	-ÀUØ�O‰OœBŸI™I u§z¡zÔ2Ü�I‰I�u˜e�n eÔ,÷	-ð œ U§Z¡ZÓ0Ð1°Ð6ˆØ�]‰]×$Ñ$ SÓ)ð 	.¨XØ×Ñ˜X uÔ-÷	.ð 	.÷	-ð 	-ú÷
	.ð 	.ús   ˜AB3ÂB?Â3B<Â?Cc                ó€  — ddi}t         j                  j                  |d„ ¬«      }| j                  |j                  d«       | j                  |j
                  d«       |j                  d«      5 }| j                  ||«       d d d «       |j                  d«      5 }| j                  ||«       d d d «       |j                  d«      5 }| j                  ||«       d d d «       |j                  d«      5 }| j                  ||«       d d d «       y # 1 sw Y   ŒŽxY w# 1 sw Y   ŒnxY w# 1 sw Y   ŒNxY w# 1 sw Y   y xY w)Nri   r‘   c                ó&   — | j                  dd«      S ro   rq   r1  s    r   ru   zPTestRefResolver.test_it_can_construct_a_base_uri_from_a_schema.<locals>.<lambda>`	  r<  r1   r=  rp   ú#zfoo#©r   rí  r>  r(   r1  Úresolution_scoperz  r?  s       r   Ú.test_it_can_construct_a_base_uri_from_a_schemaz>TestRefResolver.test_it_can_construct_a_base_uri_from_a_schema\	  s3  € Ø˜�ˆÜ×*Ñ*×6Ñ6ØÙ5ð 7ó 
ˆð 	×Ñ˜×*Ñ*¨EÔ2Ø×Ñ˜×2Ñ2°EÔ:Ø×Ñ Ó#ð 	/ xØ×Ñ˜X vÔ.÷	/à×Ñ Ó$ð 	/¨Ø×Ñ˜X vÔ.÷	/à×Ñ Ó&ð 	/¨(Ø×Ñ˜X vÔ.÷	/à×Ñ Ó'ð 	/¨8Ø×Ñ˜X vÔ.÷	/ð 	/÷	/ð 	/ú÷	/ð 	/ú÷	/ð 	/ú÷	/ð 	/ús0   Á0DÂDÃD(Ã4D4ÄDÄD%Ä(D1Ä4D=c                ó–  — i }t         j                  j                  |«      }| j                  |j                  d«       | j                  |j
                  d«       |j                  d«      5 }| j                  ||«       d d d «       |j                  d«      5 }| j                  ||«       d d d «       y # 1 sw Y   Œ6xY w# 1 sw Y   y xY w)Nrp   rb  rc  r?  s       r   Ú9test_it_can_construct_a_base_uri_from_a_schema_without_idzITestRefResolver.test_it_can_construct_a_base_uri_from_a_schema_without_idm	  s¸   € ØˆÜ×*Ñ*×6Ñ6°vÓ>ˆØ×Ñ˜×*Ñ*¨BÔ/Ø×Ñ˜×2Ñ2°BÔ7Ø×Ñ Ó#ð 	/ xØ×Ñ˜X vÔ.÷	/à×Ñ Ó$ð 	/¨Ø×Ñ˜X vÔ.÷	/ð 	/÷	/ð 	/ú÷	/ð 	/ús   Á+B3ÂB?Â3B<Â?Cc                óÈ   ‡ ‡‡— ˆˆˆ fd„}ddiŠdŠt        j                  di d|i¬«      }|j                  ‰«      5 }‰ j                  |‰«       d d d «       y # 1 sw Y   y xY w)Nc                ó,   •— ‰j                  | ‰«       ‰S r3   rx  )rR  rî  r   r/   s    €€€r   Úhandlerz@TestRefResolver.test_custom_uri_scheme_handlers.<locals>.handlerx	  s   ø€ Ø×Ñ˜S #Ô&ØˆMr1   r‘   r™   ú	foo://barrp   ©Úhandlers)r   rí  rz  r(   )r/   rj  rë  r6  rî  r   s   `   @@r   Útest_custom_uri_scheme_handlersz/TestRefResolver.test_custom_uri_scheme_handlersw	  sf   ú€ ö	ð ˜�ˆØˆÜ×*Ñ*¨2¨r¸UÀGÐ<LÔMˆØ×Ñ Ó$ð 	/¨Ø×Ñ˜X vÔ.÷	/÷ 	/ñ 	/ús   ¼AÁA!c                ó   ‡ ‡— t        «       gŠˆˆ fd„}d}t        j                  di dd|i¬«      }|j                  |«      5  	 d d d «       |j                  |«      5  	 d d d «       y # 1 sw Y   Œ%xY w# 1 sw Y   y xY w)Nc                óf   •— 	 ‰j                  «       S # t        $ r ‰j                  d«       Y y w xY w)Nz#Response must not have been cached!©rV   Ú
IndexErrorr    ©rR  Úresponser/   s    €€r   rj  z5TestRefResolver.test_cache_remote_on.<locals>.handler…	  s3   ø€ ðAØ—|‘|“~Ð%øÜò AØ—	‘	Ð?Ö@ðAúó   ƒ “0¯0rk  rp   Tr‘   ©Úcache_remoterm  ©r�   r   rí  rz  ©r/   rj  rî  rë  rt  s   `   @r   Útest_cache_remote_onz$TestRefResolver.test_cache_remote_on‚	  sŠ   ù€ Ü“H�:ˆõ	Að ˆÜ×*Ñ*Ø� °¸Ð0@ô
ˆð ×Ñ Ó$ñ 	Ø÷	à×Ñ Ó$ñ 	Ø÷	ð 	÷	ð 	ú÷	ð 	ús   ÁA(ÁA4Á(A1Á4A=c                ó²   ‡ ‡— t        «       gŠˆˆ fd„}d}t        j                  di dd|i¬«      }|j                  |«      5  	 d d d «       y # 1 sw Y   y xY w)Nc                óf   •— 	 ‰j                  «       S # t        $ r ‰j                  d«       Y y w xY w)NzHandler called twice!rq  rs  s    €€r   rj  z6TestRefResolver.test_cache_remote_off.<locals>.handler—	  s0   ø€ ð3Ø—|‘|“~Ð%øÜò 3Ø—	‘	Ð1Ö2ð3úru  rk  rp   Fr‘   rv  rx  ry  s   `   @r   Útest_cache_remote_offz%TestRefResolver.test_cache_remote_off”	  s^   ù€ Ü“H�:ˆõ	3ð ˆÜ×*Ñ*Ø� °%¸Ð1Aô
ˆð ×Ñ Ó$ñ 	Ø÷	÷ 	ñ 	ús   ÁAÁAc                ó’  ‡— t        d«      Šˆfd„}d}t        j                  di d|i¬«      }| j                  t        j
                  «      5 }|j                  |«      5  | j                  d«       d d d «       d d d «       | j                  j                  t	        j
                  ‰«      «       y # 1 sw Y   ŒAxY w# 1 sw Y   ŒExY w)NzOh no! What's this?c                ó   •— ‰‚r3   r   )rR  r×  s    €r   rj  zTTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error.<locals>.handler§	  s   ø€ ØˆKr1   rk  rp   r‘   rl  zShouldn't get this far!)
rS  r   rí  rœ   r   Ú_RefResolutionErrorrz  r    r(   rT  )r/   rj  rî  rë  Úerrr×  s        @r   Ú3test_if_you_give_it_junk_you_get_a_resolution_errorzCTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error¤	  s¯   ø€ ÜÐ0Ó1ˆô	ð ˆÜ×*Ñ*¨2¨r¸UÀGÐ<LÔMˆØ×Ñœz×=Ñ=Ó>ð 	5À#Ø×#Ñ# CÓ(ñ 5Ø—	‘	Ð3Ô4÷5÷	5ð 	×Ñ˜Ÿ™¬
×(FÑ(FÀuÓ(MÕN÷5ð 5ú÷	5ð 	5ús$   ÁB=ÁB1Á1B=Â1B:	Â6B=Â=Cc                ó"  — t        j                  di «      }|j                  «        | j                  t        j
                  «      5 }|j                  «        d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nrp   zFailed to pop the scope)	r   rí  Ú	pop_scoperœ   r   r€  rz   rb  rT  )r/   rë  Úexcs      r   Ú.test_helpful_error_message_on_failed_pop_scopez>TestRefResolver.test_helpful_error_message_on_failed_pop_scope±	  so   € Ü×*Ñ*¨2¨rÓ2ˆØ×ÑÔØ×Ñœz×=Ñ=Ó>ð 	!À#Ø×ÑÔ ÷	!à�‰Ð/´°S·]±]Ó1CÕD÷	!ð 	!ús   ÁBÂBc                ó¸  — t         j                  j                  }t        j                  d|«      }t        j                  ||¬«      }| j	                  |j                  ddi«      «       ddt         j                  j                  d   igi}t        j                  d|«      }t        j                  ||¬«      }| j	                  |j                  ddi«      «       y)	z
        See #1085.
        rp   rê  r0  r‘   ÚallOfrµ   r$   N)r   rï   r5   rí  r¥  r¹   )r/   r   Úoner   ÚanotherÚtwos         r   Ú,test_pointer_within_schema_with_different_idz<TestRefResolver.test_pointer_within_schema_with_different_id¸	  sÂ   € ô ×+Ñ+×7Ñ7ˆÜ×%Ñ% b¨&Ó1ˆÜ×.Ñ.¨vÀÔDˆ	Ø×Ñ˜×+Ñ+¨[¸%Ð,@ÓAÔBð �vœz×9Ñ9×EÑEÀeÑLÐMÐNð
ˆô ×%Ñ% b¨'Ó2ˆÜ×.Ñ.¨wÀÔEˆ	Ø×Ñ˜×+Ñ+¨[¸%Ð,@ÓAÕBr1   c                ó$  ‡ — ˆ fd„}t        j                  di d|i¬«      }t        j                  i t         j                  j                  ¬«      }dddœ} |||¬	«      }‰ j                  |j                  i «      |j                  d
«      fd«       y)zj
        See https://github.com/python-jsonschema/jsonschema/issues/1061#issuecomment-1624266555.
        c                ó0   •— ‰j                  | d«       ddiS )Nzhttp://example.com/foor…   r‹   rx  )r  r/   s    €r   ÚhandlezNTestRefResolver.test_newly_created_validator_with_ref_resolver.<locals>.handleÍ	  s   ø€ Ø×Ñ˜SÐ":Ô;Ø˜IÐ&Ð&r1   rp   Úhttprl  rƒ   zhttp://example.com/barr‘   )r$   rµ   rê  r·   ©FTN)r   rí  r,   r¸   r4   r(   r¹   )r/   r�  rë  r-   r   r   s   `     r   Ú.test_newly_created_validator_with_ref_resolverz>TestRefResolver.test_newly_created_validator_with_ref_resolverÈ	  sŒ   ø€ ô
	'ô ×*Ñ*¨2¨r¸VÀVÐ<LÔMˆÜ×%Ñ%ØÜ!×1Ñ1×<Ñ<ô
ˆ	ð 2¸5ÑAˆÙ˜f¨xÔ8ˆ	Ø×ÑØ×Ñ Ó# Y×%7Ñ%7¸Ó%;Ð<Øõ	
r1   c                óà   — dddiidddiidœ}t        j                  |t        j                  d|«      ¬«      }| j                  |j	                  dd	i«      |j	                  dd
i«      fd«       y)zj
        See https://github.com/python-jsonschema/jsonschema/issues/1124#issuecomment-1632574249.
        Úxrµ   z#/definitions/xr…   r‹   )r{  rÅ  rp   rê  Úyr·   r‘  N)r   rš   rí  r(   r¹   )r/   r   r   s      r   Ú2test_refresolver_with_pointer_in_schema_with_no_idzBTestRefResolver.test_refresolver_with_pointer_in_schema_with_no_idÝ	  s„   € ð  Ð):Ð ;Ð<Ø &¨)Ð!4Ð5ñ
ˆô
 ×3Ñ3ØÜ×,Ñ,¨R°Ó8ô
ˆ	ð 	×ÑØ×Ñ  c 
Ó+¨Y×-?Ñ-?ÀÀbÀ	Ó-JÐKØõ	
r1   N)rW   r¼   rX   r1  r/  r0  r0   r7  r9  r@  rC  rK  rT  r_  re  rg  rn  rz  r}  r‚  r†  rŒ  r’  r–  r   r1   r   r+  r+  	  st   „ à€HØ€JØ˜xÐ(€Mò
ò)òKò	4ò+ò+ò'ò(.ò/ò"/ò	/òò$ò OòEòCò 
ó*
r1   r+  c                ó"   — d„ }t        | |¬«      S )Nc                ó¢   — | j                   D �cg c]  }t        |«      ‘Œ c}| j                  D �cg c]  }t        |«      ‘Œ c}fS c c}w c c}w r3   )rœ  rb  rD   )r×  r§  s     r   Úkeyzsorted_errors.<locals>.keyó	  s@   € à"ŸZ™ZÖ(˜ŒS��VÒ(Ø"×.Ñ.Ö/˜ŒS��VÒ/ð
ð 	
ùÚ(ùÚ/s
   �A±A)r™  )Úsorted)r   r™  s     r   r£  r£  ò	  s   € ò
ô
 �&˜cÔ"Ð"r1   c                  ó   — e Zd ZU ded<   d„ Zy)rJ  zdict[str, Any]Ú
_responsesc                ó¦   — | j                   j                  |«      }|€t        dt        |«      z   «      ‚t	        t        j                  |«      «      S )NzUnknown URL: )rœ  rr   rS  r\   Ú_ReallyFakeJSONResponserO  rP  )r/   rR  rt  s      r   rr   zReallyFakeRequests.get 
  sC   € Ø—?‘?×&Ñ& sÓ+ˆØˆ;Ü˜_¬t°C«yÑ8Ó9Ð9Ü&¤t§z¡z°(Ó';Ó<Ð<r1   N)rW   r¼   rX   r�  rr   r   r1   r   rJ  rJ  û	  s   … ð Óó=r1   rJ  c                  ó   — e Zd ZU ded<   d„ Zy)rž  rb  Ú	_responsec                ó@   — t        j                  | j                  «      S r3   )rO  Úloadsr   r.   s    r   rO  z_ReallyFakeJSONResponse.json
  s   € Ü�z‰z˜$Ÿ.™.Ó)Ð)r1   N)rW   r¼   rX   r�  rO  r   r1   r   rž  rž  
  s   … ð ƒNó*r1   rž  ):Ú
__future__r   Úcollectionsr   r   Ú
contextlibr   Údecimalr   Úior   Útypingr	   Úunittestr
   r   Úurllib.requestr   rO  r[  r  rY  ræ  Úattrsr   r   Úreferencing.jsonschemar   Úreferencing.exceptionsr$  Ú
jsonschemar   r   r   r   r   r    r"   r¾   r•  r   r  r~  r�  rŸ  r¢  r¤  r¦  rª  r¬  r°  rî  r  r  r+  r£  rJ  rž  r   r1   r   ú<module>r¯     s‹  ðÝ "ç )Ý %Ý Ý Ý ß #Ý 'Û Û 	Û 
Û Û ç Ý .Û ÷õ ò1ôL6˜(ô L6ô^~
 (ô ~
ôBL
 ô L
÷^5
ñ 5
ôpwEÐ-ô wE÷tJñ Jô4HÐ-Ð/AÀ8ô Hô@)Ð-Ð/AÀ8ô )ô)Ð,¨hô )ô)Ð,¨hô )ô)Ð1°8ô )ô)Ð1°8ô )ô%˜(ô %ôLJ�xô LJô^^M�8ô ^MôBC�Hô Cô>�hô ô4j
�hô j
ò\#ð ÷=ð =ó ð=ð ÷*ð *ó ñ*r1   