ó
‹'=[c           @   sr   d  Z  d d l Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 m
 Z
 d	 e f d
 „  ƒ  YZ d S(   s   Test nbformat.validatoriÿÿÿÿNi   (   t	   TestsBase(   t   ValidationError(   t   readi   (   t   isvalidt   validatet   TestValidatorc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   s>   Test that a v2 notebook converted to current passes validationu   test2.ipynbu   rt
   as_versioni   N(   t   fopenR   R   t   assertEqualR   t   True(   t   selft   ft   nb(    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb2   s    
c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   s)   Test that a v3 notebook passes validationu   test3.ipynbu   rR   i   N(   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb3   s    
c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   s)   Test that a v4 notebook passes validationu   test4.ipynbu   rR   i   N(   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb4   s    
c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   s9   Test that a notebook with document_info passes validationu   test4docinfo.ipynbu   rR   i   N(   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb4_document_info%   s    
c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   sB   Test that a notebook with a custom JSON mimetype passes validationu   test4custom.ipynbu   rR   i   N(   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb4custom,   s    
c         C   sQ   |  j  d d ƒ  } t | d d ƒ} Wd QXt | ƒ |  j t | ƒ t ƒ d S(   s>   Test that a notebook with a jupyter metadata passes validationu   test4jupyter_metadata.ipynbu   rR   i   N(   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_nb4jupyter_metadata3   s    
c         C   sg   |  j  d d ƒ  } t | d d ƒ} Wd QX|  j t ƒ  t | ƒ Wd QX|  j t | ƒ t ƒ d S(   s6   Test than an invalid notebook does not pass validationu   invalid.ipynbu   rR   i   N(   R   R   t   assertRaisesR   R   R   R   t   False(   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_invalid:   s
    c         C   s   t  i  ƒ d S(   s6   Test that an empty dict can be validated without errorN(   R   (   R
   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_validate_emptyF   s    c      	   C   s‰   |  j  d d ƒ  } t | d d ƒ} Wd QX|  j t ƒ  t | d d ƒWd QX|  j t | d d ƒt ƒ |  j t | ƒ t ƒ d S(   sF   Test than a notebook from the future with extra keys passes validationu   test4plus.ipynbu   rR   i   Nt   version(	   R   R   R   R   R   R   R   R   R	   (   R
   R   R   (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_futureJ   s    c         C   s®   |  j  d d ƒ  } t | d d ƒ} Wd  QX|  j t ƒ  } t | ƒ Wd  QXt | j ƒ } |  j | d ƒ |  j | d ƒ |  j | d ƒ |  j t	 | j
 ƒ  ƒ d ƒ d  S(	   Nu   invalid.ipynbu   rR   i   s'   validating.*required.* in markdown_cells   source.* is a required propertys'   On instance\[u?['\"].*cells['\"]\]\[0\]i
   (   R   R   R   R   R   t   strt	   exceptiont   assertRegexpMatchest
   assertLesst   lent
   splitlines(   R
   R   R   t   et   s(    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   test_validation_errorT   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R   R!   (    (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyR      s   									
(   t   __doc__t   ost   baseR    t
   jsonschemaR   t   nbformatR   t	   validatorR   R   R   (    (    (    s<   lib/python2.7/site-packages/nbformat/tests/test_validator.pyt   <module>   s   