Ë
    º2ÚiHS ã                  ó´  — 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/var/www/html/acx/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                  óD  — 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„ Z6y5)6Ú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                ó\   — | 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_items   s<   € Ø×"Ñ"Ú"Ø"°B¸°8Ñ<ð #ó 
ˆð 	×ÑØØ?õ	
r1   c                ó\   — | j                  g d¢di i gdœ¬«      }| j                  |d«       y )N©rE   rÛ   r‘   é   Fr'  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_items
  s<   € Ø×"Ñ"Ú%Ø"°B¸°8Ñ<ð #ó 
ˆð 	×ÑØØDõ	
r1   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 )NÚbbbÚpatternz^a*$rÇ   z'bbb' does not match '^a*$'rÉ   rÊ   s     r   Útest_patternz(TestValidationErrorMessages.test_pattern"  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_contain)  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_few3  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  r=  ÚmaxContainsrÇ   r>  rÉ   rÊ   s     r   Ú&test_contains_too_few_both_constrainedzBTestValidationErrorMessages.test_contains_too_few_both_constrained>  sI   € Ø×"Ñ"Ø˜Q�Zà# XÐ.Ø Ø ñð #ó 
ˆð 	×ÑØðõ	
r1   c                ó\   — | j                  g d¢ddiddœ¬«      }| j                  |d«       y )N©r‘   r™   Úbazr…   r�   rÛ   ©r  rC  rÇ   ú:Too many items match the given schema (expected at most 2)rÉ   rÊ   s     r   Útest_contains_too_manyz2TestValidationErrorMessages.test_contains_too_manyM  s=   € Ø×"Ñ"Ú*Ø!'¨Ð 2À1ÑEð #ó 
ˆð 	×ÑØØHõ	
r1   c                ób   — | j                  dgdz  ddidddœ¬«      }| j                  |d	«       y )
Nr‘   r,  r…   r�   rÛ   rA  rB  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_constrainedW  sI   € Ø×"Ñ"Ø�W˜q‘[à# XÐ.Ø Ø ñð #ó 
ˆð 	×ÑØØHõ	
r1   c                óR   — | j                  dddi¬«      }| j                  |d«       y )NrN   ÚexclusiveMinimumr,  rÇ   z+3 is less than or equal to the minimum of 5rÉ   rÊ   s     r   Útest_exclusiveMinimumz1TestValidationErrorMessages.test_exclusiveMinimume  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_exclusiveMaximumo  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_requiredv  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_dependentRequiredz  s@   € Ø×"Ñ"Ø˜R�[Ø'¨%°%°Ð)9Ð:ð #ó 
ˆð 	×Ñ˜Ð"BÕCr1   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                ó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 )Nrb  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‰   Frg  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™   rF  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…   ro  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�   Frr  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©r(  rò   rF  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 )NFrx  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)r(  rh  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)rn  rú   rG  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‘   Frm  rG  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)7rW   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-  r0  r4  r8  r:  r?  rD  rJ  rL  rO  rR  rU  rX  r[  r`  rc  re  ri  rk  rp  rt  rv  ry  r|  r~  r€  r„  r†  r   r1   r   r½   r½   2  s  „ ò!ò?ò?òIò
<òEòHòDò

òDòDò5ò<ò9ò	3ò2ò

ò+ò
ò<Mò>ò5ò;ò
ò
ò5ò7òAò
ò	
ò
ò
ò
ò
ò
òBòDòHò
ò
ò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 )Nr,  Ú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_anyOf  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…   rn  r   rŒ  )r…   r   r…   ú$.foo)rE   rn  r‘   rŸ  )r…   rE   rn  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™   rG  Úquuxrn  r…   r�   r!  é
   )rÛ   rA  é   é   )rµ   rŸ  rF  r™   rG  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Û   rG  rs  r¦  r�   r�   rŸ  rN   r‰   rT  Tr!  )r™   rG  r   )r…   rò   r   r™   )rE   r™   r™   )rE   r™   rG  r‘   rŒ  ú$[0]z$[1].barz$[1].bar.barz$[1].bar.bazz$[1].foor…   rò   )rò   rn  r™   r…   )rò   rn  r™   rn  r™   rT  )rò   rn  r™   rn  rG  r!  )rò   rn  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…   rT  rn  Úroot)Údefinitionsr…   rT  rn  r_   Úab)rn  r·  rŠ  z$.root)r·  rµ  r_   )	rn  r·  rŠ  r   rn  rµ  r  r¶  rŠ  z$.root.children.a)r·  rµ  r_   rµ  r¹  )rn  r·  rŠ  r   rn  rµ  r  r¶  rŠ  r   rn  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‹   r,  ©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_additionalPropertiesv  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Ô   r,  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‹   r,  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‹   r,  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 )Nr(  r…   r�   rµ   rN   r+  rÈ   rE   r   )r(  r   r…   r¯  z"5 is greater than the maximum of 3r,  )r(  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_prefixItems+  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�   r'  )r‘   rÛ   r™   rA  rG  z2 is not of type 'string'rÛ   rE   rò   rÃ  z4 is not of type 'string'rA  rN   rä  rå  ©r/   r   r   r›  rœ  s        r   r)  z6TestValidationErrorDetails.test_prefixItems_with_items\  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Û   rH  )r‘   rÛ   r™   rA  rG  r¦  rI  rC  r  rŒ  Nrå  rÑ  s       r   rJ  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Û   r<  )r‘   rÛ   rA  r>  r=  r  rŒ  rå  rÑ  s       r   r?  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Û   r<  rA  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‘   rT  r™   Úapropz#/$defs/foorG  )r´   rT  )r³   rn  z'bar' is a required property)rn  rð  rT  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è  r)  rJ  r?  rî  rñ  r   r1   r   rˆ  rˆ    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)Nrn  rŒ   ©rœ   r   r�   r-   r›   r.   s    r   Útest_invalid_propertiesz,MetaSchemaTestsMixin.test_invalid_properties)  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_string-  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_arrays2  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_itemsC  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)Nr7  ú
*notaregexrõ  r.   s    r   Útest_schema_with_invalid_regexz3MetaSchemaTestsMixin.test_schema_with_invalid_regexT  sF   € Ø×Ñœz×5Ñ5Ó6ñ 	CØ�N‰N×'Ñ'¨°LÐ(AÔB÷	C÷ 	Cñ 	Cúr÷  c                óB   — | j                   j                  ddid ¬«       y )Nr7  r  ©r  )r-   r›   r.   s    r   Ú>test_schema_with_invalid_regex_with_disabled_format_validationzSMetaSchemaTestsMixin.test_schema_with_invalid_regex_with_disabled_format_validationX  s$   € Ø�‰×#Ñ#Ø˜Ð%Øð 	$õ 	
r1   N)	rW   r»   rX   rö  rú  rý  rÿ  r  r  r   r1   r   ró  ró  '  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_validc  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_validg  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_ignoredk  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_evolven  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   r#  NrŒ   )r™   r÷   r…   r‹   ©r   )ÚassertWarnsÚDeprecationWarningr   r-   r(   r‘   r  r"  )r/   r#  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Ž   r+  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  r<  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  rD  r/   s    €€r   ÚcheckzTValidatorTestMixin.test_it_validates_formats_if_a_checker_is_provided.<locals>.checkÆ  s/   ø€ à˜ŠØØ˜%’Ø�	à—	‘	˜H U GÐ+AÐBÕCr1   r  r  rC  rD  )r   Ú
ValueErrorr  r-   rž   rœ   r   r   r—  Ú	exceptionÚcause)r/   r  rE  r   ÚcmrD  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   ©r1  r2  r5  s     r   ru   z@ValidatorTestMixin.test_non_string_custom_type.<locals>.<lambda>á  s   € ¤z°%¼Ó'=€ r1   r6  r¤  )r�   r   r¦   r-   r6   r7  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   )r1  Útupler5  s     r   ru   zNValidatorTestMixin.test_it_properly_formats_tuples_in_errors.<locals>.<lambda>ð  s   € ¤z°%¼Ó'?€ r1   r6  ÚuniqueItemsT)rE   rE   Nz(1, 1) has non-unique elements)r   r¦   r-   r6   r7  rœ   r   r   rž   rz   ÚstrrG  )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…   rT  Ú	MyMappingza, bc                ó.   — t        |t        t        f«      S r3   )r1  r=   r   r5  s     r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   € ´JØ¤¤e˜}ó5€ r1   c                ó(   •— t        |t        ‰f«      S r3   )r1  r*   )r  r	  rY  s     €r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   ø€ ´ZØ¤ iÐ0ó6€ r1   )r‰   r�   r6  )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_instancesrY  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   )r%  r&  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_provided9  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_RefResolvers>  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.resolvingM  s"   øè ø€ à× Ñ   iÔ0Ø˜yÐ)Ó)ùs   ƒN)rW   r»   rX   r   rm  r.   s   €r   ÚLegacyRefResolverrh  L  s   ø„ Øó*ó ñ*r1   rn  r´   rj  rÝ  N)rœ   r   r   r-   rž   )r/   rn  rÞ  r   s   `   r   Ú@test_it_upconverts_from_yet_older_deprecated_legacy_RefResolverszSValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolversF  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  r'  r)  r,  r.  r8  r=  r?  rJ  rP  rW  r_  ra  re  ro  r   r1   r   r  r  _  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   rU  rG  ©r/   rš  s     r   Útest_True_is_not_a_schemaz-AntiDraft6LeakMixin.test_True_is_not_a_schema^  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 typers  rt  s     r   Útest_False_is_not_a_schemaz.AntiDraft6LeakMixin.test_False_is_not_a_schemac  sW   € Ø×Ñœz×5Ñ5Ó6ð 	/¸!Ø�N‰N×'Ñ'¨Ô.÷	/à�‰Ð,¬c°!·+±+Ó.>Õ?÷	/ð 	/úrv  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ž   ÚassertNotIsInstancerG  r   r   rt  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_checkh  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Œ   rz  rt  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_checkm  sX   € Ø×ÑœyÓ)ð 	/¨QØ�N‰N˜5Ó!×*Ñ*¨2Ô.÷	/à× Ñ  §¡¬j×.HÑ.HÕI÷	/ð 	/úr~  N)rW   r»   rX   Ú__doc__ru  rx  r}  r€  r   r1   r   rq  rq  Y  s   „ ñò?ò
@ò
Jó
Jr1   rq  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�   r<  s     r   Ú#test_any_type_is_valid_for_type_anyz7TestDraft3Validator.test_any_type_is_valid_for_type_anyx  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   rM  r5  s     r   ru   zBTestDraft3Validator.test_any_type_is_redefinable.<locals>.<lambda>ƒ  s   € ¬j¸ÄÓ.D€ r1   r6  r…   rŒ   r‘   N)	r   r¦   r-   r6   r7  rž   rœ   r   r   )r/   rO  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ƒ  s  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)Nrc  r´   rp   FrÛ  rÝ  )r   rà  rÁ   rœ   r   r   rž   rd  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_False  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_validator  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_draft6'  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_default2  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_default5  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—   ÚunknownSchemar$  z‚The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.)	r%  r&  r   r§  r(   ÚfilenameÚ__file__rU  Úwarning)r/   rI  s     r   Ú1test_warns_if_meta_schema_specified_was_not_foundzBTestValidatorFor.test_warns_if_meta_schema_specified_was_not_found8  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_unspecifiedD  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_schemaJ  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.assertUsesP  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_chosenV  ó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_chosena  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_chosenl  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_chosenw  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ž   ÚassertRegexrU  rG  rt  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÷  rU  rG  rt  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)	Nrb  rŽ   r‹  r¼  r…   r‰   rŒ   z!12 is less than the minimum of 20)rœ   r   r   r   rž   rz   rU  rG  )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á  O  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Þ  rm  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‘   rn  )r�   r!  rÞ  rm  r(   )r/   rá  r)  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   r$  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_schemarm  r(   ©r/   r   rÞ  r)  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Þ  rm  r"  r—  r#  rÜ  r(   )r/   r)  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#bazrG  rŒ   Úrequestsú
http://bar)r  Úmodulesr'   Ú__setitem__ÚReallyFakeRequestsrÞ  rm  r(   )r/   rá  r   r)  s       r   Ú,test_it_retrieves_unstored_refs_via_requestsz<TestRefResolver.test_it_retrieves_unstored_refs_via_requests	  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„«       }‰ j                  t
        t        dt        j                  «       |t        _        ‰ j                  j                  |«      5 }	 d d d «       ‰ j                  d«       y # 1 sw Y   ŒxY w)Nr8  rG  rŒ   r9  c              3  ó�   •K  — ‰j                  | d«       t        t        j                  ‰«      j	                  d«      «      –— y ­w)Nr:  Úutf8)r(   r   ÚjsonÚdumpsÚencode)Úurlr   r/   s    €€r   Úfake_urlopenzQTestRefResolver.test_it_retrieves_unstored_refs_via_urlopen.<locals>.fake_urlopen.	  s6   øè ø€ à×Ñ˜S ,Ô/Üœ$Ÿ*™* VÓ,×3Ñ3°FÓ;Ó<Ó<ùs   ƒAAÚurlopen)r  r;  r'   r<  r   Úsetattrr   rG  rÞ  rm  r(   )r/   rá  rF  r)  r   s   `   @r   Ú+test_it_retrieves_unstored_refs_via_urlopenz;TestRefResolver.test_it_retrieves_unstored_refs_via_urlopen$	  sÃ   ù€ ØˆØ˜�ˆàœŸ™Ñ$Ø�O‰OÜ—‘×'Ñ'¨´S·[±[ÀÑ5Lôð #'Œ�‰�JÑä	ô	=ó 
