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_descriptions  Location-independent identifier1Location-independent identifier with absolute URIALocation-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

$