
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    `O                     @   s   d dl Z d dlZd dlmZmZmZmZ d dlmZ i dddfddZ	dd Z
dd	 ZdddZdddZdddZdd Zdd Zdd ZdddZdS )    N)errors	ValidatorSchemaErrorDocumentError)sample_schemac              	   C   sf   |dkrt  }|dkr8t|  ||| W 5 Q R X n*tj| t|d ||| W 5 Q R X dS )z
    Tests whether a specific exception is raised. Optionally also tests whether the
    exception message is as expected.
    N)match)r   pytestZraisesreescape)	exceptiondocumentschema	validatormsg r   H/opt/alt/python38/lib/python3.8/site-packages/cerberus/tests/__init__.pyassert_exception   s    r   c                  G   s   t tf|   dS )zITests whether a validation raises an exception due to a malformed schema.N)r   r   argsr   r   r   assert_schema_error   s    r   c                  G   s   t tf|   dS )zKTests whether a validation raises an exception due to a malformed document.N)r   r   r   r   r   r   assert_document_error   s    r   Fc           	      C   s   |dkrt t}|| ||}t|ts*t|r2t|j}|dk	rL|dk	rLt|dk	rd|dk	rdtd|dk	rx|dkrxt|dk	rt|dkstt|f|  |dk	rt|d jt|kstt	|d j| n&|dk	rt|t|kstt	|| |S )z!Tests whether a validation fails.NzGchild_errors can only be tested in conjunction with the error parameter   r   )
r   r   
isinstanceboolAssertionError_errorslenassert_has_errorchild_errorsassert_has_errors)	r   r   r   updateerrorr   r   resultZactual_errorsr   r   r   assert_fail$   s*    

r#   c                 C   s<   |dkrt t}|| ||}t|ts*t|s8t|jdS )z$Tests whether a validation succeeds.N)r   r   r   r   r   r   )r   r   r   r    r"   r   r   r   assert_successJ   s    r$   r   c              	   C   s  t |ts|f}t |ts |f}t | tjs0tt| D ]\}}t |tjsPtzb|j|ks`t|j|ksnt|j	|j	ks~t|j
|j
kst|j|kst|js|j|kstW n( tk
r   Y q8 tk
r    Y q8X  qq8tdj||t|j	||| d|S )Nz
        Error with properties:
          document_path={doc_path}
          schema_path={schema_path}
          code={code}
          constraint={constraint}
          info={info}
        not found in errors:
        {errors}
        )Zdoc_pathschema_pathcodeinfo
constraintr   )r   tupler   Z	ErrorListr   	enumerateZValidationErrorZdocument_pathr%   r&   Zruler(   Zis_group_errorr'   	Exceptionformathex)r   Zd_pathZs_pathZ	error_defr(   r'   ir!   r   r   r   r   T   s>    


r   c                 C   s8   t |tst|D ] }t |ts$tt| f|  qd S N)r   listr   r)   r   )r   Z_exp_errorsr!   r   r   r   r      s    r   c              
   O   sZ   zt | f|| W n8 tk
r(   Y n. tk
rL } z|W 5 d }~X Y n
X tdd S )NzAn unexpected error occurred.)r   r   r+   )r   r   kwargser   r   r   assert_not_has_error   s    r3   c                 C   s"   t | |i| | dftj|fd d S )Ntype)r!   )r#   r   ZBAD_TYPE)fieldZ	data_typevaluer   r   r   assert_bad_type   s     r7   c                 C   s.   |d krt t}t| || |j|ks*td S r/   )r   r   r$   r   r   )r   Zexpectedr   r   r   r   r   assert_normalized   s    r8   )NNFNNN)NNF)r   )NN)r	   r   Zcerberusr   r   r   r   Zcerberus.tests.conftestr   r   r   r   r#   r$   r   r   r3   r7   r8   r   r   r   r   <module>   s&         
&


/