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

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

        See #529.
        r¬  N©r.   r   rØ   r¸   rœ   r   r�   r›   r/   s    r   Útest_enum_allows_empty_arraysz2MetaSchemaTestsMixin.test_enum_allows_empty_arraysM  sÝ   € ð Œ>ÝÔ&ÝÔ&ð
ð 
ð 
ð ×"Ò"¥:Ô#9Ñ:Ô:ð :ð :Ø”×+Ò+¨V°R¨LÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :ð ŒN×'Ò'¨°¨Ñ5Ô5Ð5Ð5Ð5s   ¿A)Á)A-Á0A-c                ó0  — | j         t          j        t          j        hv rX|                      t
          j        ¦  «        5  | j                              dddgi¦  «         ddd¦  «         dS # 1 swxY w Y   dS | j                              dddgi¦  «         dS )zž
        Technically, all the spec says is they SHOULD be unique, not MUST.

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

        See #529.
        r¬  rŒ   Nr	  r/   s    r   Ú!test_enum_allows_non_unique_itemsz6MetaSchemaTestsMixin.test_enum_allows_non_unique_items^  sû   € ð Œ>ÝÔ&ÝÔ&ð
ð 
ð 
ð ×"Ò"¥:Ô#9Ñ:Ô:ð @ð @Ø”×+Ò+¨V°b¸"°XÐ,>Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @ð ŒN×'Ò'¨°"°b°Ð(:Ñ;Ô;Ð;Ð;Ð;s   ¿A+Á+A/Á2A/c                ó®   — |                       t          j        ¦  «        5  | j                             ddi¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrL  ú
*notaregexr  r/   s    r   Útest_schema_with_invalid_regexz3MetaSchemaTestsMixin.test_schema_with_invalid_regexo  s¬   € Ø×Ò�zÔ5Ñ6Ô6ð 	Cð 	CØŒN×'Ò'¨°LÐ(AÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr  c                óB   — | j                              ddid ¬¦  «         d S )NrL  r  ©r  )r.   r›   r/   s    r   Ú>test_schema_with_invalid_regex_with_disabled_format_validationzSMetaSchemaTestsMixin.test_schema_with_invalid_regex_with_disabled_format_validations  s6   € ØŒ×#Ò#Ø˜Ð%Øð 	$ñ 	
ô 	
ð 	
ð 	
ð 	
r!   N)	rW   r¼   rX   r  r  r
  r  r  r  r   r!   r   r   r   B  sq   € € € € € ð<ð <ð <ð;ð ;ð ;ð
6ð 6ð 6ð"<ð <ð <ð"Cð Cð Cð
ð 
ð 
ð 
ð 
r!   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S )ÚValidatorTestMixinc                ól   — |                       |                      i ¦  «        t          j        ¦  «         d S 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Ô0µ)Ô2EÑFÔFÐFÐFÐFr!   c                ó�   — | j         \  }}|                      |                      |¦  «                             |¦  «        ¦  «         d S r3   )Úvalidr’   r.   r¹   ©r0   r   r   s      r   Útest_valid_instances_are_validz1ValidatorTestMixin.test_valid_instances_are_valid~  s@   € Øœ:Ñˆ�Ø�Š˜Ÿš vÑ.Ô.×7Ò7¸ÑAÔAÑBÔBÐBÐBÐBr!   c                ó�   — | j         \  }}|                      |                      |¦  «                             |¦  «        ¦  «         d S r3   )Úinvalidr¥  r.   r¹   r  s      r   Ú$test_invalid_instances_are_not_validz7ValidatorTestMixin.test_invalid_instances_are_not_valid‚  sB   € Øœ<Ñˆ�Ø×Ò˜Ÿš¨Ñ/Ô/×8Ò8¸ÑBÔBÑCÔCÐCÐCÐCr!   c                ó¤   — |                       t          ¦   «         t          ¦   «         i¦  «                             t          ¦   «         ¬¦  «         d S )N©r   )r.   r�   rž   r/   s    r   Ú(test_non_existent_properties_are_ignoredz;ValidatorTestMixin.test_non_existent_properties_are_ignored†  s<   € Ø�Š�™œ¥&¡(¤(Ð+Ñ,Ô,×5Ò5½v¹x¼xÐ5ÑHÔHÐHÐHÐHr!   c                óH  — ddit          ¦   «         }}|                      ||¬¦  «        }|                     ddi| j        j        ¬¦  «        }|                      ddi| j        j        |j        ¬¦  «        }|                      ||¦  «         |                      ||¦  «         d S )Nr…   r‹   r  r�   )r   r  )r  Ú	_resolver)r   r.   ÚevolveÚFORMAT_CHECKERr#  r)   ÚassertNotEqual)r0   r   r  rj   r¥   Úexpecteds         r   Útest_evolvezValidatorTestMixin.test_evolve‰  s¿   € Ø"(¨)Ð!4µm±o´o�ˆØ—>’>ØØ)ð "ñ 
ô 
ˆð �oŠoØ˜HÐ%Øœ>Ô8ð ñ 
ô 
ˆð
 —>’>Ø�XÐØœ>Ô8Ø”mð "ñ 
ô 
ˆð 	×Ò˜˜hÑ'Ô'Ð'Ø×Ò˜C Ñ*Ô*Ð*Ð*Ð*r!   c                óž  — |                       t          ¦  «        5  t           G d„ d| j        ¦  «        ¦   «         }ddd¦  «         n# 1 swxY w Y    |i d¬¦  «        }|                      |j        g d¢¦  «         |                     ddi¬	¦  «        }|                      |j        g d¢¦  «         |                      |j        d¦  «         dS )
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                  ó@   — e Zd Z ed„ ¬¦  «        Z ed¬¦  «        ZdS )ú:ValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNoc                 ó
   — g d¢S )Nrø   r   r   r!   r   ru   zCValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNo.<lambda>ª  s
   € ¨I¨I¨I€ r!   )Úfactoryr·   ©ÚdefaultN)rW   r¼   rX   r   r‘   Ú_barr   r!   r   ÚOhNor+  ¨  s6   € € € € € à�eÐ$5Ð$5Ð6Ñ6Ô6�Ø�u RÐ(Ñ(Ô(���r!   r1  NrŒ   )r™   rø   r…   r‹   ©r   )ÚassertWarnsÚDeprecationWarningr   r.   r)   r‘   r$  r0  )r0   r1  r   r¥   s       r   Útest_evolve_with_subclassz,ValidatorTestMixin.test_evolve_with_subclass�  s+  € ð ×ÒÕ0Ñ1Ô1ð 	)ð 	)Ýð)ð )ð )ð )ð )�t”~ñ )ô )ñ ŒVð)ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð �D˜ Ð$Ñ$Ô$ˆ	Ø×Ò˜œ¨	¨	¨	Ñ2Ô2Ð2à×Ò v¨yÐ&9ÐÑ:Ô:ˆØ×Ò˜œ ) ) )Ñ,Ô,Ð,Ø×Ò˜œ 2Ñ&Ô&Ð&Ð&Ð&s   ›!AÁAÁAc                ó~   — |                       |                      i ¦  «                             dd¦  «        ¦  «         d S )Nr‘   r�   )r’   r.   r†   r/   s    r   Ú#test_is_type_is_true_for_valid_typez6ValidatorTestMixin.test_is_type_is_true_for_valid_type´  s6   € Ø�Š˜Ÿš rÑ*Ô*×2Ò2°5¸(ÑCÔCÑDÔDÐDÐDÐDr!   c                ó~   — |                       |                      i ¦  «                             dd¦  «        ¦  «         d S )Nr‘   r‰   ©r¥  r.   r†   r/   s    r   Ú&test_is_type_is_false_for_invalid_typez9ValidatorTestMixin.test_is_type_is_false_for_invalid_type·  s8   € Ø×Ò˜Ÿš¨Ñ+Ô+×3Ò3°E¸7ÑCÔCÑDÔDÐDÐDÐDr!   c                óö   — |                       |                      i ¦  «                             dd¦  «        ¦  «         |                       |                      i ¦  «                             dd¦  «        ¦  «         d S )NTr‹   rŽ   r9  r/   s    r   Ú,test_is_type_evades_bool_inheriting_from_intz?ValidatorTestMixin.test_is_type_evades_bool_inheriting_from_intº  sh   € Ø×Ò˜Ÿš¨Ñ+Ô+×3Ò3°D¸)ÑDÔDÑEÔEÐEØ×Ò˜Ÿš¨Ñ+Ô+×3Ò3°D¸(ÑCÔCÑDÔDÐDÐDÐDr!   c                óz  — dddii}t          j        | j        | j        j                             dd„ ¦  «        ¬¦  «        } ||¦  «        }|                     ddt          d¦  «        t          d¦  «        z  g¦  «         d	i g d
