
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    !`V.                     @   s~   d dl mZmZ d dlmZ ejZdd Zdd Zdd Zd	d
 Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )    )	Validatorerrors)assert_failc                  C   s   t dddiid} ddi| _| dtjd | jd }|jdksDt|jdksRt|j	d	ks`t|j
dksnt|jdks|t|jdkst|jd
kst|jrt|jrtd S )Nfootypestringschema*   r   r   )r   r   $   )r   )r   document_errorr   BAD_TYPE_errorsdocument_pathAssertionErrorschema_pathcoderule
constraintvalueinfois_group_erroris_logic_errorverror r   K/opt/alt/python38/lib/python3.8/site-packages/cerberus/tests/test_errors.pytest__error_1
   s    


r    c                  C   s   t ddddiiid} dddii| _| dtjd | jd	 }|jd
ksLt|jdksZt|j	dksht|j
dksvt|jddikst|jddikst|jdkst|jst|jrtd S )Nr   	keysrulesr   integerr   0barr   r   r   )r   r!      )r   )r   r   r   r   Z	KEYSRULESr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   test__error_2   s    

r&   c                  C   s   dddddddg} t dd	| iid
}ddi|_|dtjddd |jd }|jdks^t|jdkslt|j	dkszt|j
d	kst|j| kst|jdkst|jdkst|jst|jstd S )Nr   z0x[0-9a-f]{2})r   regexr"   r      )r   minmaxr   oneofr   Z0x100r      r   r   r+      )r   r   r,   )r   r   r   r   ONEOFr   r   r   r   r   r   r   r   r   r   r   )Zvalidsr   r   r   r   r   test__error_3*   s     



