
V]c           @   s}   d  Z  d d l m Z d d l m Z m Z m Z d d l m Z e	 d  Z
 e d  Z d   Z d e f d	     YZ d
 S(   sQ   
Tests for the parts of jsonschema related to the :validator:`format` property.

i(   t   TestCase(   t   FormatErrort   ValidationErrort   FormatChecker(   t   Draft4Validators   Boom!s   Bang!c         C   s   |  d k r t   n  t  d  S(   Nt   bang(   t   BANGt   BOOM(   t   thing(    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt   boom   s    	t   TestFormatCheckerc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s#   t  d d  } |  j | j  d  S(   Nt   formats(    (   R   t   assertFalset   checkers(   t   selft   checker(    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt   test_it_can_validate_no_formats   s    c         C   s*   |  j  t   t d d g  Wd  QXd  S(   NR   s   o noes(   t   assertRaisest   KeyErrorR   (   R   (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt.   test_it_raises_a_key_error_for_unknown_formats   s    c         C   sa   t  t j  } |  j t j j d  t j d  t  |  j t j t  | d t d f  d  S(   NR	   (    (   t   dictR   R   t
   addCleanupt   popt
   cls_checksR	   t   assertEqual(   R   t   original(    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt!   test_it_can_register_cls_checkers   s    c         C   sH   t    } | j d  t  |  j | j t t  j d t d f  d  S(   NR	   (    (   R   t   checksR	   R   R   R   (   R   R   (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt   test_it_can_register_checkers(   s
    	c      
   C   s   t    } | j d d t t  t  |  j t   } | j d d d d  Wd  QX|  j | j	 j
 t  |  j | j	 j t  |  j t t    | j d d d d  Wd  QXd  S(   NR	   t   raisest   instancei   t   formatR   (   R   R   t   typeR   R	   R   R   t   checkt   assertIst	   exceptiont   causet	   __cause__R   (   R   R   t   cm(    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt!   test_it_catches_registered_errors0   s    	c         C   s   t    } | j d d t t  t i d d 6d | } |  j t   } | j d  Wd  QX|  j | j	 j
 t  |  j | j	 j t  d  S(   NR	   R   R   t   format_checkerR   (   R   R   t
   ValueErrorR	   R   R   R   t   validateR"   R#   R$   R   R%   (   R   R   t	   validatorR&   (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt7   test_format_error_causes_become_validation_error_causes>   s    	c      	   C   s9   t    } |  j t   | j d d d d  Wd  QXd  S(   NR   s   not-an-ipv4R   t   ipv4(   R   R   R   R!   (   R   R   (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt'   test_format_checkers_come_with_defaultsI   s    	(	   t   __name__t
   __module__R   R   R   R   R'   R,   R.   (    (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyR
      s   							N(   t   __doc__t   unittestR    t
   jsonschemaR   R   R   t   jsonschema.validatorsR   R)   R   t   ZeroDivisionErrorR   R	   R
   (    (    (    s;   lib/python2.7/site-packages/jsonschema/tests/test_format.pyt   <module>   s   	