d g}|                      d„ |                     |¦  «        D ¦   «         |¦  «         d S )Nró   r…   rŽ   c                ór   — t          |t          t          t          f¦  «        ot          |t          ¦  «         S r3   )Ú
isinstanceÚintÚfloatr   Úbool©r  r
  s     r   ru   zGValidatorTestMixin.test_it_can_validate_with_decimals.<locals>.<lambda>Ä  s4   € ¥zØ�C¥­Ð0ñ(ô (ð (2å$ U­DÑ1Ô1Ð1ð r!   ©r'   rE   gš™™™™™ñ?r¶  r‘   Tc                ó   — g | ]	}|j         ‘Œ
S r   r   )r‡   r×  s     r   ú
<listcomp>zIValidatorTestMixin.test_it_can_validate_with_decimals.<locals>.<listcomp>Ï  s   € ÐHÐHÐH ˆUŒ^ÐHÐHÐHr!   )	r   r§   r.   r6   Úredefinerž   r   r)   r>   )r0   r   r.   r   r  s        r   Ú"test_it_can_validate_with_decimalsz5ValidatorTestMixin.test_it_can_validate_with_decimals¾  sã   € Ø˜F HÐ-Ð.ˆÝÔ%ØŒNØœÔ4×=Ò=Øð2ð 2ñô ð
ñ 
ô 
ˆ	ð �I˜fÑ%Ô%ˆ	Ø×Ò˜A˜s¥G¨A¡J¤Jµ¸±´Ñ$;Ð<Ñ=Ô=Ð=à˜"˜b $¨Ð-ˆØ×ÒØHÐH¨×)>Ò)>¸wÑ)GÔ)GÐHÑHÔHØñ	
ô 	
ð 	
ð 	
ð 	
r!   c                óz   — |                       ddit          ¦   «         ¬¦  «        }|                     d¦  «         d S )Nr  Úcarrotr  Úbugs)r.   r   rž   ©r0   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Ó  sD   € Ø—N’NØ�xÐ µ±´ð #ñ 
ô 
ˆ	ð 	×Ò˜6Ñ"Ô"Ð"Ð"Ð"r!   c                ód   — |                       i ¦  «        }|                      |j        ¦  «         d S r3   )r.   rš  r  rL  s     r   Ú,test_it_does_not_validate_formats_by_defaultz?ValidatorTestMixin.test_it_does_not_validate_formats_by_defaultÙ  s0   € Ø—N’N 2Ñ&Ô&ˆ	Ø×Ò˜)Ô2Ñ3Ô3Ð3Ð3Ð3r!   c                óÈ  ‡ ‡— t          ¦   «         }t          d¦  «        Š|                     dt          ¬¦  «        ˆˆ fd„¦   «         }‰                      ddi|¬¦  «        }|                     d¦  «         ‰                      t          j        ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      |j	        j
        ‰¦  «         d S )	NzBad!r‘   )Úraisesc                óZ   •— | dk    rdS | dk    r‰‚‰                      d| › d�¦  «         d S )NÚgoodTÚbadzWhat is z? [Baby Don't Hurt Me])r    )r  rT  r0   s    €€r   ÚcheckzTValidatorTestMixin.test_it_validates_formats_if_a_checker_is_provided.<locals>.checká  sC   ø€ à˜ŠˆØ�tØ˜%’�Ø�	à—	’	ÐB UÐBÐBÐBÑCÔCÐCÐCÐCr!   r  r  rS  rT  )r   Ú
ValueErrorr  r.   rž   rœ   r   r   r¤  Ú	exceptionÚcause)r0   r  rU  r   ÚcmrT  s   `    @r   Ú2test_it_validates_formats_if_a_checker_is_providedzEValidatorTestMixin.test_it_validates_formats_if_a_checker_is_providedÝ  s1  øø€ Ý‘/”/ˆÝ˜Ñ Ô ˆà	�Š˜¥jˆÑ	1Ô	1ð	Dð 	Dð 	Dð 	Dð 	Dñ 
2Ô	1ð	Dð —N’NØ�uÐ¨gð #ñ 
ô 
ˆ	ð 	×Ò˜6Ñ"Ô"Ð"Ø×Ò�zÔ9Ñ:Ô:ð 	&¸bØ×Ò˜uÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	�Š�b”lÔ(¨#Ñ.Ô.Ð.Ð.Ð.s   ÂB7Â7B;Â>B;c                óÜ   — t          ¦   «         }d|gi}t          j        | j        | j        j                             |d„ ¦  «        ¬¦  «        } ||¦  «                             d¦  «         d S )Nr…   c                ó,   — t          |t          ¦  «        S r3   ©r?  r@  rC  s     r   ru   z@ValidatorTestMixin.test_non_string_custom_type.<locals>.<lambda>ü  s   € ¥z°%½Ñ'=Ô'=€ r!   rD  r±  )r�   r   r§   r.   r6   rG  rž   )r0   Únon_string_typer   ÚCrazys       r   Útest_non_string_custom_typez.ValidatorTestMixin.test_non_string_custom_typeõ  sy   € Ý ™(œ(ˆØ˜?Ð+Ð,ˆÝÔ!ØŒNØœÔ4×=Ò=ØØ=Ð=ñô ð
ñ 
ô 
ˆð 	ˆˆf‰Œ×Ò˜rÑ"Ô"Ð"Ð"Ð"r!   c                óx  — t          j        | j        | j        j                             dd„ ¦  «        ¬¦  «        }|                      t          j        ¦  «        5 } |ddi¦  «                             d¦  «         ddd¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         dS )	zh
        A tuple instance properly formats validation errors for uniqueItems.

        See #224
        r‰   c                ó,   — t          |t          ¦  «        S r3   )r?  ÚtuplerC  s     r   ru   zNValidatorTestMixin.test_it_properly_formats_tuples_in_errors.<locals>.<lambda>  s   € ¥z°%½Ñ'?Ô'?€ r!   rD  ÚuniqueItemsT)rE   rE   Nz(1, 1) has non-unique elements)r   r§   r.   r6   rG  rœ   r   r   rž   rz   ÚstrrW  )r0   ÚTupleValidatorr§  s      r   Ú)test_it_properly_formats_tuples_in_errorsz<ValidatorTestMixin.test_it_properly_formats_tuples_in_errors  s  € õ $Ô*ØŒNØœÔ4×=Ò=ØØ?Ð?ñô ð
ñ 
ô 
ˆð ×Ò�zÔ9Ñ:Ô:ð 	C¸aØˆN˜M¨4Ð0Ñ1Ô1×:Ò:¸6ÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cà�ŠÐ6½¸A¼KÑ8HÔ8HÑIÔIÐIÐIÐIs   Á!BÂBÂBc                óT  ‡— dddœ}t          dd¦  «        Št          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 ]}|                     |¦  «         Œ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 ]N}|                      t          j
        ¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   ŒOdS )zO
        Allow array to validate against another defined sequence type
        r‰   T)r…   rd  Ú	MyMappingza, bc                ó:   — t          |t          t          f¦  «        S r3   )r?  r=   r   rC  s     r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   € µJØ¥¥e˜}ñ5ô 5€ r!   c                ó2   •— t          |t          ‰f¦  «        S r3   )r?  r+   )r  r
  ri  s     €r   ru   zBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>  s   ø€ µZØ¥ iÐ0ñ6ô 6€ r!   )r‰   r�   rD  )r_   Nr  rp   TFr   r_   )r_   r:  r_   N)r   r   r§   r.   r6   Úredefine_manyr   rž   rœ   r   r   )r0   r   r.   r   Úvalid_instancesr   Úinvalid_instancesri  s          @r   Útest_check_redefined_sequencez0ValidatorTestMixin.test_check_redefined_sequence  sœ  ø€ ð "°$Ð7Ð7ˆÝ˜{¨FÑ3Ô3ˆ	ÝÔ%ØŒNØœÔ4×BÒBðð ðð ð ð ð	ð ñ	ô 	ð
ñ 
ô 
ˆ	ð �I˜fÑ%Ô%ˆ	õ Ð,Ð,Ð,Ñ-Ô-Ý�E�7˜Q˜C�.Ñ!Ô!Ý�E�7‰^Œ^�U A 3™ZœZÐ(Ý�U�G‰nŒnÐ¥ q c¡
¤
˜|Ð,Ý˜�w‘”Ð Ð!Ð"Ð#­°¨s©¬¨ ~Ð&6Ð%7Ð8Ý•E˜5˜'‘N”NÐ#Ñ$Ô$¥e­U°A°3©Z¬Z¨LÑ&9Ô&9Ð:ØˆY�s˜AÑÔ 	 	¨#¨uÑ 5Ô 5Ð6à�	˜#¥ q c¡
¤
˜|Ñ,Ô,Ø�	˜#¥ u g¡¤Ð/Ñ0Ô0ðð
 �	˜# 	 	¨#­u°a°S©z¬zÑ :Ô :Ð;Ñ<Ô<Ø�	˜# 	 	¨#­u°e°W©~¬~Ñ >Ô >Ð?Ñ@Ô@ðõ •5� ˜w™œÑ(Ô(Ñ)Ô)­5µµu¸a¸S±z´zÑ1BÔ1BÑ+CÔ+CÐDð!
ˆð& (ð 	)ð 	)ˆHØ×Ò˜xÑ(Ô(Ð(Ð(õ �/�/�/Ñ"Ô"Ý�E�7˜U˜GÐ$Ñ%Ô%Ý�E�7‰^Œ^�U E 7™^œ^Ð,Ý�U�G‰nŒnÐ¥ u g¡¤Ð/Ð0Ý˜�w‘”Ð Ð!Ð"Ð#­°¨w©¬Ð(8Ð'9Ð&:Ð%;Ð<Ý•E˜5˜'‘N”NÐ#Ñ$Ô$¥e­U°E°7©^¬^Ð,<Ñ&=Ô&=Ð>ØˆY�s˜EÑ"Ô" I I¨c°5Ñ$9Ô$9Ð:à�	˜#¥ u g¡¤Ð/Ñ0Ô0Ø�	˜#¥ u g¡¤Ð/Ñ0Ô0ðð
 �	˜# 	 	¨#­u°e°W©~¬~Ñ >Ô >Ð?Ñ@Ô@Ø�	˜# 	 	¨#­u°e°W©~¬~Ñ >Ô >Ð?Ñ@Ô@ðõ •5� ˜w™œÑ(Ô(Ñ)Ô)­5µµu¸e¸W±~´~Ñ1FÔ1FÑ+GÔ+GÐHð!
Ðð& *ð 	-ð 	-ˆHØ×"Ò"¥:Ô#=Ñ>Ô>ð -ð -Ø×"Ò" 8Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -øð	-ð 	-s   Ï:PÐP 	Ð#P 	c                óÞ   — |                       t          ¦  «        5  |                      i ¦  «        j        }d d d ¦  «         n# 1 swxY w Y   |                      |t
          j        ¦  «         d S r3   )r3  r4  r.   rë  r  r   rí  )r0   rë  s     r   Ú.test_it_creates_a_ref_resolver_if_not_providedzAValidatorTestMixin.test_it_creates_a_ref_resolver_if_not_providedT  sŸ   € Ø×ÒÕ0Ñ1Ô1ð 	3ð 	3Ø—~’~ bÑ)Ô)Ô2ˆHð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3à×Ò˜h­
Ô(?Ñ@Ô@Ð@Ð@Ð@s   ›AÁAÁ	Ac                ó  — dddi}}t          j        di ||i¬¦  «        }|                      d|i|¬¦  «        }|                      t          j        ¦  «        5  |                     d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚsomeCoolRefr…   r‹   rp   rè  rµ   rê  )r   rí  r.   rœ   r   r   rž   ©r0   rî  r   rë  r   s        r   Ú/test_it_upconverts_from_deprecated_RefResolverszBValidatorTestMixin.test_it_upconverts_from_deprecated_RefResolversY  sÓ   € Ø# f¨iÐ%8ˆVˆÝÔ*¨2¨r¸#¸v¸ÐGÑGÔGˆØ—N’N F¨C =¸8�NÑDÔDˆ	à×Ò�zÔ9Ñ:Ô:ð 	%ð 	%Ø×Ò˜tÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ÁA;Á;A?ÂA?c                ó  ‡ —  G ˆ fd„d¦  «        } |¦   «         }ddi}‰                       t          j        ¦  «        5  ‰                      ||¬¦  «                             d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zb
        Legacy RefResolvers support only the context manager form of
        resolution.
        c                  ó*   •— e Zd Zeˆ fd„¦   «         ZdS )únValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolvers.<locals>.LegacyRefResolverc              3  óD   •K  — ‰                      |d¦  «         ddiV — d S )Núthe refr…   r‹   ©r)   )Úthisrî  r0   s     €r   Ú	resolvingzxValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolvers.<locals>.LegacyRefResolver.resolvingh  s4   øè è € à× Ò   iÑ0Ô0Ð0Ø˜yÐ)Ð)Ð)Ð)Ð)Ð)r!   N)rW   r¼   rX   r   r}  r/   s   €r   ÚLegacyRefResolverrx  g  s8   ø€ € € € € Øð*ð *ð *ð *ñ Œ^ð*ð *ð *r!   r~  rµ   rz  rê  N)rœ   r   r   r.   rž   )r0   r~  rë  r   s   `   r   Ú@test_it_upconverts_from_yet_older_deprecated_legacy_RefResolverszSValidatorTestMixin.test_it_upconverts_from_yet_older_deprecated_legacy_RefResolversa  s  ø€ ð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð %Ð$Ñ&Ô&ˆØ˜)Ð$ˆà×Ò�zÔ9Ñ:Ô:ð 	Eð 	EØ�NŠN˜6¨HˆNÑ5Ô5×>Ò>¸tÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	Eð 	Es   ¾+A6Á6A:Á=A:N)rW   r¼   rX   r  r  r  r!  r(  r5  r7  r:  r<  rH  rM  rO  rZ  r`  rg  ro  rq  ru  r  r   r!   r   r  r  z  sU  € € € € € ðGð Gð GðCð Cð CðDð Dð DðIð Ið Ið+ð +ð +ð('ð 'ð 'ð.Eð Eð EðEð Eð EðEð Eð Eð
ð 
ð 
ð*#ð #ð #ð4ð 4ð 4ð/ð /ð /ð0
#ð 
#ð 
#ðJð Jð Jð"@-ð @-ð @-ðDAð Að Að
%ð %ð %ðEð Eð Eð Eð Er!   r  c                  ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚAntiDraft6LeakMixinzN
    Make sure functionality from draft 6 doesn't leak backwards in time.
    c                óø   — |                       t          j        ¦  «        5 }| j                             d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NTzTrue is not of type©rœ   r   r�   r.   r›   rz   re  rW  ©r0   r§  s     r   Útest_True_is_not_a_schemaz-AntiDraft6LeakMixin.test_True_is_not_a_schemay  s¦   € Ø×Ò�zÔ5Ñ6Ô6ð 	.¸!ØŒN×'Ò'¨Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.à�ŠÐ+­S°´Ñ-=Ô-=Ñ>Ô>Ð>Ð>Ð>ó    AÁAÁAc                óø   — |                       t          j        ¦  «        5 }| j                             d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NFzFalse is not of typerƒ  r„  s     r   Útest_False_is_not_a_schemaz.AntiDraft6LeakMixin.test_False_is_not_a_schema~  s¦   € Ø×Ò�zÔ5Ñ6Ô6ð 	/¸!ØŒN×'Ò'¨Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à�ŠÐ,­c°!´+Ñ.>Ô.>Ñ?Ô?Ð?Ð?Ð?r†  c                ó  — |                       t          ¦  «        5 }|                      d¦  «                             d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        t          j        ¦  «         d S )NTrŒ   ©rœ   Ú	Exceptionr.   rž   ÚassertNotIsInstancerW  r   r   r„  s     r   Ú5test_True_is_not_a_schema_even_if_you_forget_to_checkzIAntiDraft6LeakMixin.test_True_is_not_a_schema_even_if_you_forget_to_checkƒ  s©   € Ø×Ò�yÑ)Ô)ð 	.¨QØ�NŠN˜4Ñ Ô ×)Ò)¨"Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.à× Ò  ¤­jÔ.HÑIÔIÐIÐIÐIó   ›)AÁAÁAc                ó  — |                       t          ¦  «        5 }|                      d¦  «                             d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        t          j        ¦  «         d S )NFrŒ   rŠ  r„  s     r   Ú6test_False_is_not_a_schema_even_if_you_forget_to_checkzJAntiDraft6LeakMixin.test_False_is_not_a_schema_even_if_you_forget_to_checkˆ  s©   € Ø×Ò�yÑ)Ô)ð 	/¨QØ�NŠN˜5Ñ!Ô!×*Ò*¨2Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à× Ò  ¤­jÔ.HÑIÔIÐIÐIÐIrŽ  N)rW   r¼   rX   Ú__doc__r…  rˆ  r�  r�  r   r!   r   r�  r�  t  se   € € € € € ðð ð?ð ?ð ?ð
@ð @ð @ð
Jð Jð Jð
Jð Jð Jð Jð Jr!   r�  c                  óT   — 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d
S )ÚTestDraft3Validatorútuple[dict, dict]r  r…   r‹   r‘   c                óv   — |                       ddi¦  «        }|                     t          ¦   «         ¦  «         d S ©Nr…   Úany)r.   rž   r�   rL  s     r   Ú#test_any_type_is_valid_for_type_anyz7TestDraft3Validator.test_any_type_is_valid_for_type_any“  s5   € Ø—N’N F¨E ?Ñ3Ô3ˆ	Ø×Ò�6™8œ8Ñ$Ô$Ð$Ð$Ð$r!   c                óX  — t          j        | j        | j        j                             dd„ ¦  «        ¬¦  «        } |ddi¦  «        }|                     d¦  «         |                      t          j        ¦  «        5  |                     d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z(
        Sigh, because why not.
        r—  c                ó,   — t          |t          ¦  «        S r3   r]  rC  s     r   ru   zBTestDraft3Validator.test_any_type_is_redefinable.<locals>.<lambda>ž  s   € ­j¸ÅÑ.DÔ.D€ r!   rD  r…   rŒ   r‘   N)	r   r§   r.   r6   rG  rž   rœ   r   r   )r0   r_  r   s      r   Útest_any_type_is_redefinablez0TestDraft3Validator.test_any_type_is_redefinable—  sù   € õ Ô!ØŒNØœÔ4×=Ò=ØÐDÐDñô ð
ñ 
ô 
ˆð �E˜6 5˜/Ñ*Ô*ˆ	Ø×Ò˜2ÑÔÐØ×Ò�zÔ9Ñ:Ô:ð 	&ð 	&Ø×Ò˜uÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   Á<BÂB#Â&B#c                ó˜   — |                       |                      ddi¦  «                             t          ¦   «         ¦  «        ¦  «         d S 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Ô7×@Ò@ÅÁÄÑJÔJÑKÔKÐKÐKÐKr!   c                óø   — |                       |                      i ¦  «                             dd¦  «        ¦  «         |                       |                      ddi¦  «                             d¦  «        ¦  «         d S )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©  sf   € Ø�Š˜Ÿš rÑ*Ô*×2Ò2°4¸ÑCÔCÑDÔDÐDØ�Š˜Ÿš¨° Ñ7Ô7×@Ò@ÀÑFÔFÑGÔGÐGÐGÐGr!   N)rW   r¼   rX   r   rØ   r.   r  Ú__annotations__r  r˜  r›  r�  rŸ  r   r!   r   r“  r“  Ž  s†   € € € € € € ØÔ*€IØ " B˜x€EÐ'Ð'Ð'Ñ'Ø�yÐ! 5Ð(€Gð%ð %ð %ð&ð &ð &ðLð Lð LðHð Hð Hð Hð Hr!   r“  c                  ó<   — e Zd ZU ej        Zi i fZded<   ddidfZdS )ÚTestDraft4Validatorr”  r  r…   r‹   r‘   N)	rW   r¼   rX   r   r¸   r.   r  r   r  r   r!   r   r¢  r¢  ®  ó<   € € € € € € ØÔ*€IØ " B˜x€EÐ'Ð'Ð'Ñ'Ø�yÐ! 5Ð(€G€G€Gr!   r¢  c                  ó<   — e Zd ZU ej        Zi i fZded<   ddidfZdS )ÚTestDraft6Validatorr”  r  r…   r‹   r‘   N)	rW   r¼   rX   r   r  r.   r  r   r  r   r!   r   r¥  r¥  ´  r£  r!   r¥  c                  ó<   — e Zd ZU ej        Zi i fZded<   ddidfZdS )ÚTestDraft7Validatorr”  r  r…   r‹   r‘   N)	rW   r¼   rX   r   rï   r.   r  r   r  r   r!   r   r§  r§  º  r£  r!   r§  c                  ó<   — e Zd ZU ej        Zi i fZded<   ddidfZdS )ÚTestDraft201909Validatorr”  r  r…   r‹   r‘   N)	rW   r¼   rX   r   ÚDraft201909Validatorr.   r  r   r  r   r!   r   r©  r©  À  ó<   € € € € € € ØÔ/€IØ " B˜x€EÐ'Ð'Ð'Ñ'Ø�yÐ! 5Ð(€G€G€Gr!   r©  c                  ó<   — e Zd ZU ej        Zi i fZded<   ddidfZdS )ÚTestDraft202012Validatorr”  r  r…   r‹   r‘   N)	rW   r¼   rX   r   rš   r.   r  r   r  r   r!   r   r­  r­  Æ  r«  r!   r­  c                  ó   — e Zd ZdZd„ ZdS )Ú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        ||¬¦  «        }|                      t          j        ¦  «        5  |                     d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrs  rµ   rp   Frè  rê  )r   rí  rÂ   rœ   r   r   rž   rt  s        r   Ú2test_ref_resolvers_may_have_boolean_schemas_storedzFTestLatestValidator.test_ref_resolvers_may_have_boolean_schemas_storedÑ  sÏ   € ØˆØ˜#�ˆÝÔ*¨2¨r¸#¸u¸ÐFÑFÔFˆÝÔ.¨vÀÐIÑIÔIˆ	à×Ò�zÔ9Ñ:Ô:ð 	%ð 	%Ø×Ò˜tÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ÁA8Á8A<Á?A<N)rW   r¼   rX   r‘  r±  r   r!   r   r¯  r¯  Ì  s-   € € € € € ðð ð%ð %ð %ð %ð %r!   r¯  c                  óh   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestValidatorForc                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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Ü  óx   € ØÐEÐFˆØ�ŠÝÔ$ VÑ,Ô,ÝÔ&ñ	
ô 	
ð 	
ð
 ÐFÐGˆØ�ŠÝÔ$ VÑ,Ô,ÝÔ&ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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¹  r!   c                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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¹  r!   c                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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¹  r!   c                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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  óx   € ØÐKÐLˆØ�ŠÝÔ$ VÑ,Ô,ÝÔ+ñ	
ô 	
ð 	
ð
 ÐLÐMˆØ�ŠÝÔ$ VÑ,Ô,ÝÔ+ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                óÞ   — ddi}|                       t          j        |¦  «        t          j        ¦  «         ddi}|                       t          j        |¦  «        t          j        ¦  «         d S )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È  r!   c                ój   — |                       t          j        d¦  «        t          j        ¦  «         d S )NT©r¤  r   r·  rÂ   r/   s    r   Ú	test_TruezTestValidatorFor.test_True*  s6   € Ø�ŠÝÔ$ TÑ*Ô*ÝÔ&ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                ój   — |                       t          j        d¦  «        t          j        ¦  «         d S r  rÎ  r/   s    r   Ú
test_FalsezTestValidatorFor.test_False0  s6   € Ø�ŠÝÔ$ UÑ+Ô+ÝÔ&ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                ó’   — t          j        ddidd„ ¬¦  «        }ddi}|                      t          j        |¦  «        |¦  «         d S )Nri   rm   Ú12c                ó.   — |                       dd¦  «        S ro   rq   rs   s    r   ru   z8TestValidatorFor.test_custom_validator.<locals>.<lambda>:  rv   r!   rw   r—   ©r   r-   r¤  r·  ©r0   r.   r   s      r   Útest_custom_validatorz&TestValidatorFor.test_custom_validator6  si   € ÝÔ%ØÐ/Ð0ØØ+Ð+ð
ñ 
ô 
ˆ	ð
 Ð-Ð.ˆØ�ŠÝÔ$ VÑ,Ô,Øñ	
ô 	
ð 	
ð 	
ð 	
r!   c                óŽ   — t          j        ddid¬¦  «        }ddi}|                      t          j        |¦  «        |¦  «         d S )Nr%   r€   Ú13rS   r—   rÕ  rÖ  s      r   Útest_custom_validator_draft6z-TestValidatorFor.test_custom_validator_draft6B  sc   € ÝÔ%ØÐ 1Ð2Øð
ñ 
ô 
ˆ	ð Ð.Ð/ˆØ�ŠÝÔ$ VÑ,Ô,Øñ	
ô 	
ð 	
ð 	
ð 	
r!   c                ój   — |                       t          j        i ¦  «        t          j        ¦  «         d S r3   rÎ  r/   s    r   Ú%test_validator_for_jsonschema_defaultz6TestValidatorFor.test_validator_for_jsonschema_defaultM  s*   € Ø�Š•jÔ.¨rÑ2Ô2µJÔ4NÑOÔOÐOÐOÐOr!   c                óZ   — |                       t          j        i d ¬¦  «        d ¦  «         d S )Nr.  )r¤  r   r·  r/   s    r   Ú!test_validator_for_custom_defaultz2TestValidatorFor.test_validator_for_custom_defaultP  s,   € Ø�Š•jÔ.¨r¸4Ð@Ñ@Ô@À$ÑGÔGÐGÐGÐGr!   c                ó(  — |                       t          ¦  «        5 }t          j        ddi¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        t          ¦  «         |                      t          |j        ¦  «        d¦  «         d S )Nr—   ÚunknownSchemar2  z‚The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.)	r3  r4  r   r·  r)   ÚfilenameÚ__file__re  Úwarning)r0   rY  s     r   Ú1test_warns_if_meta_schema_specified_was_not_foundzBTestValidatorFor.test_warns_if_meta_schema_specified_was_not_foundS  sÞ   € Ø×ÒÕ0Ñ1Ô1ð 	J°RÝÔ$¨Y¸Ð,HÐIÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	×Ò˜œ¥hÑ/Ô/Ð/Ø×ÒÝ�”
‰OŒOð&ñ	
ô 	
ð 	
ð 	
ð 	
s   ›?¿AÁAc                óÞ   — t          j        d¬¦  «        5 }t          j        d¦  «         t          j        i i ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         d S )NT©ÚrecordÚalways)r   r/  )ÚwarningsÚcatch_warningsÚsimplefilterr   r·  r¥  )r0   Úws     r   Ú0test_does_not_warn_if_meta_schema_is_unspecifiedzATestValidatorFor.test_does_not_warn_if_meta_schema_is_unspecified_  s«   € ÝÔ$¨DÐ1Ñ1Ô1ð 	<°QÝÔ! (Ñ+Ô+Ð+ÝÔ$¨B¸Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	×Ò˜ÑÔÐÐÐs   –+AÁAÁAc                ó|   — ddit          ¦   «         }}|                      t          j        ||¦  «        |¦  «         d S )Nr—   zmailto:foo@example.com)r�   r¤  r   r·  )r0   r   r/  s      r   Ú-test_validator_for_custom_default_with_schemaz>TestValidatorFor.test_validator_for_custom_default_with_schemae  s<   € Ø$Ð&>Ð?ÅÁÄ�ˆØ�Š•jÔ.¨v°wÑ?Ô?ÀÑIÔIÐIÐIÐIr!   N)rW   r¼   rX   r¸  r½  rÁ  rÅ  rÇ  rÌ  rÏ  rÑ  r×  rÚ  rÜ  rÞ  rä  rí  rï  r   r!   r   r³  r³  Û  s   € € € € € ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð

ð 

ð 

ð	
ð 	
ð 	
ðPð Pð PðHð Hð Hð

ð 

ð 

ðð ð ðJð Jð Jð Jð Jr!   r³  c                  óJ   — 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S )ÚTestValidatec                óÞ   — g }t           j                             |d|j        ¦  «        5  t	          j        i |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ||g¦  «         d S )Nr›   )r   Úpatchr�   Úappendr   rž   r)   )r0   r   r.   Úresults       r   Ú
assertUseszTestValidate.assertUsesk  s©   € ØˆÝŒZ×Ò˜y¨.¸&¼-ÑHÔHð 	,ð 	,ÝÔ  FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à×Ò˜ & Ñ*Ô*Ð*Ð*Ð*s   ©AÁAÁAc                ó’   — |                       ddit          j        ¬¦  «         |                       ddit          j        ¬¦  «         d S )Nr—   r¶  ©r   r.   rµ  )rö  r   rØ   r/   s    r   Útest_draft3_validator_is_chosenz,TestValidate.test_draft3_validator_is_chosenq  ób   € Ø�ŠØÐHÐIÝ Ô0ð 	ñ 	
ô 	
ð 	
ð
 	�ŠØÐGÐHÝ Ô0ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r!   c                ó’   — |                       ddit          j        ¬¦  «         |                       ddit          j        ¬¦  «         d S )Nr—   r¼  rø  r»  )rö  r   r¸   r/   s    r   Útest_draft4_validator_is_chosenz,TestValidate.test_draft4_validator_is_chosen|  rú  r!   c                ó’   — |                       ddit          j        ¬¦  «         |                       ddit          j        ¬¦  «         d S )Nr—   rÀ  rø  r¿  )rö  r   r  r/   s    r   Útest_draft6_validator_is_chosenz,TestValidate.test_draft6_validator_is_chosen‡  rú  r!   c                ó’   — |                       ddit          j        ¬¦  «         |                       ddit          j        ¬¦  «         d S )Nr—   rÄ  rø  rÃ  )rö  r   rï   r/   s    r   Útest_draft7_validator_is_chosenz,TestValidate.test_draft7_validator_is_chosen’  rú  r!   c                ó’   — |                       ddit          j        ¬¦  «         |                       ddit          j        ¬¦  «         d S )Nr—   rË  rø  rÊ  ©rö  r   rš   r/   s    r   Ú$test_draft202012_validator_is_chosenz1TestValidate.test_draft202012_validator_is_chosen�  sj   € Ø�ŠàÐJðõ !Ô5ð	 	ñ 	
ô 	
ð 	
ð 	�ŠàÐIðõ !Ô5ð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r!   c                óH   — |                       i t          j        ¬¦  «         d S )Nrø  r  r/   s    r   Ú)test_draft202012_validator_is_the_defaultz6TestValidate.test_draft202012_validator_is_the_default¬  s!   € Ø�Š˜r­ZÔ-LˆÑMÔMÐMÐMÐMr!   c                óò   — |                       t          j        ¦  «        5 }t          j        dddi¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )NrŒ   r…   r�   z1(?s)Failed validating '.*' in schema.*On instance)rœ   r   r   r   rž   ÚassertRegexre  rW  r„  s     r   Útest_validation_error_messagez*TestValidate.test_validation_error_message¯  sµ   € Ø×Ò�zÔ9Ñ:Ô:ð 	8¸aÝÔ  V¨XÐ$6Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8à×ÒÝ�”ÑÔØ?ñ	
ô 	
ð 	
ð 	
ð 	
ó    AÁAÁAc                óò   — |                       t          j        ¦  «        5 }t          j        dddi¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )NrŒ   r…   z3(?s)Failed validating '.*' in metaschema.*On schema)rœ   r   r�   r   rž   r  re  rW  r„  s     r   Útest_schema_error_messagez&TestValidate.test_schema_error_message·  s´   € Ø×Ò�zÔ5Ñ6Ô6ð 	2¸!ÝÔ  V¨R LÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2à×ÒÝ�”ÑÔØAñ	
ô 	
ð 	
ð 	
ð 	
r	  c                ó  — ddddœddigi}|                       t          j        ¦  «        5 }t          j        d|¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )	Nro  rŽ   r˜  rÉ  r…   r‰   rŒ   z!12 is less than the minimum of 20)rœ   r   r   r   rž   rz   re  rW  )r0   r   r§  s      r   Útest_it_uses_best_matchz$TestValidate.test_it_uses_best_match¿  sÇ   € àØ!¨bÐ1Ð1Ø˜Ð!ðð
ˆð ×Ò�zÔ9Ñ:Ô:ð 	,¸aÝÔ  FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à�ŠÐ9½3¸q¼{Ñ;KÔ;KÑLÔLÐLÐLÐLs   «AÁAÁAN)rW   r¼   rX   rö  rù  rü  rþ  r   r  r  r  r  r  r   r!   r   rñ  rñ  j  s²   € € € € € ð+ð +ð +ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð
ð 
ð 
ðNð Nð Nð
ð 
ð 
ð
ð 
ð 
ð	Mð 	Mð 	Mð 	Mð 	Mr!   rñ  c                  ó   — e Zd ZdZd„ ZdS )Ú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}  ||¬¦  «        }|                     ¦   «          |                     ¦   «          |                      |                     ¦   «         ‰fdg f¦  «         d S )Nc                 ó’   •— 	 t          j        dd¬¦  «         d S #  ‰                      t          j        ¦   «         ¦  «         Y d S xY w)Nr·   TrÈ   )r   rž   rô  ÚsysÚexc_info)Úfaileds   €r   rž   zFTestThreading.test_validation_across_a_second_thread.<locals>.validateÛ  sN   ø€ ð.ÝÔ#¨R¸Ð=Ñ=Ô=Ð=Ð=Ð=øð.Ø—’�cœl™nœnÑ-Ô-Ð-Ð-Ð-Ð-øøøs	   ƒ ›(Ar   )ÚThread)ÚtargetF)Ú	threadingr  ÚstartÚjoinr)   Úis_alive)r0   rž   r  Úthreadr  s       @r   Ú&test_validation_across_a_second_threadz4TestThreading.test_validation_across_a_second_threadØ  s›   ø€ Øˆð	.ð 	.ð 	.ð 	.ð 	.ð 	ˆ‰
Œ
ˆ
à$Ð$Ð$Ð$Ð$Ð$Ø�˜xÐ(Ñ(Ô(ˆØ�Š‰ŒˆØ�Š‰ŒˆØ×Ò˜&Ÿ/š/Ñ+Ô+¨VÐ4°u¸b°kÑBÔBÐBÐBÐBr!   N)rW   r¼   rX   r‘  r  r   r!   r   r  r  Ë  s2   € € € € € ð
ð 
ðCð Cð Cð Cð Cr!   r  c                  ó   — e Zd Zd„ Zd„ ZdS )ÚTestReferencingc                óæ   — d„ }t          j        |¬¦  «        }ddi}t          j        ||¬¦  «        }|                      |                     d¦  «        |                     d¦  «        fd¦  «         d S )	Nc                ó.   — t          j        ddi¦  «        S )Nr…   r‹   )r   Úcreate_resource)Úuris    r   Úretrievez=TestReferencing.test_registry_with_retrieve.<locals>.retrieveì  s   € ÝÔ.°¸	Ð/BÑCÔCÐCr!   )r#  rµ   úhttps://example.com/©ÚregistryrŒ   r‘   )TF)ÚreferencingÚRegistryr   rš   r)   r¹   )r0   r#  r&  r   r   s        r   Útest_registry_with_retrievez+TestReferencing.test_registry_with_retrieveë  s’   € ð	Dð 	Dð 	Dõ Ô'°Ð:Ñ:Ô:ˆØÐ0Ð1ˆÝÔ3°FÀXÐNÑNÔNˆ	à×ÒØ×Ò Ñ#Ô# Y×%7Ò%7¸Ñ%>Ô%>Ð?Øñ	
ô 	
ð 	
ð 	
ð 	
r!   c                ó®  — t          j        ¦   «         }ddi}t          j        ||¬¦  «        }t	          j        d¬¦  «        5 }t	          j        d¦  «         |                      t           j        j	        ¦  «        5  | 
                    d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         d S )Nrµ   r$  r%  Træ  rè  rŒ   )r'  r(  r   rš   ré  rê  rë  rœ   r   ÚUnresolvablerž   r¥  )r0   r&  r   r   rì  s        r   Ú;test_custom_registries_do_not_autoretrieve_remote_resourceszKTestReferencing.test_custom_registries_do_not_autoretrieve_remote_resourcesø  sF  € ÝÔ'Ñ)Ô)ˆØÐ0Ð1ˆÝÔ3°FÀXÐNÑNÔNˆ	åÔ$¨DÐ1Ñ1Ô1ð 	'°QÝÔ! (Ñ+Ô+Ð+Ø×"Ò"¥;Ô#9Ô#FÑGÔGð 'ð 'Ø×"Ò" 2Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	×Ò˜ÑÔÐÐÐs6   Á9B5Á<BÂB5ÂB"	Â"B5Â%B"	Â&B5Â5B9Â<B9N)rW   r¼   rX   r)  r,  r   r!   r   r  r  ê  s2   € € € € € ð
ð 
ð 
ð	ð 	ð 	ð 	ð 	r!   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dS )ÚTestRefResolverrp   zfoo://storedÚstoredr   c                óŽ   — i | _         | j        | j        i| _        t	          j        | j        | j         | j        ¦  «        | _        d S r3   )ÚreferrerÚ
stored_uriÚstored_schemaré  r   rí  Úbase_urirë  r/   s    r   r1   zTestRefResolver.setUp
	  s?   € ØˆŒØ”o tÔ'9Ð:ˆŒ
Ý"Ô/ØŒM˜4œ=¨$¬*ñ
ô 
ˆŒˆˆr!   c                ó’  — t           j        j        d         }t          j                             | j        d¦  «        5 }| j                             |¦  «        5 }	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |t           j        j        ¦  «         |  	                    |j
        ¦  «         d S )Nri   Úresolve_remote)r   rØ   r5   r   ró  r�   rë  r}  r)   r¥  Úcalled)r0   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°TÔ:ˆÝŒZ×Ò˜tœ}Ð.>Ñ?Ô?ð 	À7Ø”×(Ò(¨Ñ-Ô-ð °Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜¥:Ô#=Ô#IÑJÔJÐJØ×Ò˜œÑ(Ô(Ð(Ð(Ð(s5   ½A=ÁA&ÁA=Á&A*	Á*A=Á-A*	Á.A=Á=BÂBc                óî   — d}dt          ¦   «         i| j        d<   | j                             |¦  «        5 }|                      || j        d         d         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz#/properties/foor‘   r{  )r�   r1  rë  r}  r)   )r0   rî  r9  s      r   Útest_it_resolves_local_refsz+TestRefResolver.test_it_resolves_local_refs	  sÈ   € Ø ˆØ',­f©h¬hÐ&7ˆŒ�lÑ#ØŒ]×$Ò$ SÑ)Ô)ð 	K¨XØ×Ò˜X t¤}°\Ô'BÀ5Ô'IÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Kð 	Ks   µ(A*Á*A.Á1A.c                ó~  — dddidœ}t           j                             |d„ ¬¦  «        }|                     d¦  «        5 }|                      ||d         ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d	¦  «        5 }|                      ||d         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nzhttp://bar/schema#r‘   r™   )ri   r_   c                ó.   — |                       dd¦  «        S ro   rq   r2  s    r   ru   zETestRefResolver.test_it_resolves_local_refs_with_id.<locals>.<lambda>#	  ó   €  §¢¨D°"Ñ!5Ô!5€ r!   ©rx   z#/ar_   zhttp://bar/schema#/a)r   rí  Úfrom_schemar}  r)   ©r0   r   rë  r9  s       r   Ú#test_it_resolves_local_refs_with_idz3TestRefResolver.test_it_resolves_local_refs_with_id	  sK  € Ø,°E¸5°>ÐBÐBˆÝÔ*×6Ò6ØØ5Ð5ð 7ñ 
ô 
ˆð ×Ò Ñ&Ô&ð 	4¨(Ø×Ò˜X v¨c¤{Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à×ÒÐ 6Ñ7Ô7ð 	4¸8Ø×Ò˜X v¨c¤{Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s#   ¿A(Á(A,Á/A,ÂB2Â2B6Â9B6c                ó^  — | j                              | j        ¦  «        5 }|                      || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   ddi| j         j        d<   | j                              d¦  «        5 }|                      |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr‘   rŒ   Ú
cached_refzcached_ref#/foo)rë  r}  r2  r¤  r3  ré  r)   )r0   r9  s     r   Útest_it_retrieves_stored_refsz-TestRefResolver.test_it_retrieves_stored_refs*	  s&  € ØŒ]×$Ò$ T¤_Ñ5Ô5ð 	8¸Ø�MŠM˜( DÔ$6Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð .3°B¨KˆŒÔ˜LÑ)ØŒ]×$Ò$Ð%6Ñ7Ô7ð 	+¸8Ø×Ò˜X rÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s#    AÁAÁAÁ>B"Â"B&Â)B&c                óh  — d}ddi}dt           j        v r6|                      t           j        j        dt           j        d         ¦  «         t	          d|i¦  «        t           j        d<   | j                             |¦  «        5 }|                      |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Núhttp://bar#bazr\  rŒ   Úrequestsú
http://bar)r  Úmodulesr(   Ú__setitem__ÚReallyFakeRequestsrë  r}  r)   )r0   rî  r   r9  s       r   Ú,test_it_retrieves_unstored_refs_via_requestsz<TestRefResolver.test_it_retrieves_unstored_refs_via_requests2	  sî   € ØˆØ˜�ˆà�œÐ$Ð$Ø�OŠOÝ”Ô'¨µS´[ÀÔ5Lñô ð õ #5°lÀFÐ5KÑ"LÔ"L�Œ�JÑàŒ]×$Ò$ SÑ)Ô)ð 	+¨XØ×Ò˜X rÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ÂB'Â'B+Â.B+c                óÐ  ‡ ‡— d}ddiŠdt           j        v r6‰                      t           j        j        dt           j        d         ¦  «         d t           j        d<   t          ˆˆ fd„¦   «         }t          j        d|¬¦  «        5  ‰ j                             |¦  «        5 }	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰  	                    |d¦  «         d S )NrH  r\  rŒ   rI  c              3  ó¤   •K  — ‰                      | d¦  «         t          t          j        ‰¦  «                             d¦  «        ¦  «        V — d S )NrJ  Úutf8)r)   r   ÚjsonÚdumpsÚencode)Úurlr   r0   s    €€r   Úfake_urlopenzQTestRefResolver.test_it_retrieves_unstored_refs_via_urlopen.<locals>.fake_urlopenI	  sO   øè è € à×Ò˜S ,Ñ/Ô/Ð/Ý�$œ* VÑ,Ô,×3Ò3°FÑ;Ô;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r!   zurllib.request.urlopenr¦   )
r  rK  r(   rL  r   r   ró  rë  r}  r)   )r0   rî  rV  r9  r   s   `   @r   Ú+test_it_retrieves_unstored_refs_via_urlopenz;TestRefResolver.test_it_retrieves_unstored_refs_via_urlopen?	  st  øø€ ØˆØ˜�ˆà�œÐ$Ð$Ø�OŠOÝ”Ô'¨µS´[ÀÔ5Lñô ð ð #'�Œ�JÑå	ð	=ð 	=ð 	=ð 	=ð 	=ñ 
Œð	=õ ŒZÐ0°lÐCÑCÔCð 	ð 	Ø”×(Ò(¨Ñ-Ô-ð °Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜ 2Ñ&Ô&Ð&Ð&Ð&s6   ÂCÂ B.Â"CÂ.B2	Â2CÂ5B2	Â6CÃC	ÃC	c                óœ  — t          j        dd¬¦  «        5 }|                      t          j        |j        ¦  «         t          j        ddi|¦  «         d d d ¦  «         n# 1 swxY w Y   dt          |j        ¦  «        › d�}| j	         
                    |¦  «        5 }|                      |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFÚwt)ÚdeleteÚmoder‘   r™   zfile://z#foo)ÚtempfileÚNamedTemporaryFiler(   ÚosÚremoverÔ   rR  Údumpr   rë  r}  r)   )r0   Útempfrî  r9  s       r   Ú(test_it_retrieves_local_refs_via_urlopenz8TestRefResolver.test_it_retrieves_local_refs_via_urlopenS	  sA  € ÝÔ(°¸DÐAÑAÔAð 	-ÀUØ�OŠO�BœI u¤zÑ2Ô2Ð2ÝŒI�u˜e�n eÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 7� U¤ZÑ0Ô0Ð6Ð6Ð6ˆØŒ]×$Ò$ SÑ)Ô)ð 	.¨XØ×Ò˜X uÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s#   —=A Á A$Á'A$ÂCÃCÃCc                óØ  — ddi}t           j                             |d„ ¬¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nri   r‘   c                ó.   — |                       dd¦  «        S ro   rq   r2  s    r   ru   zPTestRefResolver.test_it_can_construct_a_base_uri_from_a_schema.<locals>.<lambda>`	  r?  r!   r@  rp   ú#zfoo#©r   rí  rA  r)   r4  Úresolution_scoper}  rB  s       r   Ú.test_it_can_construct_a_base_uri_from_a_schemaz>TestRefResolver.test_it_can_construct_a_base_uri_from_a_schema\	  sd  € Ø˜�ˆÝÔ*×6Ò6ØØ5Ð5ð 7ñ 
ô 
ˆð 	×Ò˜Ô*¨EÑ2Ô2Ð2Ø×Ò˜Ô2°EÑ:Ô:Ð:Ø×Ò Ñ#Ô#ð 	/ xØ×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à×Ò Ñ$Ô$ð 	/¨Ø×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à×Ò Ñ&Ô&ð 	/¨(Ø×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à×Ò Ñ'Ô'ð 	/¨8Ø×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/sH   Á2BÂBÂBÂ5CÃCÃCÃ8DÄDÄ"DÄ;EÅE#Å&E#c                óÂ  — i }t           j                             |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        5 }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrp   re  rf  rB  s       r   Ú9test_it_can_construct_a_base_uri_from_a_schema_without_idzITestRefResolver.test_it_can_construct_a_base_uri_from_a_schema_without_idm	  sV  € ØˆÝÔ*×6Ò6°vÑ>Ô>ˆØ×Ò˜Ô*¨BÑ/Ô/Ð/Ø×Ò˜Ô2°BÑ7Ô7Ð7Ø×Ò Ñ#Ô#ð 	/ xØ×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à×Ò Ñ$Ô$ð 	/¨Ø×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s$   Á-BÂBÂBÂ0CÃCÃCc                óà   ‡ ‡‡— ˆˆˆ fd„}ddiŠdŠt          j        di d|i¬¦  «        }|                     ‰¦  «        5 }‰                      |‰¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                ó4   •— ‰                      | ‰¦  «         ‰S r3   r{  )rU  rî  r   r0   s    €€€r   Úhandlerz@TestRefResolver.test_custom_uri_scheme_handlers.<locals>.handlerx	  s   ø€ Ø×Ò˜S #Ñ&Ô&Ð&ØˆMr!   r‘   r™   ú	foo://barrp   ©Úhandlers)r   rí  r}  r)   )r0   rm  rë  r9  rî  r   s   `   @@r   Útest_custom_uri_scheme_handlersz/TestRefResolver.test_custom_uri_scheme_handlersw	  sß   øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð ˜�ˆØˆÝÔ*¨2¨r¸UÀGÐ<LÐMÑMÔMˆØ×Ò Ñ$Ô$ð 	/¨Ø×Ò˜X vÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   ¿A#Á#A'Á*A'c                ó&  ‡ ‡— t          ¦   «         gŠˆˆ fd„}d}t          j        di dd|i¬¦  «        }|                     |¦  «        5  	 d d d ¦  «         n# 1 swxY w Y   |                     |¦  «        5  	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                óz   •— 	 ‰                      ¦   «         S # t          $ r ‰                     d¦  «         Y d S w xY w)Nz#Response must not have been cached!©rV   Ú
IndexErrorr    ©rU  Úresponser0   s    €€r   rm  z5TestRefResolver.test_cache_remote_on.<locals>.handler…	  sR   ø€ ðAØ—|’|‘~”~Ð%øÝð Að Að AØ—	’	Ð?Ñ@Ô@Ð@Ð@Ð@Ð@ðAøøøó   ƒ —:¹:rn  rp   Tr‘   ©Úcache_remoterp  ©r�   r   rí  r}  ©r0   rm  rî  rë  rw  s   `   @r   Útest_cache_remote_onz$TestRefResolver.test_cache_remote_on‚	  sH  øø€ Ý‘H”H�:ˆð	Að 	Að 	Að 	Að 	Að 	Að ˆÝÔ*Ø� °¸Ð0@ð
ñ 
ô 
ˆð ×Ò Ñ$Ô$ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò Ñ$Ô$ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Á	AÁAÁAÁ7BÂB
ÂB
c                óÊ   ‡ ‡— t          ¦   «         gŠˆˆ fd„}d}t          j        di dd|i¬¦  «        }|                     |¦  «        5  	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                óz   •— 	 ‰                      ¦   «         S # t          $ r ‰                     d¦  «         Y d S w xY w)NzHandler called twice!rt  rv  s    €€r   rm  z6TestRefResolver.test_cache_remote_off.<locals>.handler—	  sM   ø€ ð3Ø—|’|‘~”~Ð%øÝð 3ð 3ð 3Ø—	’	Ð1Ñ2Ô2Ð2Ð2Ð2Ð2ð3øøørx  rn  rp   Fr‘   ry  r{  r|  s   `   @r   Útest_cache_remote_offz%TestRefResolver.test_cache_remote_off”	  sÖ   øø€ Ý‘H”H�:ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð ˆÝÔ*Ø� °%¸Ð1Að
ñ 
ô 
ˆð ×Ò Ñ$Ô$ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á	AÁAÁAc                ó²  ‡— t          d¦  «        Šˆfd„}d}t          j        di d|i¬¦  «        }|                      t          j        ¦  «        5 }|                     |¦  «        5  |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |j	        t	          j        ‰¦  «        ¦  «         d S )NzOh no! What's this?c                ó   •— ‰‚r3   r   )rU  r×  s    €r   rm  zTTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error.<locals>.handler§	  s   ø€ ØˆKr!   rn  rp   r‘   ro  zShouldn't get this far!)
rV  r   rí  rœ   r   Ú_RefResolutionErrorr}  r    r)   rW  )r0   rm  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Ô1ˆð	ð 	ð 	ð 	ð 	ð ˆÝÔ*¨2¨r¸UÀGÐ<LÐMÑMÔMˆØ×Ò�zÔ=Ñ>Ô>ð 	5À#Ø×#Ò# CÑ(Ô(ð 5ð 5Ø—	’	Ð3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	×Ò˜œ­
Ô(FÀuÑ(MÔ(MÑNÔNÐNÐNÐNs6   ÁBÁ&BÁ<BÂB	ÂBÂB	ÂBÂB#Â&B#c                ó>  — t          j        di ¦  «        }|                     ¦   «          |                      t          j        ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nrp   zFailed to pop the scope)	r   rí  Ú	pop_scoperœ   r   rƒ  rz   re  rW  )r0   rë  Úexcs      r   Ú.test_helpful_error_message_on_failed_pop_scopez>TestRefResolver.test_helpful_error_message_on_failed_pop_scope±	  sÆ   € ÝÔ*¨2¨rÑ2Ô2ˆØ×ÒÑÔÐØ×Ò�zÔ=Ñ>Ô>ð 	!À#Ø×ÒÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à�ŠÐ/µ°S´]Ñ1CÔ1CÑDÔDÐDÐDÐDs   Á	A*Á*A.Á1A.c                ó´  — t           j        j        }t          j        d|¦  «        }t          j        ||¬¦  «        }|                      |                     ddi¦  «        ¦  «         ddt           j        j        d         igi}t          j        d|¦  «        }t          j        ||¬¦  «        }|                      |                     ddi¦  «        ¦  «         dS )	z
        See #1085.
        rp   rê  r0  r‘   ÚallOfrµ   r%   N)r   rï   r5   rí  r¥  r¹   )r0   r   Úoner   ÚanotherÚtwos         r   Ú,test_pointer_within_schema_with_different_idz<TestRefResolver.test_pointer_within_schema_with_different_id¸	  sÔ   € õ Ô+Ô7ˆÝÔ% b¨&Ñ1Ô1ˆÝÔ.¨vÀÐDÑDÔDˆ	Ø×Ò˜×+Ò+¨[¸%Ð,@ÑAÔAÑBÔBÐBð �v�zÔ9ÔEÀeÔLÐMÐNð
ˆõ Ô% b¨'Ñ2Ô2ˆÝÔ.¨wÀÐEÑEÔEˆ	Ø×Ò˜×+Ò+¨[¸%Ð,@ÑAÔAÑBÔBÐBÐBÐBr!   c                ó.  ‡ — ˆ fd„}t          j        di d|i¬¦  «        }t          j        i t           j        j        ¬¦  «        }dddœ} |||¬	¦  «        }‰                      |                     i ¦  «        |                     d
¦  «        fd¦  «         dS )zj
        See https://github.com/python-jsonschema/jsonschema/issues/1061#issuecomment-1624266555.
        c                ó8   •— ‰                      | d¦  «         ddiS )Nzhttp://example.com/foor…   r‹   r{  )r"  r0   s    €r   ÚhandlezNTestRefResolver.test_newly_created_validator_with_ref_resolver.<locals>.handleÍ	  s%   ø€ Ø×Ò˜SÐ":Ñ;Ô;Ð;Ø˜IÐ&Ð&r!   rp   Úhttpro  rƒ   zhttp://example.com/barr‘   )r%   rµ   rê  r·   ©FTN)r   rí  r-   r¸   r4   r)   r¹   )r0   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ÑMÔMˆÝÔ%ØÝ!Ô1Ô<ð