ð	=ð 	�‰œ¤¨Y¼
×8JÑ8JÔKØ)Œ
Ôà�]‰]×$Ñ$ SÓ)ð 	¨XØ÷	à×Ñ˜ 2Õ&÷	ð 	ús   Ã	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Ó   rB  Údumpr   rÞ  rm  r(   )r/   Útempfrá  r)  s       r   Ú(test_it_retrieves_local_refs_via_urlopenz8TestRefResolver.test_it_retrieves_local_refs_via_urlopen:	  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   r$  s    r   ru   zPTestRefResolver.test_it_can_construct_a_base_uri_from_a_schema.<locals>.<lambda>G	  r/  r1   r0  rp   ú#zfoo#©r   rà  r1  r(   r$  Úresolution_scoperm  r2  s       r   Ú.test_it_can_construct_a_base_uri_from_a_schemaz>TestRefResolver.test_it_can_construct_a_base_uri_from_a_schemaC	  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   rW  rX  r2  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_idT	  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   rk  )rE  rá  r   r/   s    €€€r   Úhandlerz@TestRefResolver.test_custom_uri_scheme_handlers.<locals>.handler_	  s   ø€ Ø×Ñ˜S #Ô&ØˆMr1   r‘   r™   ú	foo://barrp   ©Úhandlers)r   rà  rm  r(   )r/   r_  rÞ  r)  rá  r   s   `   @@r   Útest_custom_uri_scheme_handlersz/TestRefResolver.test_custom_uri_scheme_handlers^	  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    ©rE  Úresponser/   s    €€r   r_  z5TestRefResolver.test_cache_remote_on.<locals>.handlerl	  s3   ø€ ðAØ—|‘|“~Ð%øÜò AØ—	‘	Ð?Ö@ðAúó   ƒ “0¯0r`  rp   Tr‘   ©Úcache_remoterb  ©r�   r   rà  rm  ©r/   r_  rá  rÞ  ri  s   `   @r   Útest_cache_remote_onz$TestRefResolver.test_cache_remote_oni	  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!rf  rh  s    €€r   r_  z6TestRefResolver.test_cache_remote_off.<locals>.handler~	  s0   ø€ ð3Ø—|‘|“~Ð%øÜò 3Ø—	‘	Ð1Ö2ð3úrj  r`  rp   Fr‘   rk  rm  rn  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   )rE  rÊ  s    €r   r_  zTTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error.<locals>.handlerŽ	  s   ø€ ØˆKr1   r`  rp   r‘   ra  zShouldn't get this far!)
rF  r   rà  rœ   r   Ú_RefResolutionErrorrm  r    r(   rG  )r/   r_  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   ru  rz   rU  rG  )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Ý  r3  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‹   rk  )r  r/   s    €r   ÚhandlezNTestRefResolver.test_newly_created_validator_with_ref_resolver.<locals>.handle´	  s   ø€ Ø×Ñ˜SÐ":Ô;Ø˜IÐ&Ð&r1   rp   Úhttpra  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‹   )rn  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   r$  r"  r#  r0   r*  r,  r3  r6  r>  rI  rT  rZ  r\  rc  ro  rr  rw  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�  rU  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)r=  zdict[str, Any]Ú
_responsesc                ó¦   — | j                   j                  |«      }|€t        dt        |«      z   «      ‚t	        t        j                  |«      «      S )NzUnknown URL: )r‘  rr   rF  r\   Ú_ReallyFakeJSONResponserB  rC  )r/   rE  ri  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   r=  r=  â	  s   … ð Óó=r1   r=  c                  ó   — e Zd ZU ded<   d„ Zy)r“  rU  Ú	_responsec                ó@   — t        j                  | j                  «      S r3   )rB  Úloadsr•  r.   s    r   rB  z_ReallyFakeJSONResponse.jsonó	  s   € Ü�z‰z˜$Ÿ.™.Ó)Ð)r1   N)rW   r»   rX   r�  rB  r   r1   r   r“  r“  î	  s   … ð ƒNó*r1   r“  ):Ú
__future__r   Úcollectionsr   r   Ú
contextlibr   Údecimalr   Úior   Útypingr	   Úunittestr
   r   Úurllib.requestr   rB  rP  r  rN  rÙ  Úattrsr   r   Úreferencing.jsonschemar   Úreferencing.exceptionsr  Ú
jsonschemar   r   r   r   r   r    r"   r½   rˆ  ró  r  rq  rƒ  r’  r•  r—  r™  r�  rŸ  r£  rá  rÿ  r  r  r–  r=  r“  r   r1   r   ú<module>r¤     s‹  ðÝ "ç )Ý %Ý Ý Ý ß #Ý 'Û Û 	Û 
Û Û ç Ý .Û ÷õ ò1ôL6˜(ô L6ô^c
 (ô c
ôL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ô ô4l
�hô l
ò`#ð ÷=ð =ó ð=ð ÷*ð *ó ñ*r1   