ó
ž›V]c           @   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 „  Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d S(   iÿÿÿÿ(   t   TestCaseN(   t   Draft4Validatort   ValidationErrort   clit   __version__(   t   NativeIO(   t   SchemaErrorc             s2   t  t ˆ  ƒ ƒ ‰  d t f ‡  f d †  ƒ  Y} | S(   Nt   FakeValidatorc              s)   e  Z d  „  Z ‡  f d †  Z d „  Z RS(   c         _   s   d  S(   N(    (   t   selft   argst   kwargs(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   __init__   s    c            s   ˆ  r ˆ  j  ƒ  Sg  S(   N(   t   pop(   R   t   instance(   t   errors(    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   iter_errors   s    
c         S   s   d  S(   N(    (   R   t   schema(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   check_schema   s    (   t   __name__t
   __module__R   R   R   (    (   R   (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyR      s   	(   t   listt   reversedt   object(   R   R   (    (   R   s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   fake_validator   s    t
   TestParserc           B   sA   e  Z e ƒ  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z	 RS(   s   foo.jsons   schema.jsonc         C   s#   |  j  t _ |  j t t d ƒ d  S(   Nt   open(   t	   fake_openR   R   t
   addCleanupt   delattr(   R   (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   setUp#   s    c         C   sY   | |  j  k r d } n. | |  j k r0 i  } n |  j d j | ƒ ƒ t t j | ƒ ƒ S(   Nt    s   What is {!r}(   t   instance_filet   schema_filet   failt   formatR   t   jsont   dumps(   R   t   patht   contents(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyR   '   s    		c         C   s?   t  j d d d |  j |  j g ƒ } |  j | d |  j ƒ d  S(   Ns   --validators2   jsonschema.tests.test_cli.TestParser.FakeValidators
   --instancet	   validator(   R   t
   parse_argsR   R    t   assertIsR   (   R   t	   arguments(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt2   test_find_validator_by_fully_qualified_object_name0   s    	c         C   s<   t  j d d d |  j |  j g ƒ } |  j | d t ƒ d  S(   Ns   --validatorR   s
   --instanceR'   (   R   R(   R   R    R)   R   (   R   R*   (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt!   test_find_validator_in_jsonschema;   s
    	(
   R   R   R   R   R   R    R   R   R+   R,   (    (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyR      s   					t   TestCLIc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sŠ   t  ƒ  t  ƒ  } } |  j t ƒ b t j i t d 6i i d d 6i d d 6i t d 6g d 6d 6d	 g d
 6d d 6d | d | ƒWd  QXd  S(   NR'   i   t   minimumt   stringt   typet   requiredt   anyOfR   i   t	   instancess   {error.message}t   error_formatt   stdoutt   stderr(   R   t   assertRaisesR   R   t   runR   t   True(   R   R5   R6   (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt#   test_draft3_schema_draft4_validatorG   s    



c         C   sŠ   t  ƒ  t  ƒ  } } t j i t ƒ  d 6i  d 6d g d 6d d 6d | d | ƒ} |  j | j ƒ  ƒ |  j | j ƒ  ƒ |  j | d	 ƒ d  S(
   NR'   R   i   R3   s   {error.message}R4   R5   R6   i    (   R   R   R8   R   t   assertFalset   getvaluet   assertEqual(   R   R5   R6   t	   exit_code(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   test_successful_validation[   s    


	c         C   s¥   t  d d d ƒ} t ƒ  t ƒ  } } t j i t | g ƒ d 6i  d 6d g d 6d d 6d	 | d
 | ƒ} |  j | j ƒ  ƒ |  j | j ƒ  d ƒ |  j | d ƒ d  S(   Ns   I am an error!R   i   R'   R   R3   s"   {error.instance} - {error.message}R4   R5   R6   s   1 - I am an error!(   R   R   R   R8   R   R;   R<   R=   (   R   t   errorR5   R6   R>   (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   test_unsuccessful_validationk   s    

	c         C   sÏ   t  d d d ƒt  d d d ƒg } t  d d d ƒg } t ƒ  t ƒ  } } t j i t | | ƒ d 6i  d 6d d g d	 6d
 d 6d | d | ƒ} |  j | j ƒ  ƒ |  j | j ƒ  d ƒ |  j | d ƒ d  S(   Nt   9R   i   t   8t   7i   R'   R   R3   s#   {error.instance} - {error.message}	R4   R5   R6   s   1 - 9	1 - 8	2 - 7	(   R   R   R   R8   R   R;   R<   R=   (   R   t   first_errorst   second_errorsR5   R6   R>   (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt/   test_unsuccessful_validation_multiple_instances|   s    
	c         C   sP   t  j t j d d d g d t  j ƒ} | j d ƒ j ƒ  } |  j | t ƒ d  S(   Ns   -mt
   jsonschemas	   --versionR6   s   utf-8(	   t
   subprocesst   check_outputt   syst
   executablet   STDOUTt   decodet   stripR=   R   (   R   t   version(    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   test_version‘   s
    (   R   R   R:   R?   RA   RG   RQ   (    (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyR-   F   s
   				(   t   unittestR    R#   RI   RK   RH   R   R   R   R   t   jsonschema.compatR   t   jsonschema.exceptionsR   R   R   R-   (    (    (    s8   lib/python2.7/site-packages/jsonschema/tests/test_cli.pyt   <module>   s   "	)