<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    pSew                 @   s   d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ dd ZG dd	 d	eZG d
d deZdS )    )TestCaseN)Draft4ValidatorValidationErrorcli__version__)NativeIO)SchemaErrorc                 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	   J/opt/alt/python37/lib/python3.7/site-packages/jsonschema/tests/test_cli.py__init__   s    z.fake_validator.<locals>.FakeValidator.__init__c                s    r   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ZdZdd Zdd Zdd Z	d	d
 Z
dS )
TestParserzfoo.jsonzschema.jsonc             C   s   | j t_| ttd d S )Nopen)	fake_openr   r   Z
addCleanupdelattr)r
   r	   r	   r   setUp#   s    zTestParser.setUpc             C   s>   || j krd}n || jkr i }n| d| tt|S )N zWhat is {!r})instance_fileschema_fileZfailformatr   jsondumps)r
   pathcontentsr	   r	   r   r   '   s    

zTestParser.fake_openc             C   s.   t ddd| j| jg}| |d | j d S )Nz--validatorz2jsonschema.tests.test_cli.TestParser.FakeValidatorz
--instance	validator)r   
parse_argsr#   r$   assertIsr   )r
   	argumentsr	   r	   r   2test_find_validator_by_fully_qualified_object_name0   s    
z=TestParser.test_find_validator_by_fully_qualified_object_namec             C   s,   t ddd| j| jg}| |d t d S )Nz--validatorr   z
--instancer*   )r   r+   r#   r$   r,   r   )r
   r-   r	   r	   r   !test_find_validator_in_jsonschema;   s
    
z,TestParser.test_find_validator_in_jsonschemaN)r   r   r   r   r   r#   r$   r!   r   r.   r/   r	   r	   r	   r   r      s   	r   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestCLIc          	   C   sZ   t  t   }}| 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
   r7   r8   r	   r	   r   #test_draft3_schema_draft4_validatorG   s    
z+TestCLI.test_draft3_schema_draft4_validatorc             C   sX   t  t   }}tjt i dgdd||d}| |  | |  | |d d S )Nr4   z{error.message})r*   r   r5   r6   )r7   r8   r   )r   r   r9   r   assertFalsegetvalueassertEqual)r
   r7   r8   	exit_coder	   r	   r   test_successful_validation[   s    z"TestCLI.test_successful_validationc             C   sj   t ddd}t t  }}tjt|gi dgdd||d}| |  | | d | |d d S )NzI am an error!r4   )r   z"{error.instance} - {error.message})r*   r   r5   r6   )r7   r8   z1 - I am an error!)r   r   r   r9   r   r;   r<   r=   )r
   errorr7   r8   r>   r	   r	   r   test_unsuccessful_validationk   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	}| |  | | d
 | |d d S )N9r4   )r   87   z#{error.instance} - {error.message}	)r*   r   r5   r6   )r7   r8   z1 - 9	1 - 8	2 - 7	)r   r   r   r9   r   r;   r<   r=   )r
   Zfirst_errorsZsecond_errorsr7   r8   r>   r	   r	   r   /test_unsuccessful_validation_multiple_instances|   s    
z7TestCLI.test_unsuccessful_validation_multiple_instancesc             C   s8   t jtjdddgt jd}|d }| |t d S )Nz-m
jsonschemaz	--version)r8   zutf-8)	
subprocesscheck_outputsys
executableSTDOUTdecodestripr=   r   )r
   versionr	   r	   r   test_version   s
    
zTestCLI.test_versionN)r   r   r   r:   r?   rA   rF   rP   r	   r	   r	   r   r0   F   s
   r0   )Zunittestr   r&   rH   rJ   rG   r   r   r   r   Zjsonschema.compatr   Zjsonschema.exceptionsr   r   r   r0   r	   r	   r	   r   <module>   s   )