ó
§‰]c           @   sL   d  Z  d d l Z d d l m Z d d l m Z d e f d „  ƒ  YZ d S(	   s   
Module with tests for files
iÿÿÿÿNi   (   t	   TestsBasei   (   t   FilesWritert	   Testfilesc           B   sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s$   Contains test functions for files.pyc         C   sp   |  j  ƒ  ^ i  } t ƒ  } | j d | d d ƒt d d ƒ # } | j ƒ  } |  j | d ƒ Wd QXWd QXd S(   s$   Is FilesWriter basic output correct?u   yt   notebook_namet   zt   rN(   t   create_temp_cwdR   t   writet   opent   readt   assertEqual(   t   selft   rest   writert   ft   output(    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_basic_output   s    	c         C   s   |  j  ƒ  } i d d 6} t ƒ  } | j d | d d ƒt j j d ƒ sQ t ‚ t d d ƒ # } | j ƒ  } |  j	 | d ƒ Wd QXWd QXd S(	   s=   Does the FilesWriter add the correct extension to the output?s   .txtt   output_extensionu   yR   R   s   z.txtR   N(
   R   R   R   t   ost   patht   isfilet   AssertionErrorR   R	   R
   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_ext#   s    	c         C   sî   |  j  ƒ  Ü i i d t j j d d ƒ 6d 6} t ƒ  } | j d | d d ƒt d d ƒ # } | j ƒ  } |  j | d ƒ Wd	 QXt j j d d ƒ } t j j	 | ƒ s° t
 ‚ t | d ƒ # } | j ƒ  } |  j | d ƒ Wd	 QXWd	 QXd	 S(
   s2   Can FilesWriter write extracted figures correctly?t   bt   z_filest   at   outputsu   yR   R   R   N(   R   R   R   t   joinR   R   R   R	   R
   R   R   (   R   R   R   R   R   t   extracted_file_dest(    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_extract7   s    #	c         C   s0  |  j  ƒ  i i d t j j d d ƒ 6d 6} t ƒ  } d | _ | j d | d d ƒt j j | j ƒ ss t ‚ t j j | j d ƒ } t	 | d	 ƒ # } | j
 ƒ  } |  j | d ƒ Wd
 QXt j j | j d d ƒ } t j j | ƒ sò t ‚ t	 | d	 ƒ # } | j
 ƒ  } |  j | d ƒ Wd
 QXWd
 QXd
 S(   s/   Can FilesWriter write to a build dir correctly?R   R   R   R   u   buildu   yR   R   R   N(   R   R   R   R   R   t   build_directoryR   t   isdirR   R   R	   R
   R   (   R   R   R   t   destR   R   R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_build_dirQ   s    #		c         C   sµ   |  j  ƒ  £ t j d ƒ i i d d 6d 6} t ƒ  } | j d | d d ƒt j j d d ƒ } t j j | ƒ sz t ‚ t	 | ƒ # } |  j
 | j ƒ  j ƒ  d ƒ Wd QXWd QXd S(	   s"   FilesWriter defaults to input patht   subR   t   metadatau   contentR   t   outt   contentN(   R   R   t   mkdirR   R   R   R   R   R   R   R
   R	   t   strip(   R   t	   resourcesR   R    R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_build_dir_defaultm   s    	c         C   s™  |  j  ƒ  ‡t j d ƒ t t j j d d ƒ d ƒ  } | j d ƒ Wd QXi  } t ƒ  } t j j d d ƒ g | _ d | _	 | j d | d d	 ƒt j j
 | j	 ƒ s² t ‚ t j j | j	 d	 ƒ } t | d
 ƒ # } | j ƒ  } |  j | d ƒ Wd QXt j j | j	 d ƒ } t j j
 | ƒ s.t ‚ t j j | d ƒ } t j j | ƒ s[t ‚ t | d
 ƒ # } | j ƒ  } |  j | d ƒ Wd QXWd QXd S(   s2   Can the FilesWriter handle linked files correctly?R"   t   ct   wt   dNu   buildu   yR   R   R   (   R   R   R&   R   R   R   R   R   t   filesR   R   R   R	   R
   R   (   R   R   R   R   R    R   R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt
   test_links|   s*    !		c         C   sÕ  |  j  ƒ  Ãt j d ƒ t t j j d d ƒ d ƒ  } | j d ƒ Wd QXt t j j d d ƒ d ƒ  } | j d ƒ Wd QXi  } t ƒ  } d g | _ d | _	 | j d	 | d
 d ƒt j j
 | j	 ƒ s× t ‚ t j j | j	 d ƒ } t | d ƒ # } | j ƒ  } |  j | d	 ƒ Wd QXt j j | j	 d ƒ } t j j
 | ƒ sSt ‚ xu d d g D]g } t j j | | ƒ } t j j | ƒ s“t ‚ t | d ƒ # } | j ƒ  } |  j | d ƒ Wd QXq`WWd QXd S(   s3   Can the FilesWriter handle globbed files correctly?R"   R*   R+   t   eNR,   s   sub/*u   buildu   yR   R   R   (   R   R   R&   R   R   R   R   R   R-   R   R   R   R	   R
   R   (   R   R   R   R   R    R   R   t   filename(    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt	   test_glob    s0    !!		c         C   su  |  j  ƒ  ct j d ƒ t t j j d d ƒ d ƒ  } | j d ƒ Wd QXi  } t ƒ  } t j j d d ƒ g | _ d | _	 d | _
 | j d | d d	 ƒt j j | j	 ƒ s» t ‚ t j j | j	 d	 ƒ } t | d
 ƒ # } | j ƒ  } |  j | d ƒ Wd QXt j j | j	 d ƒ } t j j | ƒ s7t ‚ t | d
 ƒ # } | j ƒ  } |  j | d ƒ Wd QXWd QXd S(   sE   Can the FilesWriter handle relative paths for linked files correctly?R"   R*   R+   R,   Nu   buildu   yR   R   R   (   R   R   R&   R   R   R   R   R   R-   R   t   relpathR   R   R	   R
   R   (   R   R   R   R   R    R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_relpathÇ   s(    !			c         C   s~  |  j  ƒ  lt j d ƒ t t j j d d ƒ d ƒ  } | j d ƒ Wd QXt d t d d ƒ ƒ } t ƒ  } t j j d d ƒ g | _	 d | _
 | j d	 | d
 d ƒt j j | j
 ƒ sÄ t ‚ t j j | j
 d ƒ } t | d ƒ # } | j ƒ  } |  j | d	 ƒ Wd QXt j j | j
 d ƒ } t j j | ƒ s@t ‚ t | d ƒ # } | j ƒ  } |  j | d ƒ Wd QXWd QXd S(   s1   Is the FilesWriter default relative path correct?R"   R*   R+   R,   NR#   R   u   buildu   yR   R   R   (   R   R   R&   R   R   R   R   t   dictR   R-   R   R   R   R	   R
   R   (   R   R   R   R   R    R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_relpath_defaultê   s&    !		c         C   s‡  |  j  ƒ  ut j d ƒ t t j j d d ƒ d ƒ  } | j d ƒ Wd QXt d t d d ƒ ƒ } t ƒ  } t j j d d ƒ g | _	 d	 | _
 d | _ | j d
 | d d ƒt j j | j
 ƒ sÍ t ‚ t j j | j
 d ƒ } t | d ƒ # } | j ƒ  } |  j | d
 ƒ Wd QXt j j | j
 d ƒ } t j j | ƒ sIt ‚ t | d ƒ # } | j ƒ  } |  j | d ƒ Wd QXWd QXd S(   sB   Does the FilesWriter relpath option take precedence over the path?R"   R*   R+   R,   NR#   R   t	   other_subu   buildu   yR   R   R   (   R   R   R&   R   R   R   R   R4   R   R-   R   R2   R   R   R	   R
   R   (   R   R   R   R   R    R   (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   test_relpath_precedence  s(    !			(   t   __name__t
   __module__t   __doc__R   R   R   R!   R)   R.   R1   R3   R5   R7   (    (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyR      s   						$	'	#	"(   R:   R   t
   tests.baseR    R-   R   R   (    (    (    sA   lib/python2.7/site-packages/nbconvert/writers/tests/test_files.pyt   <module>   s   