ó
ú2¢\c           @   sÎ   d  Z  d d l Z d d l Z d d l m Z e j j Z d d l Z d d l	 Z	 d d l
 m Z d d l m Z m Z m Z m Z d d l m Z d d l m Z d d	 l m Z d
 e f d „  ƒ  YZ d S(   s   Test the /files/ handler.iÿÿÿÿN(   t	   normalize(   t   write(   t   new_notebookt   new_markdown_cellt   new_code_cellt
   new_output(   t   url_path_joini   (   t   NotebookTestBase(   t	   py3compatt	   FilesTestc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   
      C   s.  d d g } d d g } | | } |  j  } xª | D]¢ } t | | j d t j ƒ ƒ } t j j | ƒ sx t j | ƒ n  t t | d ƒ d ƒ  } | j	 d ƒ Wd  QXt t | d ƒ d ƒ  } | j	 d ƒ Wd  QXq2 Wx˜ | D] } t | | j d t j ƒ ƒ } |  j
 d	 t d
 | d ƒ ƒ } | j ƒ  |  j | j d ƒ |  j
 d	 t d
 | d ƒ ƒ } |  j | j d ƒ qß Wxn | D]f } t | | j d t j ƒ ƒ } x? d D]7 }	 |  j
 d	 t d
 | |	 ƒ ƒ } |  j | j d ƒ q¥WqzWt |  j j _ z$x¢ | D]š } t | | j d t j ƒ ƒ } |  j
 d	 t d
 | d ƒ ƒ } | j ƒ  |  j | j d ƒ |  j
 d	 t d
 | d ƒ ƒ } | j ƒ  |  j | j d ƒ qýWxx | D]p } t | | j d t j ƒ ƒ } xI d D]A }	 |  j
 d	 t d
 | |	 ƒ ƒ } | j ƒ  |  j | j |	 ƒ qÍWq¢WWd  t |  j j _ Xd  S(   Nu   Ã¥ bu
   Ã¥ b/Ã§. du   .Ã¥ bu
   Ã¥ b/.Ã§ dt   /t   foot   ws   .foot   GETt   filesi”  (   R   s   .foo(   R   s   .foo(   t   notebook_dirt   pjoint   replacet   ost   sept   patht   existst   mkdirt   openR   t   requestR   t   raise_for_statust   assertEqualt   textt   status_codet   Truet   notebookt   contents_managert   allow_hiddent   False(
   t   selft
   not_hiddent   hiddent   dirst   nbdirt   dR   t   ft   rR   (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   test_hidden_files   sV    		
	



c      
   C   s  |  j  } t d t d ƒ t d d t d d d ƒg ƒg ƒ } t j t | d ƒ d	 d
 d ƒ } t | | d d ƒWd QXt j t | d ƒ d ƒ + } | j d t	 j
 d ƒ ƒ | j ƒ  Wd QXt j t | d ƒ d	 ƒ  } | j d ƒ | j ƒ  Wd QX|  j d d ƒ } |  j | j d ƒ |  j d | j ƒ t j | j ƒ |  j d d ƒ } |  j | j d ƒ |  j | j d d ƒ |  j | j d  d ƒ |  j t | j ƒ d ƒ |  j d d ƒ } |  j | j d ƒ |  j | j d d ƒ |  j | j d ƒ d S(    s@   make sure ContentsManager returns right files (ipynb, bin, txt).t   cellsu   Created by test Â³s
   print(2*6)t   outputst   streamR   t   12s   testnb.ipynbR   t   encodings   utf-8t   versioni   Ns   test.bint   wbs   ÿi   s   test.txtu   foobarR   s   files/testnb.ipynbiÈ   s   files/test.bins   content-types   application/octet-streami   i   s   files/test.txts   text/plain; charset=UTF-8t   foobar(   R   R   R   R   R   t   ioR   R   R   R   t   urandomt   closeR   R   R   t   assertInR   t   jsont   loadst   headerst   contentt   len(   R"   R&   t   nbR(   R)   (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   test_contents_managerO   s6    			c         C   s¿   |  j  } d } t t | d ƒ d ƒ  } | j | ƒ Wd  QX|  j d d ƒ } | j j d d ƒ } |  j d | ƒ |  j d d	 ƒ } | j j d d ƒ } |  j d | ƒ |  j d
 | ƒ d  S(   Nt   hellos   test.txtR   R   s   files/test.txts   Content-Dispositiont    t
   attachments   files/test.txt?download=1s   filename*=utf-8''test.txt(	   R   R   R   R   R   R9   t   gett   assertNotInR6   (   R"   R&   R   R(   R)   t   disposition(    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   test_downloady   s    	c         C   sf   |  j  } d } t t | d ƒ d ƒ  } | j | ƒ Wd  QX|  j d d ƒ } |  j | j d ƒ d  S(   Ns   <div>Test test</div>s	   test.htmlR   R   s   view/test.htmliÈ   (   R   R   R   R   R   R   R   (   R"   R&   t   htmlR(   R)   (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   test_view_html‰   s    	c         C   s  |  j  } t j t | d ƒ ƒ t j t | d d ƒ ƒ xÛd D]Ó} t t | | d d ƒ d ƒ  } | j | d ƒ Wd QXt t | | d d ƒ d ƒ  } | j | d	 ƒ Wd QXt t | | d ƒ d ƒ  } | j | d
 ƒ Wd QXt t | | d ƒ d ƒ  } | j | d ƒ Wd QXt d | d d ƒ } |  j d | ƒ } |  j	 | j
 d ƒ |  j	 | j | d ƒ t d | d d ƒ } |  j d | ƒ } |  j	 | j
 d ƒ |  j	 | j | d	 ƒ t d | d d ƒ } |  j d | ƒ } |  j	 | j
 d ƒ |  j	 | j | d ƒ q? Wd S(   s7   pre-2.0 'files/' prefixed links are properly redirectedR   t   subR?   s   f1.txtR   s	   /files/f1Ns   f2.txts	   /files/f2s   /f2s   f3.txts   /f3t	   notebooksR   iÈ   (   R?   RG   (   R   R   R   R   t   makedirsR   R   R   R   R   R   R   (   R"   R&   t   prefixR(   t   urlR)   (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   test_old_files_redirect“   s0    	!!(   t   __name__t
   __module__R*   R=   RD   RF   RL   (    (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyR	      s
   	7	*		
(   t   __doc__R3   R   t   unicodedataR    R   t   joinR   t   requestsR7   t   nbformatR   t   nbformat.v4R   R   R   R   t   notebook.utilsR   t   launchnotebookR   t   ipython_genutilsR   R	   (    (    (    s8   lib/python2.7/site-packages/notebook/tests/test_files.pyt   <module>   s   "