o
    i!                     @   s  d Z ddlmZ ddlZe ZejddZejdd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dd Zdd Zdd Zeje e ejddejddejddejejjdd dZeje e ejddejddejddejddejddejejjdd d
Zeje e ejddejddejddejddejejjdd d	Ze	je	 e	 e	jdde	jdde	jddejdde	jdde	jd dejejjd!d dZe
je
 e
jd"de
jdde
jdde
jdde
jdde
jd#de
jdde
jd$de
jd dejed%d&d'd(d)Ze
je
 d*ejejjd+d d,Z eje e
jd"dejddejddejddejddejd#dejddejd$dejd dej!ed%d&d'd(d)Z"eje d-ej!ej!jd.d 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                    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 q/var/www/html/karishye-ai-python/venv/lib/python3.10/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                 C   s   | j dkrdS d S )Nzecmascript-regexz*ECMA regex support will be added in #1142.)subjectr   r   r   r   ecmascript_regex   s   
r   c                    s    fdd}|S )Nc                    sH   | 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   	Validatorr   r   missing_format#   s   z&missing_format.<locals>.missing_formatr   )r!   r"   r   r    r   r"   "   s   r"   c                 C   sb   | j dkrd S d}t|dd| p0t|dd| p0t|dd| p0t|dd| p0t|d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   r   r   r   complex_email_validation2   sJ   
	r&   c                 C   s   d}t |ddd| p[t |ddd| p[t |ddd| p[t |ddd| p[t |ddd| p[t |dd	d| p[t |dd
d| p[t |ddd| p[t |ddd| p[t |d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%   r   r   r   leap_secondI   s    $r)   bignumznon-bmp-regexzeroTerminatedFloatsc                 C   s   t | pttj| pt| S r   )r   r"   
jsonschemaDraft3Validatorr&   r   r   r   r   <lambda>~   s   r.   )r!   format_checkerr   zfloat-overflowidc                 C   &   t | pt| pttj| pt| S r   )r   r)   r"   r,   Draft4Validatorr&   r   r   r   r   r.         c                 C   r1   r   )r   r)   r"   r,   Draft6Validatorr&   r   r   r   r   r.      r3   zcross-draftunknownKeywordc                 C   r1   r   )r   r)   r"   r,   Draft7Validatorr&   r   r   r   r   r.      r3   anchorz	no-schemarefOfUnknownKeywordz(Vocabulary support is still in-progress.
vocabularyz5no validation: invalid number, but it still validatesr(   )r!   r   TestDraft201909Formatc                 C   .   t | pt| pt| pttj| pt | S r   )r&   r   r)   r"   r,   Draft201909Validatorr   r   r   r   r.         )r   r!   r/   r   TestDraft202012Formatc                 C   r;   r   )r&   r   r)   r"   r,   Draft202012Validatorr   r   r   r   r.      r=   )$__doc__jsonschema.tests._suiter   r,   SUITEversionDRAFT3DRAFT4DRAFT6DRAFT7DRAFT201909DRAFT202012r   r   r"   r&   r)   to_unittest_testcasecasesformat_casesoptional_cases_ofr-   r   
TestDraft3r2   
TestDraft4r4   
TestDraft6r6   
TestDraft7r<   TestDraft201909r:   r?   TestDraft202012r>   r   r   r   r   <module>   s    	-




































