
    Ib                         d Z ddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 dad Z G d dej                        Zd	 Zy)
zTests for file IO    N   )atomic_writing)TemporaryDirectoryc                      G d dt               } t               5 }t        j                  j	                  |d      }t        |d      5 }|j                  d       d d d        t        j                  dk7  rHt        j                  |d       t        j                  t        j                  |      j                        }t        j                  j	                  |d      }	 t        j                  ||       d	}t!        j"                  |       5  t%        |      5 }|j                  d       | # 1 sw Y   xY w# t        t        t        f$ r d
}Y Yw xY w# 1 sw Y   nxY w	 d d d        n# 1 sw Y   nxY wt        |      5 }|j'                         dk(  sJ 	 d d d        n# 1 sw Y   nxY wt%        |      5 }|j                  d       d d d        n# 1 sw Y   nxY wt        |      5 }|j'                         dk(  sJ 	 d d d        n# 1 sw Y   nxY wt        j                  dk7  r9t        j                  t        j                  |      j                        }|k(  sJ |rit%        |      5 }|j                  d       d d d        n# 1 sw Y   nxY wt        |      5 }|j'                         dk(  sJ 	 d d d        n# 1 sw Y   nxY wd d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy)&test_atomic_writing.<locals>.CustomExcN)__name__
__module____qualname__     N/usr/lib/python3/dist-packages/notebook/services/contents/tests/test_fileio.py	CustomExcr      s    r   r   penguinwBeforenti  flamingoTFzFailing writeOverwrittenzwritten from symlink)	Exceptionr   ospathjoinopenwritenamechmodstatS_IMODEst_modesymlinkAttributeErrorNotImplementedErrorOSErrorpytestraisesr   read)r   tdf1f	orig_modef2have_symlinkmodes           r   test_atomic_writingr/      ss   I  
	 ,:WW\\"i("c] 	aGGH	 77d?HHRRWWR[%8%89IWW\\"j)	!JJr2L ]]9% 	 #  q()	 	  3W= 	! !L		!     	  	  	  "X 	(668x'''	( 	( 	( B 	#1GGM"	# 	# 	# "X 	-668},,,	- 	- 	- 77d?<< 3 34D9$$$# 0q./0 0 0 b :Qvvx#9999: : :W,: ,: ,:s   -KD*BKD65K
E(E*D3	/K6EKEKEE(	K(E1	-K?F	KF(	$K6G	KG	K(H?	KH	A K-J?	KJ	KJ?6	K?K	KKc                   x    e Zd Zd Zd Zej                  j                  ej                  dk(  d      d        Z
y)TestWithSetUmaskc                 `    t        j                  d      at        j                  t               y )Nr   r   umaskselfs    r   setUpzTestWithSetUmask.setUpE   s     
r   c                 6    t        j                  t               y )Nr3   r5   s    r   tearDownzTestWithSetUmask.tearDownK   s    
r   win32zdo not run on windows)reasonc                    t               5 }t        j                  d       t        j                  j	                  |d      }t        |      5 }|j                  d       d d d        t        j                  t        j                  |      j                        }|dk(  sJ t        j                  d       t        j                  j	                  |d      }t        |      5 }|j                  d       d d d        t        j                  t        j                  |      j                        }|dk(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)N   1i  /   2i  )
r   r   r4   r   r   r   r   r   r   r    )r6   r(   r)   r*   r.   r,   s         r   test_atomic_writing_umaskz*TestWithSetUmask.test_atomic_writing_umaskO   s   ! 	!RHHUOb#&B# q<< 3 34D5= =HHUOb#&B# q<< 3 34D5= =	! 	!  	! 	!s>   AED<BEE1AE<E	EE	EEN)r	   r
   r   r7   r9   r%   markskipifsysplatformrA   r   r   r   r1   r1   D   s?     [[/8OP! Q!r   r1   c                  V   t               5 } t        j                  j                  | d      }d}|j	                  dt        j
                        }|j	                  dd      }t        |d      5 }|j                  |       d d d        t        |d      5 }|j                         }d d d        |k(  sJ t        |dd      5 }|j                  |       d d d        t        |d      5 }|j                         }d d d        ||k(  sJ t        |d      5 }|j                  |       d d d        t        |d      5 }|j                         }d d d        ||k(  sJ d}t        |d      5 }|j                  |       d d d        t        |d      5 }|j                         }d d d        ||k(  sJ 	 d d d        y # 1 sw Y   @xY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)	Ntestfileza
b
c

z
r    )newlinezcrlf
crlf
)
r   r   r   r   replacelinesepr   r   r'   r   )r(   r   lfplatcrlfr*   r'   texts           r   test_atomic_writing_newlinesrQ   a   s   		 "ww||B
+zz$

+zz$' $_ 	GGBK	$# 	q668D	t|| $T* 	aGGBK	$# 	q668D	rzz D&1 	QGGBK	$# 	q668D	t|| "D"- 	GGDM	$# 	q668D	t||E" "	 		 	
	 		 	
	 		 		 		 	A" "s   A!H,F<>HG	$HGH(G#9HG/'H<G;H+H=HH#H<G	H	G	HG 	H#G,	(H/G8	4H;H	 HH	HH	HH()__doc__os.pathr   unittestr%   r   rD   fileior   ipython_genutils.tempdirr   r4   r/   TestCaser1   rQ   r   r   r   <module>rX      sA    
     
 # 7	0:d!x(( !:#r   