o
    >�Ò]!  ã                
   @   sF  d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZmZ eƒ Zejdd�Zejd	d�Zejd
d�Zejdd�Zdd„ Zdd„ ZejdkZercdZdd„ Zndd„ Zeje  ¡ ej!dd�ej!dd�ej!dd�eedd„ d�Z"eje  ¡ ej!dd�ej!dd�ej!dd�ee	dd„ d�Z#eje  ¡ ej!dd�ej!dd�ej!dd�ee
dd„ d�Z$eje  ¡ e %¡ ej!dd�ej!dd�ej!dd�eedd„ d�Z&e '¡ �: e (de)¡ ejd d!„ ej*d"d�D ƒd#eej+ej,ed$�d%�Z-ejej*d"d�d&eej+ej,ed$�d%�Z.W d  ƒ dS 1 �sw   Y  dS )'z½
Test runner for the JSON Schema official test suite

Tests comprehensive correctness of each draft's validator.

See https://github.com/json-schema-org/JSON-Schema-Test-Suite for details.
é    N)ÚDraft3ValidatorÚDraft4ValidatorÚDraft6ValidatorÚDraft7ValidatorÚdraft3_format_checkerÚdraft4_format_checkerÚdraft6_format_checkerÚdraft7_format_checker)Úbug)ÚSuite)Ú_DEPRECATED_DEFAULT_TYPESÚcreateÚdraft3)ÚnameÚdraft4Údraft6Údraft7c                    s   ‡ ‡fdd„}|S )Nc                    s"   t ‡ fdd„ˆ ¡ D ƒƒrˆS d S )Nc                 3   s"   � | ]\}}|t ˆ |ƒkV  qd S ©N)Úgetattr)Ú.0ÚattrÚvalue©Útest© úM/usr/lib/python3/dist-packages/jsonschema/tests/test_jsonschema_test_suite.pyÚ	<genexpr>$   ó   €  z(skip.<locals>.skipper.<locals>.<genexpr>)ÚallÚitemsr   ©ÚkwargsÚmessager   r   Úskipper#   s   ÿzskip.<locals>.skipperr   )r"   r!   r#   r   r    r   Úskip"   s   r$   c                    s   ‡ fdd„}|S )Nc                    sB   | j }|du s|du sd|vrd S |d ˆ jvrd |d ¡S d S )NTFÚformatzFormat checker {0!r} not found.)ÚschemaÚcheckersr%   )r   r&   ©Úcheckerr   r   Úmissing_format*   s   ÿz&missing_format.<locals>.missing_formatr   )r)   r*   r   r(   r   r*   )   s   r*   iÿÿ  z:Not running surrogate Unicode case, this Python is narrow.c                 C   s    t tdd�| ƒpt tdd�| ƒS )Nz7one supplementary Unicode code point is not long enough)r"   Údescriptionz4two supplementary Unicode code points is long enough)r$   r"   r   r   r   r   Únarrow_unicode_build8   s   þýþýýr,   c                 C   s   d S r   r   r   r   r   r   r,   A   s   Úbignumr%   ÚzeroTerminatedFloatsc                 C   s&   t | ƒpttƒ| ƒptdddd�| ƒS )NúUpstream bug in strict_rfc3339r%   úcase-insensitive T and Z©r"   Úsubjectr+   )r,   r*   r   r$   r   r   r   r   Ú<lambda>L   s   
ÿýür3   )Ú	ValidatorÚformat_checkerr$   c                 C   ó�   t | ƒpGttƒ| ƒpGttƒ ddd�| ƒpGttdƒddd�| ƒpGttdƒddd�| ƒpGttdƒddd�| ƒpGttƒ dd	d�| ƒpGtd
ddd�| ƒS ©NÚrefú$Recursive references between schemas©r"   r2   Úcase_descriptionés  úLocation-independent identifierú1Location-independent identifier with absolute URIúALocation-independent identifier with base URI change in subschemaÚ	refRemoteú,base URI change - change folder in subschemar/   r%   r0   r1   )r,   r*   r   r$   r
   r   r   r   r   r3   _   ód   
ÿýüþýüùüúôüúíýüæýüc                 C   r6   r7   )r,   r*   r   r$   r
   r   r   r   r   r3   �   rB   Úcontentc                 C   sÒ   t | ƒphttƒ| ƒphttƒ ddd�| ƒphttdƒddd�| ƒphttdƒddd�| ƒphttdƒddd�| ƒphttƒ dd	d�| ƒphtd
ddd�| ƒphttdƒddd�| ƒphttdƒddd�| ƒphttdƒddd�| ƒS )Nr8   r9   r:   r<   r=   r>   r?   r@   rA   r/   z	date-timer0   r1   iQ  rC   z8validation of string-encoded content based on media typez$validation of binary string-encodingz1validation of binary-encoded media type documents)r,   r*   r	   r$   r
   r   r   r   r   r3   À   s”   
ÿýüþýüùüúôüúíýüæýüá$üúÜ+ýüÕ0üúÚignorec                 c   s   � | ]
}d d„ |D ƒV  qdS )c                 s   s"   � | ]}|j d dikr|V  qdS )ÚtypeÚanyN)r&   )r   r   r   r   r   r     r   z<genexpr>.<genexpr>Nr   )r   Úeachr   r   r   r     s
   € ÿ
ÿr   rE   ÚTestDraft3LegacyTypeCheck)Úmeta_schemaÚ
validatorsÚdefault_types)r   r4   ÚTestDraft4LegacyTypeCheck)/Ú__doc__ÚsysÚwarningsÚ
jsonschemar   r   r   r   r   r   r   r	   Újsonschema.tests._helpersr
   Újsonschema.tests._suiter   Újsonschema.validatorsr   r   ÚSUITEÚversionÚDRAFT3ÚDRAFT4ÚDRAFT6ÚDRAFT7r$   r*   Ú
maxunicodeÚis_narrow_buildr"   r,   Úto_unittest_testcaseÚtestsÚoptional_tests_ofÚ
TestDraft3Ú
TestDraft4Ú
TestDraft6Úformat_testsÚ
TestDraft7Úcatch_warningsÚsimplefilterÚDeprecationWarningÚtests_ofÚMETA_SCHEMAÚ
VALIDATORSrH   rL   r   r   r   r   Ú<module>   sž    (


	


ù


ù0


ù0


ø
D
þýù
ýý$ï