r0   c                 C   sR  dddddiiii}dddii}t ||| d | j}| j}d|ksFtt|d jdksdt|d |d jd jtjjkstd|d kst|d d jd jdkst|	d	d jdkstd|kstd|d kstd|d d kstd|d d d kst|d d d d jd jdks4t|	d
d jdksNtd S )Nr   r	   r$   r   r   r   	validator   )r   r$   )r   r	   r$   r   )
r   document_error_treeschema_error_treer   lenr   r   MAPPING_SCHEMAr   Zfetch_errors_fromr2   r	   r   Zd_error_treeZs_error_treer   r   r   test_error_tree_from_subschema>   s$    &r9   c                 C   s   ddddiddigii}dg i}t ||| d | j}| j}d|ksFt|d jd jg ks^td|ksjtd|d ksztd|d d kstd|d d kstd|d d d kst|d d d d jd jg kstd S )	Nr   Zanyofr   r   r"   r1   r   r3   )r   r4   r5   r   r   r   r8   r   r   r   test_error_tree_from_anyofW   s    r:   c                 C   s  dd }ddiddiddd	d
dgdid}ddddddddgd}t ||| d | j}| j}t|jdksttt|jdkstt|d jdkstt|d jdkst|d d d kstt|d d jdkstt|d d jdkstt|d d jdkstt|d d jdks2tt|d d jdksNtt|d d d jdksntt|d d d jdksttddtjjdddd}tddtj	jdd
dd}td dtjjdddd}td dtj	jdd
dd}	|d d jd |ks
t|d d jd |ks&t||d d j||	 ||d d d j|| ||d d d j||	 t|d! jdkstt|d! d jdkst|d! d d kstt|d! d jd"kstt|d! jdkstt|d! d jdks
tt|d! d d jdks*tt|d! d d# d d jdksRtt|d! d d# d d jdkszttd$d%tjjdd	dd}
td&d'tj
jd#d(dd}td&d)tj	jdd
dd}td&d*tj	jdd
dd}|d! d jd |
kst||d! d j||| |d! d d# jd |ks.t|d! d d# d d jd |ksVt|d! d d# d d jd |ks~t|d! d d jd |
kstd S )+Nc                 W   s(   |D ]}| D ]}||kr qqt qd S )N)r   )r   Zref_errsZref_errr   r   r   r   assert_has_all_errorsj   s
    z6test_nested_error_paths.<locals>.assert_has_all_errorsr   r"   r'   z[a-z]*)r!   valuesrulesr	   r   z[a-z]*$z[A-Z]*)r   Zoneof_regex)a_dicta_listabcZaBcZabC)r   oner,   threer   r1   r=   r,   r@   r3   rA   r!   r<   )r=   r@   )r=   r!   r   r   )r=   r,   )r=   r<   r'   )r=   rA   r>      r+   )r>   r   )r>   r	   r   )r>   r,   )r>   r	   r+   Zirrelevant_at_this_point)r>   r	   r+   r   r'   )r>   r	   r+   r3   r'   )r   r4   r5   r6   r   r   ValidationErrorr   r   ZREGEX_MISMATCHr/   )r2   r;   r	   r   ZdetsetZref_err1Zref_err2Zref_err3Zref_err4Zref_err5Zref_err6Zref_err7Zref_err8r   r   r   test_nested_error_pathsg   s    
  

		   ((			
 ((rE   c                  C   sr   G dd dt } |  }|jdddddi dd	dii|_|ddd
ii ddddgigi}|j|ksntd S )Nc                   @   s   e Zd Zdd ZdS )zEtest_path_resolution_for_registry_references.<locals>.CustomValidatorc                 S   s   t dd S )NzFailed coerce)	Exception)selfr   r   r   r   _normalize_coerce_custom   s    z^test_path_resolution_for_registry_references.<locals>.CustomValidator._normalize_coerce_customN)__name__
__module____qualname__rH   r   r   r   r   CustomValidator   s   rL   Zschema1ZchildZbooleanZcustom)r   Zcoerceparentr	   [zmust be of boolean typez.field 'child' cannot be coerced: Failed coerce)r   Zschema_registryaddr	   Zvalidater   r   )rL   r2   Zexpectedr   r   r   ,test_path_resolution_for_registry_references   s"     
rP   c                  C   s  dddddiidi} dddii}t | }|| d|jks@td|jd ksRtd|jks`td|jd ksrttj|jd jksttj|jd ksttj|jd d ksttj|jd d ksttj|jd d d d kst|jd tj jd	 jtjjkstd S )
Nr   dictr$   r   Znumber)r   r	   Zzeror	   r   )	r   r4   r   r5   r   r7   r   child_errorsr   )r	   r   r2   r   r   r   test_queries  s$    rS   c               
   C   sX  t  } g i  }}|tdgdgdddd d |d| jd gi | ||ksVt|tdgdgddd	d
d |d| jd jd	dgi | ||kst|tddgdddgddddd |dd| jd jddgigi | ||kst|tddgdddgddddd |d d d | jd jdd | ||ksTtd S )Nr   c   readonlyTr   r$   B   r)   r3   r,   )r   Zzapr	   r   r   r   A   r'   u
   ^p[äe]ng$Zboomr   )r   BasicErrorHandlerappendrC   updatemessagesr   format)handlerr   refr   r   r   test_basic_error_handler*  sD    
      $$r_   c                 C   s   ddddiddigii}ddi}ddt j|d d df}|d	 |d
 d t jdf|d	 |d
 d t jdfg}t||| ||d | j dt jjd dgdgdgikstd S )Nr   r+   r   r"   r   gQk7@r-   r   r   r3   )r   r   )r3   r   )r2   r   rR   r.   zmust be of integer typezmust be of string type)zoneof definition 0zoneof definition 1)r   r/   r   r   rX   r[   r   )r2   r	   r   r   rR   r   r   r   test_basic_error_of_errorsM  s*        
r`   c                 C   sD   dddddiddigdi| _ | ddgi | jddgiks@td S )	NZ	test_listlistTr   r   )r   ZrequireditemsZtestz#length of list should be 2, it is 1)r	   r   r   r1   r   r   r   test_wrong_amount_of_itemsc  s    rc   N)Zcerberusr   r   Zcerberus.testsr   rC   r    r&   r0   r9   r:   rE   rP   rS   r_   r`   rc   r   r   r   r   <module>   s    #