ñ 
ô 
ˆ	ð 2¸5ÐAÐAˆØ�I˜f¨xÐ8Ñ8Ô8ˆ	Ø×ÒØ×Ò Ñ#Ô# Y×%7Ò%7¸Ñ%;Ô%;Ð<Øñ	
ô 	
ð 	
ð 	
ð 	
r!   c                óö   — dddiidddiidœ}t          j        |t          j        d|¦  «        ¬¦  «        }|                      |                     dd	i¦  «        |                     dd
i¦  «        fd¦  «         dS )zj
        See https://github.com/python-jsonschema/jsonschema/issues/1124#issuecomment-1632574249.
        Úxrµ   z#/definitions/xr…   r‹   )r{  rÅ  rp   rê  Úyr·   r”  N)r   rš   rí  r)   r¹   )r0   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ØÝÔ,¨R°Ñ8Ô8ð
ñ 
ô 
ˆ	ð 	×ÒØ×Ò  c 
Ñ+Ô+¨Y×-?Ò-?ÀÀbÀ	Ñ-JÔ-JÐKØñ	
ô 	
ð 	
ð 	
ð 	
r!   N)rW   r¼   rX   r4  r2  r3  r1   r:  r<  rC  rF  rN  rW  rb  rh  rj  rq  r}  r€  r…  r‰  r�  r•  r™  r   r!   r   r.  r.  	  sB  € € € € € à€HØ€JØ˜xÐ(€Mð
ð 
ð 
ð)ð )ð )ðKð Kð Kð	4ð 	4ð 	4ð+ð +ð +ð+ð +ð +ð'ð 'ð 'ð(.ð .ð .ð/ð /ð /ð"/ð /ð /ð	/ð 	/ð 	/ðð ð ð$ð ð ð Oð Oð OðEð Eð EðCð Cð Cð 
ð 
ð 
ð*
ð 
ð 
ð 
ð 
r!   r.  c                ó*   — d„ }t          | |¬¦  «        S )Nc                óF   — d„ | j         D ¦   «         d„ | j        D ¦   «         fS )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r   ©re  ©r‡   r§  s     r   rF  z.sorted_errors.<locals>.key.<locals>.<listcomp>õ	  s   € Ð(Ð(Ð(˜�S�‰VŒVÐ(Ð(Ð(r!   c                ó,   — g | ]}t          |¦  «        ‘ŒS r   r�  rž  s     r   rF  z.sorted_errors.<locals>.key.<locals>.<listcomp>ö	  s   € Ð/Ð/Ð/˜�S�‰VŒVÐ/Ð/Ð/r!   )rœ  rD   )r×  s    r   Úkeyzsorted_errors.<locals>.keyó	  s3   € à(Ð(˜UœZÐ(Ñ(Ô(Ø/Ð/˜UÔ.Ð/Ñ/Ô/ð
ð 	
r!   )r   )Úsorted)r   r   s     r   r£  r£  ò	  s&   € ð
ð 
ð 
õ
 �&˜cÐ"Ñ"Ô"Ð"r!   c                  ó    — e Zd ZU ded<   d„ ZdS )rM  zdict[str, Any]Ú
_responsesc                óº   — | j                              |¦  «        }|€t          dt          |¦  «        z   ¦  «        ‚t	          t          j        |¦  «        ¦  «        S )NzUnknown URL: )r£  rr   rV  r\   Ú_ReallyFakeJSONResponserR  rS  )r0   rU  rw  s      r   rr   zReallyFakeRequests.get 
  sM   € Ø”?×&Ò& sÑ+Ô+ˆØˆ;Ý˜_­t°C©y¬yÑ8Ñ9Ô9Ð9Ý&¥t¤z°(Ñ';Ô';Ñ<Ô<Ð<r!   N)rW   r¼   rX   r   rr   r   r!   r   rM  rM  û	  s3   € € € € € € ð ÐÐÑð=ð =ð =ð =ð =r!   rM  c                  ó    — e Zd ZU ded<   d„ ZdS )r¥  re  Ú	_responsec                ó4   — t          j        | j        ¦  «        S r3   )rR  Úloadsr§  r/   s    r   rR  z_ReallyFakeJSONResponse.json
  s   € ÝŒz˜$œ.Ñ)Ô)Ð)r!   N)rW   r¼   rX   r   rR  r   r!   r   r¥  r¥  
  s0   € € € € € € ð €N€N�Nð*ð *ð *ð *ð *r!   r¥  ):Ú
