ó
ù2¢\c           @   s¸   d  Z  d d l Z d d l Z d d l Z d d l j Z d d l	 m
 Z
 d d l m Z d d l m Z d a d „  Z d	 „  Z d
 „  Z e
 e j e e ƒ d „  ƒ ƒ Z d „  Z d S(   s   Tests for file IOiÿÿÿÿN(   t
   skip_win32i   (   t   atomic_writing(   t   TemporaryDirectoryi    c          C   sS  d t  f d „  ƒ  Y}  t ƒ  .} t j j | d ƒ } t j | d ƒ  } | j d ƒ Wd  QXt j d k rœ t j	 | d ƒ t
 j t j
 | ƒ j ƒ } n  t j j | d ƒ } y t j | | ƒ t } Wn  t t t f k
 rí t } n Xt j |  ƒ - t | ƒ  } | j d	 ƒ |  ‚ Wd  QXWd  QXt j | d
 ƒ  } t j | j ƒ  d ƒ Wd  QXt | ƒ  } | j d ƒ Wd  QXt j | d
 ƒ  } t j | j ƒ  d ƒ Wd  QXt j d k rít
 j t j
 | ƒ j ƒ } t j | | ƒ n  | rIt | ƒ  } | j d ƒ Wd  QXt j | d
 ƒ  } t j | j ƒ  d ƒ Wd  QXn  Wd  QXd  S(   Nt	   CustomExcc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyR      s    t   penguint   wu   Beforet   ntiÁ  t   flamingou   Failing writet   ru   Overwrittenu   written from symlink(   t	   ExceptionR   t   ost   patht   joint	   stdlib_iot   opent   writet   namet   chmodt   statt   S_IMODEt   st_modet   symlinkt   Truet   AttributeErrort   NotImplementedErrort   OSErrort   FalseR   t   assert_raisesR   t   assert_equalt   read(   R   t   tdt   f1t   ft	   orig_modet   f2t   have_symlinkt   mode(    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   test_atomic_writing   s@    

c           C   s    t  j d ƒ a t  j t ƒ d  S(   Ni    (   R   t   umask(    (    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   _save_umaskE   s    c           C   s   t  j t ƒ d  S(   N(   R   R(   (    (    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   _restore_umaskJ   s    c          C   s  t  ƒ  ý }  t j d ƒ t j j |  d ƒ } t | ƒ  } | j d ƒ Wd  QXt j t j | ƒ j	 ƒ } t
 j | d d j | ƒ ƒ t j d ƒ t j j |  d ƒ } t | ƒ  } | j d ƒ Wd  QXt j t j | ƒ j	 ƒ } t
 j | d	 d
 j | ƒ ƒ Wd  QXd  S(   Ni   t   1u   1i¤  s   {:o} != 644i/   t   2u   2i  s   {:o} != 620(   R   R   R(   R   R   R   R   R   R   R   R   R   t   format(   R    R!   R"   R&   R$   (    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   test_atomic_writing_umaskM   s    c          C   sø  t  ƒ  é}  t j j |  d ƒ } d } | j d t j ƒ } | j d d ƒ } t j | d ƒ  } | j | ƒ Wd  QXt j | d d d ƒ } | j	 ƒ  } Wd  QXt
 j | | ƒ t j | d d d	 ƒ } | j | ƒ Wd  QXt j | d d d ƒ } | j	 ƒ  } Wd  QXt
 j | | ƒ t | d d
 ƒ } | j | ƒ Wd  QXt j | d d d ƒ } | j	 ƒ  } Wd  QXt
 j | | ƒ d } t | d d ƒ } | j | ƒ Wd  QXt j | d d d ƒ } | j	 ƒ  } Wd  QXt
 j | | ƒ Wd  QXd  S(   Nt   testfileu   a
b
c
u   
u   
R   R
   t   newlinet    s   
s   
u   crlf
crlf
(   R   R   R   R   t   replacet   linesepR   R   R   R   R   R   R   (   R    R   t   lft   platt   crlfR"   R   t   text(    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   test_atomic_writing_newlines`   s4    (   t   __doc__t   ioR   t   os.pathR   R   t
   nose.toolst   toolsR   t#   ipython_genutils.testing.decoratorsR    t   fileioR   t   ipython_genutils.tempdirR   R(   R'   R)   R*   t
   with_setupR.   R8   (    (    (    sK   lib/python2.7/site-packages/notebook/services/contents/tests/test_fileio.pyt   <module>   s   	1		