a
    d                     @   s  d Z ddl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ejdk rdZeedddZn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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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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$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.
    N)SuiteZdraft3)nameZdraft4Zdraft6Z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 t/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-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                    sH   | j }|du s4|du s4d|vs4|d  jjv s4| jr8d S d|d dS )NTFformatzFormat checker z not found.)schemaFORMAT_CHECKERZcheckersZ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| p`t|dd| p`t|dd| p`t|dd| p`t|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)subjectr   r
   r   r   r   r   complex_email_validation.   sJ    
	r    )   	   zRejecting leading zeros is 3.9+Zipv4z5invalid leading zeroes, as they are treated as octalsr   r   r   c                 C   s   d S r   r   r	   r   r   r   allowed_leading_zerosM   s    r$   c                 C   s   d}t |ddd| pt |ddd| pt |ddd| pt |ddd| pt |ddd| pt |dd	d| pt |dd
d| pt |ddd| pt |ddd| pt |ddd| S )NzLeap seconds are unsupported.timez$a valid time string with leap secondr#   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_secondQ   s     $r&   Zbignumznon-bmp-regexZzeroTerminatedFloatsc                 C   s   t tj| pt| S r   )r   
jsonschemaDraft3Validatorr    r	   r   r   r   <lambda>   s    r)   )r   format_checkerr   zfloat-overflowc                 C   s&   t | p$t| p$ttj| p$t| S r   )r$   r&   r   r'   Draft4Validatorr    r	   r   r   r   r)      s    c                 C   s&   t | p$t| p$ttj| p$t| S r   )r$   r&   r   r'   Draft6Validatorr    r	   r   r   r   r)      s    zcross-draftc                 C   s&   t | p$t| p$ttj| p$t| S r   )r$   r&   r   r'   Draft7Validatorr    r	   r   r   r   r)      s    ZrefOfUnknownKeywordz(Vocabulary support is still in-progress.Z
vocabularyz5no validation: invalid number, but it still validates)r   r   TestDraft201909Formatc                 C   s.   t | p,t| p,t| p,ttj| p,t | S r   )r    r$   r&   r   r'   Draft201909Validatorr	   r   r   r   r)      s    )r   r   r*   r   TestDraft202012Formatc                 C   s.   t | p,t| p,t| p,ttj| p,t | S r   )r    r$   r&   r   r'   Draft202012Validatorr	   r   r   r   r)      s    )'__doc__sysZjsonschema.tests._suiter   r'   ZSUITEversionZDRAFT3ZDRAFT4ZDRAFT6ZDRAFT7ZDRAFT201909ZDRAFT202012r   r   r    version_infor   r$   r&   Zto_unittest_testcaseZcasesZformat_casesZoptional_cases_ofr(   r   Z
TestDraft3r+   Z
TestDraft4r,   Z
TestDraft6r-   Z
TestDraft7r/   ZTestDraft201909r.   r1   ZTestDraft202012r0   r   r   r   r   <module>   s   
-























