
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
:X                 @   sl   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 dd ZG dd de
jZG d	d
 d
e
jZdS )    )Draft4ValidatorValidationErrorcli)StringIO)SchemaError)mockunittestc                 s$   t t  G  fdddt}|S )Nc                   s(   e Zd Zdd Z fddZdd ZdS )z%fake_validator.<locals>.FakeValidatorc             _   s   d S )N )selfargskwargsr	   r	   /usr/lib/python3.6/test_cli.py__init__   s    z.fake_validator.<locals>.FakeValidator.__init__c                s    r j  S g S )N)pop)r
   instance)errorsr	   r   iter_errors   s    z1fake_validator.<locals>.FakeValidator.iter_errorsc             S   s   d S )Nr	   )r
   schemar	   r	   r   check_schema   s    z2fake_validator.<locals>.FakeValidator.check_schemaN)__name__
__module____qualname__r   r   r   r	   )r   r	   r   FakeValidator
   s   r   )listreversedobject)r   r   r	   )r   r   fake_validator   s    r   c               @   s*   e Zd Ze Zdd Zdd Zdd ZdS )
TestParserc             C   s`   t j }t jjtd|dd}|j  | j|j t j }i |_	t jd}|j  | j|j d S )NopenT)Zcreatez	json.load)
r   	mock_openZpatchr   r   startZ
addCleanupstopZMockZreturn_value)r
   r   Z
patch_openZmock_json_loadZpatch_json_loadr	   r	   r   setUp   s    
zTestParser.setUpc             C   s*   t jdddddg}| j|d | j d S )Nz--validatorz2jsonschema.tests.test_cli.TestParser.FakeValidatorz
--instancezfoo.jsonzschema.json	validator)r   
parse_argsassertIsr   )r
   	argumentsr	   r	   r   2test_find_validator_by_fully_qualified_object_name(   s    z=TestParser.test_find_validator_by_fully_qualified_object_namec             C   s(   t jdddddg}| j|d t d S )Nz--validatorr   z
--instancezfoo.jsonzschema.jsonr#   )r   r$   r%   r   )r
   r&   r	   r	   r   !test_find_validator_in_jsonschema3   s
    z,TestParser.test_find_validator_in_jsonschemaN)r   r   r   r   r   r"   r'   r(   r	   r	   r	   r   r      s   r   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestCLIc             C   sZ   t  t   }}| jt8 tjtdddiddiddigidgd	d
||d W d Q R X d S )NZanyOfZminimum   typestringZrequiredT   z{error.message})r#   r   	instanceserror_format)stdoutstderr)r   ZassertRaisesr   r   runr   )r
   r0   r1   r	   r	   r   #test_draft3_schema_draft4_validator?   s    
z+TestCLI.test_draft3_schema_draft4_validatorc             C   sX   t  t   }}tjt i dgdd||d}| j|j  | j|j  | j|d d S )Nr-   z{error.message})r#   r   r.   r/   )r0   r1   r   )r   r   r2   r   assertFalsegetvalueassertEqual)r
   r0   r1   	exit_coder	   r	   r   test_successful_validationS   s    z"TestCLI.test_successful_validationc             C   sj   t ddd}t t  }}tjt|gi dgdd||d}| j|j  | j|j d | j|d d S )NzI am an error!r-   )r   z"{error.instance} - {error.message})r#   r   r.   r/   )r0   r1   z1 - I am an error!)r   r   r   r2   r   r4   r5   r6   )r
   errorr0   r1   r7   r	   r	   r   test_unsuccessful_validationc   s    z$TestCLI.test_unsuccessful_validationc             C   s   t dddt dddg}t dddg}t t  }}tjt||i ddgdd||d	}| j|j  | j|j d
 | j|d d S )N9r-   )r   87   z#{error.instance} - {error.message}	)r#   r   r.   r/   )r0   r1   z1 - 9	1 - 8	2 - 7	)r   r   r   r2   r   r4   r5   r6   )r
   Zfirst_errorsZsecond_errorsr0   r1   r7   r	   r	   r   /test_unsuccessful_validation_multiple_instancest   s    
z7TestCLI.test_unsuccessful_validation_multiple_instancesN)r   r   r   r3   r8   r:   r?   r	   r	   r	   r   r)   >   s   r)   N)Z
jsonschemar   r   r   Zjsonschema.compatr   Zjsonschema.exceptionsr   Zjsonschema.tests.compatr   r   r   ZTestCaser   r)   r	   r	   r	   r   <module>   s   %