__future__r   Úcollectionsr   r   Ú
contextlibr   Údecimalr   Úior   Útypingr	   Úunittestr
   r   Úurllib.requestr   rR  r^  r  r\  ré  Úattrsr   r   Úreferencing.jsonschemar   Úreferencing.exceptionsr'  Ú
jsonschemar   r   r   r   r   r    r#   r¾   r•  r   r  r�  r“  r¢  r¥  r§  r©  r­  r¯  r³  rñ  r  r  r.  r£  rM  r¥  r   r!   r   ú<module>r¶     sT  ðØ "Ð "Ð "Ð "Ð "Ð "à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð1ð 1ð 1ðL6ð L6ð L6ð L6ð L6˜(ñ L6ô L6ð L6ð^~
ð ~
ð ~
ð ~
ð ~
 (ñ ~
ô ~
ð ~
ðBL
ð L
ð L
ð L
ð L
 ñ L
ô L
ð L
ð^5
ð 5
ð 5
ð 5
ð 5
ñ 5
ô 5
ð 5
ðpwEð wEð wEð wEð wEÐ-ñ wEô wEð wEðtJð Jð Jð Jð Jñ Jô Jð Jð4Hð Hð Hð Hð HÐ-Ð/AÀ8ñ Hô Hð Hð@)ð )ð )ð )ð )Ð-Ð/AÀ8ñ )ô )ð )ð)ð )ð )ð )ð )Ð,¨hñ )ô )ð )ð)ð )ð )ð )ð )Ð,¨hñ )ô )ð )ð)ð )ð )ð )ð )Ð1°8ñ )ô )ð )ð)ð )ð )ð )ð )Ð1°8ñ )ô )ð )ð%ð %ð %ð %ð %˜(ñ %ô %ð %ðLJð LJð LJð LJð LJ�xñ LJô LJð LJð^^Mð ^Mð ^Mð ^Mð ^M�8ñ ^Mô ^Mð ^MðBCð Cð Cð Cð C�Hñ Cô Cð Cð>ð ð ð ð �hñ ô ð ð4j
ð j
ð j
ð j
ð j
�hñ j
ô j
ð j
ð\#ð #ð #ð ð=ð =ð =ð =ð =ñ =ô =ñ „ð=ð ð*ð *ð *ð *ð *ñ *ô *ñ „ð*ð *ð *r!   