
    Mh!                        d Z ddlmZ ddlZ e            Ze                    d          Ze                    d          Ze                    d          Ze                    d          Z	e                    d	          Z
e                    d
          Zd Zd Zd Zd Zd Ze                    e                                e                                e                    d          e                    d          e                    d          ej        ej        j        d           Ze                    e                                e                                e                    d          e                    d          e                    d          e                    d          e                    d          ej        ej        j        d 
  
        Ze                    e                                e                                e                    d          e                    d          e                    d          e                    d          ej        ej        j        d 	  	        Ze	                    e	                                e	                                e	                    d          e	                    d          e	                    d          e                    d          e	                    d          e	                    d          ej        ej        j        d           Ze
                    e
                                e
                    d          e
                    d          e
                    d          e
                    d          e
                    d          e
                    d          e
                    d          e
                    d          e
                    d          ej         edd d!"          #          Ze
                    e
                                d$ej        ej        j        d% &          Z e                    e                                e
                    d          e                    d          e                    d          e                    d          e                    d          e                    d          e                    d          e                    d          e                    d          ej!         edd d!"          #          Z"e                    e                                d'ej!        ej!        j        d( &          Z#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.
    )SuiteNdraft3)namedraft4draft6draft7zdraft2019-09zdraft2020-12c                       fd}|S )Nc                 h     t           fd                                D                       rS d S )Nc              3   F   K   | ]\  }}|t          |          k    V  d S N)getattr).0attrvaluetests      k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jsonschema/tests/test_jsonschema_test_suite.py	<genexpr>z(skip.<locals>.skipper.<locals>.<genexpr>   s6      NNeud+++NNNNNN    )allitems)r   kwargsmessages   `r   skipperzskip.<locals>.skipper   s@    NNNNv||~~NNNNN 	N	 	r    )r   r   r   s   `` r   skipr      s)          Nr   c                      | j         dk    rdS d S )Nzecmascript-regexz*ECMA regex support will be added in #1142.)subjectr   s    r   ecmascript_regexr      s    |)));; *)r   c                       fd}|S )Nc                 |    | j         }|du s#|du sd|vs|d         j        j        v s| j        rd S d|d         dS )NTFformatzFormat checker z not found.)schemaFORMAT_CHECKERcheckersvalid)r   r#   	Validators     r   missing_formatz&missing_format.<locals>.missing_format#   se    dNNv%%h9#;#DDDz E F@!1@@@@r   r   )r'   r(   s   ` r   r(   r(   "   s)    A A A A A r   c                 $   | j         dk    rd S d} t          |d          |           pg t          |d          |           pM t          |d          |           p3 t          |d          |           p t          |d          |           S )	Nemailz8Complex email validation is (intentionally) unsupported.zan invalid domain)r   descriptionzan invalid IPv4-address-literalz!dot after local part is not validz"dot before local part is not validz3two subsequent dots inside local part are not valid)r   r   r   r   s     r   complex_email_validationr-   2   s	   |wHG4'     t5    t7    t8    tI    r   c                 "   d} t          |dd          |           p t          |dd          |           p t          |dd          |           p t          |dd          |           p t          |dd          |           p t          |dd	          |           pk t          |dd
          |           pP t          |dd          |           p5 t          |dd          |           p t          |dd          |           S )NzLeap seconds are unsupported.timez$a valid time string with leap secondr   r   r+   z*a valid time string with leap second, Zuluz0a valid time string with leap second with offsetz'valid leap second, positive time-offsetz'valid leap second, negative time-offsetz-valid leap second, large positive time-offsetz-valid leap second, large negative time-offsetz#valid leap second, zero time-offsetz	date-timez)a valid date-time with a leap second, UTCz7a valid date-time with a leap second, with minus offset)r   r,   s     r   leap_secondr1   I   s	   -G4:   	  (t@   	 	(tF   	 (t=   	 ( t=   	 !((tC   	 )(0tC   	 1(8t9   	 9(@t?   	 A(HtM   	 I(r   bignumznon-bmp-regexzeroTerminatedFloatsc                     t          |           p0 t          t          j                  |           pt	          |           S r   )r   r(   
jsonschemaDraft3Validatorr-   r   s    r   <lambda>r7   ~   s?     	*5>*455d;;	*#D)) r   )r'   format_checkerr   zfloat-overflowidc                     t          |           p?t          |           p0 t          t          j                  |           pt          |           S r   )r   r1   r(   r5   Draft4Validatorr-   r   s    r   r7   r7      Q     	*t	*5>*455d;;	* $D))	 r   c                     t          |           p?t          |           p0 t          t          j                  |           pt          |           S r   )r   r1   r(   r5   Draft6Validatorr-   r   s    r   r7   r7      r<   r   zcross-draftunknownKeywordc                     t          |           p?t          |           p0 t          t          j                  |           pt          |           S r   )r   r1   r(   r5   Draft7Validatorr-   r   s    r   r7   r7      r<   r   anchorz	no-schemarefOfUnknownKeywordz(Vocabulary support is still in-progress.
vocabularyz5no validation: invalid number, but it still validatesr0   )r'   r   TestDraft201909Formatc                     t          |           pNt          |           p?t          |           p0 t          t          j                  |           pt          |           S r   )r-   r   r1   r(   r5   Draft201909Validatorr   s    r   r7   r7      c     && 	*D!!	*t	* ;>*9::4@@	* $D)) r   )r   r'   r8   r   TestDraft202012Formatc                     t          |           pNt          |           p?t          |           p0 t          t          j                  |           pt          |           S r   )r-   r   r1   r(   r5   Draft202012Validatorr   s    r   r7   r7      rH   r   )$__doc__jsonschema.tests._suiter   r5   SUITEversionDRAFT3DRAFT4DRAFT6DRAFT7DRAFT201909DRAFT202012r   r   r(   r-   r1   to_unittest_testcasecasesformat_casesoptional_cases_ofr6   r$   
TestDraft3r;   
TestDraft4r>   
TestDraft6rA   
TestDraft7rG   TestDraft201909rE   rK   TestDraft202012rI   r   r   r   <module>r`      sB    * ) ) ) ) )    	H	%	%	H	%	%	H	%	%	H	%	%mmm00mmm00  < < <
     .* * *Z ((
LLNN

(++
/22
"899(-<
 
 )  
  ((
LLNN

(++
"233
$''
/22
"899(-<
 
 )  
& ((
LLNN

(++
"233
$''
/22(-<
 
 )  
$ ((
LLNN

(++
-00
"233
$''
/22
"233(-<
 
 )  
( 22!!x!00!!x!00!!}!55!!'7!88!!t!,,!!{!33!!!77!!'<!==!!'7!88-	:C	
 
 
 3  , $88	 -2A
 
 9    22!!x!00!!x!00!!}!55!!'7!88!!t!,,!!{!33!!!77!!'<!==!!'7!88-	:C	
 
 
 3  , $88	 -2A
 
 9     r   