U
    [e!                  
   @   s.  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rd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' h 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 5 Q R X 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createZdraft3)nameZdraft4Zdraft6Z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/var/www/html/services/stratfitenv/lib/python3.8/site-packages/jsonschema/tests/test_jsonschema_test_suite.py	<genexpr>$   s     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ks|dksd|kr"d S |d  jkr>d|d S d S )NTFformatzFormat checker {0!r} not found.)schemaZ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    Zbignumr    Z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    
r+   )	ValidatorZformat_checkerr   c                 C   s   t | ptt| ptt ddd| pttdddd| pttdddd| pttdddd| ptt dd	d| ptd
ddd| S Nref$Recursive references between schemasr   r*   Z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    r(   r)   )r&   r$   r   r   r
   r   r   r   r   r+   _   sd    
c                 C   s   t | ptt| ptt ddd| pttdddd| pttdddd| pttdddd| ptt dd	d| ptd
ddd| S r-   )r&   r$   r   r   r
   r   r   r   r   r+      sd    
contentc                 C   s   t | ptt| ptt ddd| pttdddd| pttdddd| pttdddd| ptt dd	d| ptd
ddd| pttdddd| pttdddd| pttdddd| S )Nr.   r/   r0   r1   r2   r3   r4   r5   r6   r'   z	date-timer(   r)   iQ  r7   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   r+      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     s      z<genexpr>.<genexpr>Nr   )r   Zeachr   r   r   r     s   r   r9   TestDraft3LegacyTypeCheck)Zmeta_schemaZ
validatorsZdefault_types)r   r,   TestDraft4LegacyTypeCheck)/__doc__syswarningsZ
jsonschemar   r   r   r   r   r   r   r	   Zjsonschema.tests._helpersr
   Zjsonschema.tests._suiter   Zjsonschema.validatorsr   r   ZSUITEversionZDRAFT3ZDRAFT4ZDRAFT6ZDRAFT7r   r$   
maxunicodeZis_narrow_buildr   r&   Zto_unittest_testcasetestsZoptional_tests_ofZ
TestDraft3Z
TestDraft4Z
TestDraft6Zformat_testsZ
TestDraft7catch_warningssimplefilterDeprecationWarningZtests_ofZMETA_SCHEMAZ
VALIDATORSr;   r<   r   r   r   r   <module>   s   (


	





0


0


D


