;
Ëâ"Ic               @   sâ   d  Z  d d l Z d d l m Z m Z m Z d d l m Z d d l Z d d l	 Z	 d d l
 m Z d d l m Z m Z d d „ Z d	 „  Z Gd
 „  d e j ƒ Z Gd „  d e j ƒ Z d „  Z e d k o e ƒ  n d S(   u,   
Tests for fileinput module.
Nick Mathewson
i    N(   u   verboseu   TESTFNu   run_unittest(   u   unlink(   u   StringIO(   u	   FileInputu   hook_encodedu   wc             C   sK   t  t |  ƒ } t | | ƒ } x | D] } | j | ƒ q& W| j ƒ  | S(   N(   u   TESTFNu   stru   openu   writeu   close(   u   iu   linesu   modeu   nameu   fu   line(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   writeTmp   s     
c              G   s*   x# |  D] } | o t  | ƒ q q Wd  S(   N(   u   safe_unlink(   u   namesu   name(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   remove_tempfiles   s     c             B   s&   |  Ee  Z d  „  Z d d d „ Z d S(   c             C   sæ   xß d d f D]Ñ \ } } d  } } } } zœ t d d „  t d ƒ Dƒ ƒ } t d d „  t d ƒ Dƒ ƒ } t d	 d
 „  t d ƒ Dƒ ƒ } t d d „  t d ƒ Dƒ ƒ } |  j | | | | | | ƒ Wd  t | | | | ƒ Xq Wd  S(   Ni    i   i   c             S   s#   g  } |  ] } | d  | d q
 S(   u   Line %s of file 1
i   (    (   u   .0u   _[1]u   i(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu
   <listcomp>'   s    i   i   c             S   s#   g  } |  ] } | d  | d q
 S(   u   Line %s of file 2
i   (    (   u   .0u   _[1]u   i(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu
   <listcomp>(   s    i
   i   c             S   s#   g  } |  ] } | d  | d q
 S(   u   Line %s of file 3
i   (    (   u   .0u   _[1]u   i(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu
   <listcomp>)   s    i   i   c             S   s#   g  } |  ] } | d  | d q
 S(   u   Line %s of file 4
i   (    (   u   .0u   _[1]u   i(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu
   <listcomp>*   s    (   i    i    (   i   i   (   u   Noneu   writeTmpu   rangeu   buffer_size_testu   remove_tempfiles(   u   selfu   roundu   bsu   t1u   t2u   t3u   t4(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   test_buffer_sizes"   s      i    c             C   sË  t  j d ƒ } d | d } t o t d | d | f ƒ n t d | | | | f d | ƒ }	 t |	 ƒ }
 |	 j ƒ  |  j t |
 ƒ d ƒ |  j |
 d	 d
 ƒ |  j |
 d d ƒ |  j |	 j	 ƒ  d ƒ |  j |	 j
 ƒ  | ƒ t o t d | d | f ƒ n t d | | | | f d | ƒ }	 d } x% | o | d k o |	 j ƒ  } q.W|  j |	 j
 ƒ  | ƒ |  j |	 j	 ƒ  d ƒ |  j |	 j ƒ  d ƒ |  j |	 j ƒ  ƒ |  j |	 j ƒ  ƒ t o t d | d | f ƒ n |	 j ƒ  |  j |	 j ƒ  d ƒ |  j |	 j	 ƒ  d ƒ |	 j ƒ  t o t d | d | f ƒ n t d | | | | d f d | ƒ }	 t j } zi t d ƒ t _ t |	 ƒ }
 |  j t |
 ƒ d ƒ |  j |
 d d ƒ |  j |	 j
 ƒ  d ƒ |	 j ƒ  Wd  | t _ Xt o t d | d	 | f ƒ n t d | | | | f d | ƒ }	 |  j |	 j	 ƒ  d ƒ |  j |	 j
 ƒ  d  ƒ |	 j ƒ  |  j |	 j	 ƒ  d ƒ |  j |	 j
 ƒ  d  ƒ t o t d | d | f ƒ n t j } zf t d | | | | f d  d d | ƒ }	 x. |	 D]& } | d  d! … j ƒ  } t | ƒ qçW|	 j ƒ  Wd  | t _ Xt d | | | | f d | ƒ }	 xp |	 D]h } |  j | d! d" ƒ | j | d  d! … ƒ } |  j | d  ƒ |  j t | j d ƒ ƒ |	 j ƒ  ƒ qQW|	 j ƒ  d  S(#   Nu   LINE (\d+) OF FILE (\d+)i   i   u   %s. Simple iteration (bs=%s)i    u   filesu   bufsizei   i   u   Line 5 of file 1
i   u   Line 1 of file 4
u   %s. Status variables (bs=%s)u   xu   Line 6 of file 2
i   u   %s. Nextfile (bs=%s)i   u   Line 1 of file 3
i   u   %s. Stdin (bs=%s)i   u   -u    Line 1 of stdin
Line 2 of stdin
i!   i    u   Line 2 of stdin
u   <stdin>u   %s. Boundary conditions (bs=%s)u   %s. Inplace (bs=%s)i   u   inplaceiÿÿÿÿu   
(   u   reu   compileu   verboseu   printu	   FileInputu   listu   closeu   assertEqualu   lenu   linenou   filenameu   readlineu
   filelinenou   failIfu   isfirstlineu   isstdinu   nextfileu   sysu   stdinu   StringIOu   Noneu   stdoutu   upperu   matchu   assertNotEqualu   intu   group(   u   selfu   t1u   t2u   t3u   t4u   bsu   roundu   patu   startu   fiu   linesu   su	   savestdinu
   savestdoutu   lineu   m(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   buffer_size_test/   sŠ    !
! 

$	
!
	' 
! )N(   u   __name__u
   __module__u   test_buffer_sizesu   buffer_size_test(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   BufferSizesTests!   s   
	u   BufferSizesTestsc             B   s;   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d S(   c             C   sW  d  } } } } z*t d d g ƒ } t d d g ƒ } t d d g ƒ } t d d g ƒ } t d | | | | f ƒ } | j ƒ  } |  j | d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  | ƒ | j ƒ  } |  j | ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  | ƒ | j	 ƒ  Wd  t
 | | | | ƒ Xd  S(	   Ni   u    i   i   u   The only line there is.
i   u   filesi    (   u   Noneu   writeTmpu	   FileInputu   readlineu   assertEqualu   linenou
   filelinenou   filenameu   failIfu   closeu   remove_tempfiles(   u   selfu   t1u   t2u   t3u   t4u   fiu   line(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   test_zero_byte_files}   s&    c             C   s¶   d  } } z— t d d g ƒ } t d d g ƒ } t d | | f ƒ } t | ƒ } |  j | d d d d	 d
 d g ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ Wd  t | | ƒ Xd  S(   Ni   u   A
B
Ci   u   D
E
Fu   filesu   A
u   B
u   Cu   D
u   E
u   Fi   i   (   u   Noneu   writeTmpu	   FileInputu   listu   assertEqualu
   filelinenou   linenou   remove_tempfiles(   u   selfu   t1u   t2u   fiu   lines(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu%   test_files_that_dont_end_with_newline•   s    
"c          
   C   sÖ   d  } } z· t d d g ƒ } t d d g ƒ } t d | | f ƒ } |  j | j ƒ  d ƒ t | ƒ } |  j | j ƒ  d ƒ | j ƒ  |  j | j ƒ  d ƒ t | ƒ } |  j | j ƒ  d ƒ Wd  t	 | | ƒ Xd  S(   Ni   u   A
Bi   u   C
Du   filesiÿÿÿÿ(
   u   Noneu   writeTmpu	   FileInputu   assertEqualu   filenou   nextu   assertNotEqualu   nextfileu   listu   remove_tempfiles(   u   selfu   t1u   t2u   fiu   line(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   test_fileno°   s    

c             C   s¨   y  t  d d ƒ } |  j d ƒ Wn t k
 o Yn Xd  } zY t d d g d d ƒ} t  d | d d ƒ } t | ƒ } |  j | d	 d
 d d g ƒ Wd  t | ƒ Xd  S(   Nu   modeu   wu-   FileInput should reject invalid mode argumenti   s   A
B
CDu   wbu   filesu   Uu   A
u   B
u   C
u   D(   u	   FileInputu   failu
   ValueErroru   Noneu   writeTmpu   listu   assertEqualu   remove_tempfiles(   u   selfu   fiu   t1u   lines(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   test_opening_modeÀ   s     c             C   s{   y) t  d d d d „  ƒ } |  j d ƒ Wn t k
 o Yn Xy  t  d d ƒ } |  j d ƒ Wn t k
 o Yn Xd  S(   Nu   inplacei   u   openhookc             S   s   d  S(   N(   u   None(   u   fu   m(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   <lambda>Ô   s    uG   FileInput should raise if both inplace and openhook arguments are givenu2   FileInput should check openhook for being callable(   u	   FileInputu   failu
   ValueError(   u   selfu   fi(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   test_file_opening_hookÑ   s    N(   u   __name__u
   __module__u   test_zero_byte_filesu%   test_files_that_dont_end_with_newlineu   test_filenou   test_opening_modeu   test_file_opening_hook(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   FileInputTests|   s
   
				u   FileInputTestsc               C   s   t  t t ƒ d  S(   N(   u   run_unittestu   BufferSizesTestsu   FileInputTests(    (    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu	   test_mainê   s    u   __main__(   u   __doc__u   unittestu   test.supportu   verboseu   TESTFNu   run_unittestu   unlinku   safe_unlinku   sysu   reu   iou   StringIOu	   fileinputu	   FileInputu   hook_encodedu   writeTmpu   remove_tempfilesu   TestCaseu   BufferSizesTestsu   FileInputTestsu	   test_mainu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_fileinput.pyu   <module>   s   		[n	