
"Ic           @  sg  d  Z  d d k l Z d d k l Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k	 Z	 d d k
 Z
 d d k l Z l Z d d k l Z d d k Z d d k Z d e i f d     YZ d	 e i f d
     YZ d e i f d     YZ d e
 i f d     YZ d f  d     YZ d e e
 i f d     YZ d e e
 i f d     YZ d e
 i f d     YZ d e
 i f d     YZ d e
 i f d     YZ d e
 i f d     YZ d e i  f d     YZ! e i" e! i#  d e
 i f d      YZ$ d! e
 i f d"     YZ% d# e
 i f d$     YZ& d%   Z' e( d& j o e
 i)   n d S('   u   Unit tests for io.py.i(   t   print_function(   t   unicode_literalsN(   t   chaint   cycle(   t   test_supportt	   MockRawIOc           B  s_   e  Z d	 d   Z d
 d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(   c         C  s   t  |  |  _ g  |  _ d  S(   N(   t   listt   _read_stackt   _write_stack(   t   selft
   read_stack(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   __init__   s    c         C  s#   y |  i  i d  SWn d SXd  S(   Ni    t    (   R   t   pop(   R	   t   n(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   read   s    c         C  s   |  i  i |  t |  S(   N(   R   t   appendt   len(   R	   t   b(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   write   s    c         C  s   t  S(   N(   t   True(   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   writable#   s    c         C  s   d S(   Ni*   (    (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   fileno&   s    c         C  s   t  S(   N(   R   (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   readable)   s    c         C  s   t  S(   N(   R   (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   seekable,   s    c         C  s   d  S(   N(    (   R	   t   post   whence(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   seek/   s    c         C  s   d S(   Ni*   (    (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   tell2   s    (    N(   t   __name__t
   __module__R   t   NoneR   R   R   R   R   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR      s   						t
   MockFileIOc           B  s   e  Z d    Z d d  Z RS(   c         C  s    g  |  _  t i i |  |  d  S(   N(   t   read_historyt   iot   BytesIOR   (   R	   t   data(    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   8   s    	c         C  sC   t  i i |  |  } |  i i | d  j o d  n
 t |   | S(   N(   R"   R#   R   R!   R   R   R   (   R	   R   t   res(    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   <   s    *N(   R   R   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR    6   s   	t   MockNonBlockWriterIOc           B  s#   e  Z d    Z d   Z d   Z RS(   c         C  s   t  |  |  _ g  |  _ d  S(   N(   R   t   _blocking_scriptR   (   R	   t   blocking_script(    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   D   s    c         C  sR   |  i  i |  |  i i d  } | d j  o t i d d |   n | Sd  S(   Ni    u   test blocking(   R   R   R'   R   R"   t   BlockingIOError(   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   H   s
    c         C  s   t  S(   N(   R   (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   P   s    (   R   R   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR&   B   s   		t   IOTestc           B  s   e  Z d    Z d   Z e d  Z d Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C  s   t  i t  i  d  S(   N(   R   t   unlinkt   TESTFN(   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   tearDownV   s    c         C  s_  |  i  | i d  d  |  i  | i d  d  |  i  | i d  d  |  i  | i   d  |  i  | i d d  d  |  i  | i   d  |  i  | i t d   d	  |  i  | i d  d  |  i  | i d
  d  |  i  | i d d  d  |  i  | i   d  |  i  | i d  d  |  i  | i   d  |  i t | i d  d  S(   Ns   blah.i   i    s   Hello.i   ii   s	    world


i	   t   hi   i   i   g        (   t   assertEqualR   R   R   t	   bytearrayt   truncatet   assertRaisest	   TypeError(   R	   t   f(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt	   write_opsY   s    c         C  s7  | i  d  } |  i | d  t |  } |  i | i |  d  |  i | d  |  i | i |  d  |  i t |  d  |  i | d  d  |  i | i d  d  |  i | i  d  d  |  i | i  d	  d
  |  i | i t d   d  |  i | i d d  d  |  i | i  d  d  |  i | i  d  d
  |  i | i t    d  |  i | i d d	  d  |  i | i  d  d  |  i | i   d  |  i t | i d  | o` | i d  |  i | i    d  | i d  |  i | i    d  |  i | i    d
  n d  S(   Ni   t   hellos    worli   s   d
i    i   s   hello world
i   R   t   xii   t   worldi
   g        s   world
(	   R   R/   R0   t   readintoR   R   R   R2   R3   (   R	   R4   t   bufferedR$   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   read_opsi   s4    i   i   c         C  s  |  i  | i |  i  |  i  |  i  | i   |  i  |  i  | i d  d  |  i  | i   |  i d  |  i  | i d d  |  i d  |  i  | i   |  i d  |  i  | i   |  i d  |  i  | i d d  |  i d  |  i  | i |  i d  |  i d  |  i  | i   |  i d  |  i  | i d d  |  i d  |  i  | i d d  |  i  |  i  | i d  d  d  S(   Nt   xxxi   ii   i   i    R7   (   R/   R   t   LARGER   R   R1   R   (   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   large_file_ops   s    ##'#c         C  s   t  i t i d d d } |  i | i   t  |  i | i   t  |  i | i	   t  |  i
 |  | i   t  i t i d d d } |  i | i   t  |  i | i   t  |  i | i	   t  |  i |  | i   d  S(   Nu   wbt	   bufferingi    u   rb(   R"   t   openR   R,   R/   R   t   FalseR   R   R   R5   t   closeR;   (   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_raw_file_io   s    
c         C  s   t  i t i d  } |  i | i   t  |  i | i   t  |  i | i	   t  |  i
 |  | i   t  i t i d  } |  i | i   t  |  i | i   t  |  i | i	   t  |  i | t  | i   d  S(   Nu   wbu   rb(   R"   R@   R   R,   R/   R   RA   R   R   R   R5   RB   R;   (   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_buffered_file_io   s    
c         C  s   t  i t i d  } | i d  | i   t  i t i d  } |  i | i   d  |  i | i d  d  |  i | i d  d  |  i | i d	  d
  |  i | i   d  | i   d  S(   Nu   wbs   abc
def
xyzzy
foou   rbs   abc
i
   s   def
i   t   xyi   s   zzy
t   foo(   R"   R@   R   R,   R   RB   R/   t   readline(   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_readline   s    
c         C  sX   t  i   } |  i |  | i   } |  i | d  t  i |  } |  i | t  d  S(   Ns   hello world
(   R"   R#   R5   t   getvalueR/   R;   R   (   R	   R4   R$   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_raw_bytes_io   s    c         C  s   t  i d  d j p t  i d j o` t i d  pL t d t  i d t  i t d |  i d t  i t d	 d t  i d  Sn t i t i	 d
 d  } |  i
 |  | i   t i t i	 d
  } |  i
 |  | i   d  S(   Ni   u   winu   os2u   darwinu	   largefileu&   
Testing large file ops skipped on %s.t   fileu%   It requires %d bytes and a long time.u1   Use 'regrtest.py -u largefile test_io' to run it.u   w+bi    (   u   winu   os2(   t   syst   platformR   t   is_resource_enabledt   printt   stderrR=   R"   R@   R,   R>   RB   (   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_large_file_ops   s    $

	
	
c         C  s   x d D] } d  } t t i d |  i i   } z | ~ } | i d  Wd  QX|  i | i t	  d  } y> t t i d |  i i   } z | ~ } d d Wd  QXWn& t
 j
 o |  i | i t	  q X|  i d  q Wd  S(   Ni    i   id   u   wbR<   u   1/0 didn't raise an exception(   i    i   id   (   R   R@   R   R,   t   __exit__t	   __enter__R   R/   t   closedR   t   ZeroDivisionErrort   fail(   R	   t   bufsizeR4   t   _[1]t   _[2](    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_with_open   s     ,,c           sd   g    d t  i f   f d     Y} | t i d  } | i d  ~ |  i   d d d g  d  S(   Nt   MyFileIOc             s5   e  Z   f d    Z   f d   Z   f d   Z RS(   c           s!     i  d  t i i |   d  S(   Ni   (   R   R"   t   FileIOt   __del__(   R	   (   t   record(    s)   /mit/python/lib/python2.6/test/test_io.pyR]      s    c           s!     i  d  t i i |   d  S(   Ni   (   R   R"   R\   RB   (   R	   (   R^   (    s)   /mit/python/lib/python2.6/test/test_io.pyRB      s    c           s!     i  d  t i i |   d  S(   Ni   (   R   R"   R\   t   flush(   R	   (   R^   (    s)   /mit/python/lib/python2.6/test/test_io.pyR_      s    (   R   R   R]   RB   R_   (    (   R^   (    s)   /mit/python/lib/python2.6/test/test_io.pyR[      s   u   wu   xxxi   i   i   (   R"   R\   R   R,   R   R/   (   R	   R[   R4   (    (   R^   s)   /mit/python/lib/python2.6/test/test_io.pyt   test_destructor   s    
c         C  se   t  i t i d  } | i d  | i   t  i t i d  } |  i | i   d  | i   d  S(   Nu   wbR<   u   rb(   R"   R@   R   R,   R   RB   R/   R   (   R	   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_close_flushes   s    
c         C  s   t  i  d t d   } t t |   } t i t i d d  } |  i | i	 |  |  | i
   t i t i d  } |  i | i	 |  |  | i
   d  S(   Nu   ii
   u   wbi    (   t   arrayt   rangeR   t
   memoryviewR"   R@   R   R,   R/   R   RB   (   R	   t   aR   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   XXXtest_array_writes  s    
c         C  s&   |  i  t t i t i d d t d  S(   Nu   wt   closefd(   R2   t
   ValueErrorR"   R@   R   R,   RA   (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_closefd  s    l        (   R   R   R-   R5   RA   R;   R=   R>   RC   RD   RH   RJ   RQ   RZ   R`   Ra   Rf   Ri   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR*   T   s   												t   MemorySeekTestMixinc           B  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C  s"   |  i  d  } |  i |  } d  S(   Nu
   1234567890(   t   buftypet   ioclass(   R	   t   buft   bytesIo(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testInit  s    c         C  s   |  i  d  } |  i |  } |  i | d  | i d   |  i | d d !| i d   |  i | d | i d   |  i |  i | i    d  S(   Nu
   1234567890i   i   i   i  (   Rk   Rl   t   assertEqualsR   t   EOF(   R	   Rm   Rn   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testRead  s     c         C  sQ   |  i  d  } |  i |  } |  i | | i    |  i |  i | i    d  S(   Nu
   1234567890(   Rk   Rl   Rp   R   Rq   (   R	   Rm   Rn   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadNoArgs"  s    c         C  s   |  i  d  } |  i |  } | i d  | i d  |  i | | i    | i d  |  i | d | i    |  i t | i d  d  S(   Nu
   1234567890i   i    i   g        (   Rk   Rl   R   R   Rp   R2   R3   (   R	   Rm   Rn   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testSeek)  s    c         C  s~   |  i  d  } |  i |  } |  i d | i    | i d  |  i d | i    | i d  |  i d | i    d  S(   Nu
   1234567890i    i   i'  (   Rk   Rl   Rp   R   R   (   R	   Rm   Rn   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testTell5  s    (   R   R   Ro   Rr   Rs   Rt   Ru   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyRj     s
   					t   BytesIOTestc           B  s&   e  Z e d     Z e i Z d Z RS(   c         C  s   |  i  d  S(   Nu   utf-8(   t   encode(   t   s(    (    s)   /mit/python/lib/python2.6/test/test_io.pyRk   A  s    R   (   R   R   t   staticmethodRk   R"   R#   Rl   Rq   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyRv   @  s   	t   StringIOTestc           B  s   e  Z e Z e i Z d  Z RS(   u    (   R   R   t   strRk   R"   t   StringIORl   Rq   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyRz   H  s   	t   BufferedReaderTestc           B  sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C  s8   t  d  } t i |  } |  i d | i d   d  S(   Nt   abct   dt   efgt   abcdefi   (   s   abcR   R   (   R   R"   t   BufferedReaderRp   R   (   R	   t   rawiot   bufio(    (    s)   /mit/python/lib/python2.6/test/test_io.pyRr   P  s    c         C  s  d } t  |  } d d d d d g | d g g d d d d g | g g d d d d d g d d d g g g } x | D] \ } } } t |  } t i | d	 | } d }	 x< | D]4 }
 |  i | i |
  | |	 |	 |
 ! |	 |
 7}	 q W|  i | i |  qv Wd  S(
   Nt	   abcdefghiid   i   i   i   i   i    i   t   buffer_size(   R   R    R"   R   Rp   R   R!   (   R	   R$   t   dlent   testsRW   t   buf_read_sizest   raw_read_sizesR   R   R   t   nbytes(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testBufferingV  s    '  $c         C  s   t  d
  } t i |  } |  i d | i d   |  i d | i d   |  i d | i    |  i d  | i   j  |  i d	 | i    d  S(   NR~   R   R   t   abcdi   t   ei   t   fgR   (   s   abcR   Ns   efgNN(   R   R   R"   R   Rp   R   t   assert_(   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadNonBlockingi  s    c         C  s8   t  d  } t i |  } |  i d | i d   d  S(   NR~   R   R   t   abcdefgi(#  (   s   abcR   s   efg(   R   R"   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadToEoft  s    c         C  s5   t  d  } t i |  } |  i d | i    d  S(   NR~   R   R   R   (   s   abcR   s   efg(   R   R"   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyRs   z  s    c         C  s5   t  d  } t i |  } |  i d | i    d  S(   NR~   R   R   i*   (   s   abcR   s   efg(   R   R"   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt
   testFileno  s    c         C  s   d  S(   N(    (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testFilenoNoFileno  s    c           s  zd } t  d  | } t i |  t t |   } t i t i d  i	 i
   } z | ~ } | i |  Wd  QXt i t i d d d i	 i
   } z| ~ } t i | d   g   g        f d   } g  } t  d	  D] }	 | t i d
 |  q ~ }
 x |
 D] } | i   qWt i d  x |
 D] } | i   q>W|  i  d   d i    } xB t  d  D]4 } t t | g   } |  i | i |  |  qWWd  QXWd  t i t i  Xd  S(   Ni  i   u   wbu   rbR?   i    i   c            su   yI xB t  d d g  D]. }   i |   } | p Pn  i |  q WWn% t j
 o }   i |    n Xd  S(   Ni   i   (   R   R   R   t	   Exception(   R   Rx   R   (   t   errorst   resultsR   (    s)   /mit/python/lib/python2.6/test/test_io.pyR4     s     i   t   targetg{Gz?u(   the following exceptions were caught: %rR   (   Rc   t   randomt   shufflet   bytesR0   R"   R@   R   R,   RR   RS   R   R   t	   threadingt   Threadt   startt   timet   sleept   joint   assertFalseR/   t   countR+   (   R	   t   Nt   lRx   RX   R4   RY   t   rawt   _[3]R7   t   threadst   tt   it   c(    (   R   R   R   s)   /mit/python/lib/python2.6/test/test_io.pyt   testThreads  s8    ,23  	 '(
   R   R   Rr   R   R   R   Rs   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR}   N  s   							t   BufferedWriterTestc           B  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C  s<   t    } t i | d  } | i d  |  i | i  d  S(   Ni   R~   (   R   R"   t   BufferedWriterR   R   R   (   R	   t   writerR   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt	   testWrite  s    	c         C  sP   t    } t i | d  } | i d  | i d  |  i d | i d  d  S(   Ni   R~   t	   defghijklt   abcdefghijkli    (   R   R"   R   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testWriteOverflow  s
    	c         C  s   t  d  } t i | d d  } | i d	  | i d
  |  i d | i d  | i d  |  i d | i d  | i d  |  i d | i d  |  i d | i d  | i d  d  S(   Ni	   i   i   ii
   i   i   i   t   asdft   asdfat	   asdfasdfai    t   asdfasdfasdfi   t
   dfasdfasdfi   (   i	   i   i   ii
   i   i   (   R&   R"   R   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testWriteNonBlocking  s    c         C  s5   t  d  } t i |  } |  i d | i    d  S(   NR~   R   R   i*   (   s   abcR   s   efg(   R   R"   R   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s    c         C  sM   t    } t i | d  } | i d  | i   |  i d | i d  d  S(   Ni   R~   i    (   R   R"   R   R   R_   Rp   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt	   testFlush  s
    	
c           s  z t  i t i d d d i i   } z | ~ } t  i | d   g       f d   } g  } t d  D] } | t i	 d |  qp ~ } x | D] } | i
   q Wt i d  x | D] } | i   q W|  i   d	    Wd  QXWd  t i t i  Xd  S(
   Nu   wbR?   i    i   c            sZ   y. d }  x! t  d  D] }  i |   q WWn% t j
 o }   i |    n Xd  S(   NRe   i   i2   t   aaaaaaaaaaaaaaaaaaa(   Rc   R   R   R   (   Rx   R   R   (   R   R   (    s)   /mit/python/lib/python2.6/test/test_io.pyR4     s     i   R   g{Gz?u(   the following exceptions were caught: %r(   R"   R@   R   R,   RR   RS   R   Rc   R   R   R   R   R   R   R   R+   (   R	   RX   R   R4   RY   R7   R   R   (    (   R   R   s)   /mit/python/lib/python2.6/test/test_io.pyR     s     2	3  	(   R   R   R   R   R   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s   								t   BufferedRWPairTestc           B  s   e  Z d    Z RS(   c         C  s+   t  d  } t    } t i | |  } d  S(   N(    (   R   R"   t   BufferedRWPair(   R	   t   rt   wt   pair(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt
   testRWPair  s    	(   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s   t   BufferedRandomTestc           B  s   e  Z d    Z d   Z RS(   c         C  s   t  d  } t i | d d  } |  i d | i d   | i d  | i d  |  i | i  |  i d | i    |  i d	 | i d
  d  S(   NR   t   ghjki   i   t   asi   t   dddt   eeet   dddeeei    (   s   asdfR   (	   R   R"   t   BufferedRandomR/   R   R   R   R   Rp   (   R	   R   t   rw(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadAndWrite  s    c         C  s>  t  i d  } t  i |  } |  i d | i d   |  i d | i    | i d d  |  i d | i d   | i d  | i d d  |  i d | i    |  i d | i    | i d	 d  |  i d
 | i    | i d d  |  i d | i    |  i d | i d   |  i t	 | i d  d  S(   Nt	   asdfghjklR   i   i    R   i   t	   asdfasdfli	   ii   i   i   t   fli   g        (
   R"   R#   R   Rp   R   R   R   R   R2   R3   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testSeekAndTell&  s     (   R   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s   	t   StatefulIncrementalDecoderc           B  sh   e  Z d  Z d d  Z d   Z d   Z d   Z d   Z e d  Z	 d   Z
 e Z e d	    Z RS(
   u  
    For testing seek/tell behavior with a stateful, buffering decoder.

    Input is a sequence of words.  Words may be fixed-length (length set
    by input) or variable-length (period-terminated).  In variable-length
    mode, extra periods are ignored.  Possible words are:
      - 'i' followed by a number sets the input length, I (maximum 99).
        When I is set to 0, words are space-terminated.
      - 'o' followed by a number sets the output length, O (maximum 99).
      - Any other word is converted into a word followed by a period on
        the output.  The output word consists of the input word truncated
        or padded out with hyphens to make its length equal to O.  If O
        is 0, the word is output verbatim without truncating or padding.
    I and O are initially set to 1.  When I changes, any buffered input is
    re-scanned according to the new I.  EOF also terminates the last word.
    u   strictc         C  s!   t  i i |  |  |  i   d  S(   N(   t   codecst   IncrementalDecoderR   t   reset(   R	   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   W  s    c         C  s   d t  |   S(   Nu   <SID %x>(   t   id(   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   __repr__[  s    c         C  s"   d |  _  d |  _ t   |  _ d  S(   Ni   (   R   t   oR0   t   buffer(   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   ^  s    		c         C  s6   |  i  d A|  i d A} } t |  i  | d | f S(   Ni   id   (   R   R   R   R   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   getstatec  s    c         C  sO   | \ } } t  |  |  _ t | d  \ } } | d A| d A|  _ |  _ d  S(   Nid   i   (   R0   R   t   divmodR   R   (   R	   t   stateR   R"   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   setstateg  s    c         C  s   d } x | D] } |  i  d j oC | d j o" |  i o | |  i   7} qb q |  i i |  q |  i i |  t |  i  |  i  j o | |  i   7} q q W| o |  i o | |  i   7} n | S(   Nu    i    u   .(   R   R   t   process_wordR   R   (   R	   t   inputt   finalt   outputR   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   decodem  s     
c         C  s   d } |  i  d t d  j o* t d t |  i  d p d   |  _ n |  i  d t d  j o* t d t |  i  d p d   |  _ nc |  i  i d  } t |  |  i j  o | d |  i 7} n |  i o | |  i  } n | d	 7} t   |  _  | S(
   Nu    i    u   iic   i   u   ou   asciiu   -u   .(	   R   t   ordt   mint   intR   R   R   R   R0   (   R	   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   ~  s    **

c         C  sP   |  i  oB | d j o5 t i d d d d  d d  d d  d d  d d  d |   Sd  S(	   Nu   test_decodert   nameRw   R   t   incrementalencodert   streamreadert   streamwritert   incrementaldecoder(   t   codecEnabledR   t	   CodecInfoR   (   t   clsR   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   lookupTestDecoder  s    	(   R   R   t   __doc__R   R   R   R   R   RA   R   R   R   t   classmethodR   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR   E  s   					t   StatefulIncrementalDecoderTestc        
   B  s   e  Z d  Z d e d f d e d f d e d f d e d f d e d	 f d
 e d f d e d d d d d d d d d d f g Z d   Z RS(   uB   
    Make sure the StatefulIncrementalDecoder actually works.
    R   u   a.b.c.d.t   oiabcdu   abcd.s   oi...abcd...s   i.o6.x.xyz.toolongtofit.u   x-----.xyz---.toolon.s
   i.i2.o6xyzu   xy----.z-----.s   i.o3.i6.abcdefghijklmnopu   abc.ghi.mno.s;   i.o29.a.b.cde.o15.abcdefghijabcdefghij.i3.a.b.c.d.ei00k.l.mu   a----------------------------.u   b----------------------------.u   cde--------------------------.u   abcdefghijabcde.u   a.b------------.u   .c.------------.u   d.e------------.u   k--------------.u   l--------------.u   m--------------.c         C  s   x? |  i  D]4 \ } } } t   } |  i | i | |  |  q
 Wt   } |  i | i d  d  |  i | i d d  d  d  S(   NR   u    R   i   u   abcd.(   t
   test_casesR   Rp   R   (   R	   R   t   eofR   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testDecoder  s    
 	 	(   R   R   R   RA   R   R   R   (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s   	#t   TextIOWrapperTestc           B  s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z d	   Z d
   Z
 d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C  s   d |  _  d i d  |  _ d  S(   Ns   AAA
BBBCCC
DDD
EEE
s   AAA
BBB
CCC
DDD
EEE
u   ascii(   t   testdataR   t
   normalized(   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   setUp  s    	c         C  s   t  i t  i  d  S(   N(   R   R+   R,   (   R	   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR-     s    c         C  s   t  i   } t  i | d  } t  i | d d d t } | i d  |  i | i   d  | i d  |  i | i   d  | i d	  |  i | i   d
  d  S(   Ni  t   newlineu   
t   line_bufferingu   XR   u   Y
Zs   XY
Zu   ABs   XY
ZAB(   R"   R#   R   t   TextIOWrapperR   R   Rp   RI   (   R	   R   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testLineBuffering  s    c         C  s   t  i d  } t  i | d d } |  i t | i  t  i d  } t  i | d d d d } |  i t | i  t  i d  } t  i | d d d d } |  i | i   d  t  i d  } t  i | d d d d } |  i | i   d	  d  S(
   Ns   abc

t   encodingu   asciiR   u   strictu   ignoreu   abc

u   replaceu   abc
�
(   R"   R#   R   R2   t   UnicodeErrorR   Rp   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testEncodingErrorsReading  s    c         C  s,  t  i   } t  i | d d } |  i t | i d  t  i   } t  i | d d d d } |  i t | i d  t  i   } t  i | d d d d d d } | i d	  | i   |  i | i   d
  t  i   } t  i | d d d d d d } | i d	  | i   |  i | i   d  d  S(   NR   u   asciiu   ÿR   u   strictu   ignoreR   u   
u	   abcÿdef
s   abcdef
u   replaces   abc?def
(	   R"   R#   R   R2   R   R   R_   Rp   RI   (   R	   R   R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testEncodingErrorsWriting  s$    	
	
c      
   C  s#  d } | i  d d  i  d d  } x d  | i d  i t  f d | i d  i t  f d d d	 d
 d d g f d d d d g f d d d d d d g f g D]x \ } } t i |  } t i | d d d | } |  i | i	   |  | i
 d  |  i | i   d i |   q Wd  S(   Ns   AAA
BBB
CCCDDDEEE
FFF
GGGs   
s   
s   u   asciiu    u   
u   AAA
u   BBB
u   CCCDDDEEE
u   FFF
u   GGGu   
u   AAA
BBB
CCCDDDEEE
u   u   AAA
BBB
CCCu   DDDu   EEEu   
FFFu   
GGGR   R   i    (   t   replaceR   R   t
   splitlinesR   R"   R#   R   Rp   t	   readlinesR   R   R   (   R	   R   R   R   t   expectedRm   t   txt(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testNewlinesInput  s     c         C  s   h d d 6d d 6d d 6d d 6} d  | t i f g t | i    } x | D] \ } } t i   } t i | d d	 d
 | } | i d  | i d  | i d  | i	   |  i
 | i t  |  i
 | i   |  qO Wd  S(   Ns   AAA
BBB
CCC
XY
Zu    u   
s   AAABBBCCCXYZu   s   AAA
BBB
CCC
XY
Zu   
R   u   asciiR   u   AAA
Bu   BB
CCC
u   XY
Z(   R   t   ost   linesept   sortedt   itemsR"   R#   R   R   R_   Rp   RT   RA   RI   (   R	   t   testdictR   R   R  Rm   R  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testNewlinesOutput  s     
& 
c      
   C  s  d d d d d g } d  d d d d d g g d | g d	 d d d
 d g g d d d g g d d d d g g g } d } xp| D]h} t d i |  i |   } xAt t f D]3} x*t d d  D]} x| D]\ } }	 t i t i	 |  |  }
 t i
 |
 d | d | } | og g  } xj t oR | i d  } | d j o Pn |  i t |  d  | i | | i    q%Wn t |  } x- t | |	  D] \ } } |  i | |  qW|  i t |  t |	   q Wq Wq Wq Wd  S(   Nu   unix
u	   windows
u   os9u   last
u   nonlu   windows
u   os9
u    u   
u	   os9last
u   
u   unix
windows
u   os9last
nonlu   u   unix
windowsu   
os9u	   last
nonlu   utf-8u   latin-1i   i
   R   R   i   (   u   utf-8u   latin-1(   R   R   R   Rw   RA   R   Rc   R"   R   R#   R   R   Rp   R   R   RG   R   t   zip(   R	   t   input_linesR   t	   encodingsR   R$   t   do_readsRW   R   t	   exp_linesR   t   textiot	   got_linest   c2t   got_linet   exp_line(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testNewlines)  sB    	    	   c      
   C  s#  d } | i  d d  i  d d  } x d  | i d  i t  f d | i d  i t  f d d d	 d
 d d g f d d d d g f d d d d d d g f g D]x \ } } t i |  } t i | d d d | } |  i | i	   |  | i
 d  |  i | i   d i |   q Wd  S(   Ns   AAA
BBB
CCCDDDEEE
FFF
GGGs   
s   
s   u   asciiu    u   
u   AAA
u   BBB
u   CCCDDDEEE
u   FFF
u   GGGu   
u   AAA
BBB
CCCDDDEEE
u   u   AAA
BBB
CCCu   DDDu   EEEu   
FFFu   
GGGR   R   i    (   R   R   R   R  R   R"   R#   R   Rp   R  R   R   R   (   R	   R   R   R   R  Rm   R  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR  P  s     c   
      C  s/  d } d } d } d } t  i } z x d d  | f d d  | f d d | f d d | f d d | f d d | f d d | f d d | f d d | f d d | f g
 D]v \ t  _ } } t i   } t i | d	 d
 d | }	 |	 i |  |	 i   |  i | i	 t
  |  i t | i  q WWd  | t  _ Xd  S(   Nu   AAA
BBBCCC
s   AAA
BBBCCC
s   AAABBBCCCs   AAA
BBBCCC
u   
u   
u    u   R   u   asciiR   (   R  R  R   R"   R#   R   R   RB   Rp   RT   R   R2   Rh   RI   (
   R	   R$   t   data_lft   data_crt	   data_crlft   save_linesepR   R  Rm   R  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR  `  s2    	 
c         C  s  xd D]} xd D]} t  i t i d d | } | | _ |  i | i d  d  | i   t  i t i d d | } | | _ |  i | i   d  |  i | i	   d  | i   } |  i | i
 d  d  |  i | i	 d  d  |  i | i	 d  d  |  i | i	 d  d  |  i | i	   d  |  i | i   |  |  i | i
 d  d  |  i | i
 d d  |  |  i | i d  d  |  i | i
 |  |  |  i | i	   d  | i d  o |  i | |  n | i   q Wq Wd  S(   Ni   i   i   i   i   i   i   i   i   i    i!   i?   i@   iA   u   asciiu   latin1u   utf8u   w+R   u   abcu   r+i    u   abu   cu    u   defu   utf(   i   i   i   i   i   i   i   i   i   i    i!   i?   i@   iA   (   u   asciiu   latin1u   utf8(   R"   R@   R   R,   t   _CHUNK_SIZERp   R   RB   R   R   R   t
   startswitht   multi_line_test(   R	   t	   chunksizet   encR4   t   cookie(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testBasicIO~  s6      	
	c         C  s  | i  d  | i   d } g  } x d D]w } g  } x/ t |  D]! } | i | | t |   qC Wd i |  d } | i | i   | f  | i |  q* W| i  d  g  }	 xC t o; | i   }
 | i	   } | p Pn |	 i |
 | f  q W|  i
 |	 |  d  S(   Ni    u	   sÿ࿿￿i   i   i   i   i   i   i   i    i!   i>   i?   i@   iA   i  u    u   
(   i    i   i   i   i   i   i   i   i    i!   i>   i?   i@   iA   i  (   R   R1   Rc   R   R   R   R   R   R   RG   Rp   (   R	   R4   R  t   samplet   wlinest   sizet   charsR   t   linet   rlinesR   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR    s.    
   c         C  s9  t  i t i d d d } | i   } | i d  | i   } | i d  | i   } | i d  |  i | i   |  |  i | i   d  |  i | i   |  |  i | i   d  |  i | i   |  | i d  x1 | D]) } |  i | d  |  i	 t
 | i  q W|  i | i   |  | i   d  S(   Nu   w+R   u   utf8u   ÿ
i    (   R"   R@   R   R,   R   R   R   Rp   RG   R2   t   IOErrorRB   (   R	   R4   t   p0t   p1t   p2R&  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testTelling  s&     c   
      C  s  t  i i } | d } d | } t | i d   } |  i t |  t |   d } t | i d   } | | } t  i t i	 d  } | i
 | d  | i   t  i t i	 d d d } | i |  }	 |  i |	 t | d   |  i | i   |  |  i | i   |  d  S(	   Ni   u   au   utf-8u   袈
u   wbu   rR   u   ascii(   R"   R   R  R   Rw   Rp   R   R@   R   R,   R   RB   R   t   unicodeR   RG   (
   R	   t
   chunk_sizet   prefix_sizet   u_prefixt   prefixt   u_suffixt   suffixR&  R4   Rx   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testSeeking  s     



c         C  su   d } t  i t i d  } | i |  | i   t  i t i d d d } | i d | _ | i   | i   d  S(   Ns   ࿿
u   wbu   rR   u   utf-8i   (	   R"   R@   R   R,   R   RB   R  RG   R   (   R	   R$   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testSeekingToo  s    
	
c           s   d   f d  } d t  _ z x$ t i D] \ } } } | |  q( Wt i i } xS t i D]H \ } } } | t |  d } d | } | d } | | | |  q[ WWd d t  _ Xd S(   u4   Test seek/tell using the StatefulIncrementalDecoder.i    c      	     s<  t  i t i d  } | i |   | i   t  i t i d d } | i   } | i   x t | t |  d  D] } x d d t |  | g D] } t  i t i d d }   i	 | i |  | |   | i
   }   i	 | i |  | | | | ! | i |    i	 | i   | |  | i   q Wqt Wd S(   u   Tell/seek to various points within a data stream and ensure
            that the decoded data returned by read() is consistent.u   wbR   u   test_decoderi   i   N(   R"   R@   R   R,   R   RB   R   Rc   R   Rp   R   R   (   R$   t   min_posR4   t   decodedR   t   jR   (   R	   (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testSeekAndTellWithData  s"    

  $i   i   t   .N(   R   R   R   R   R"   R   R  R   (   R	   R9  R   t   _t
   CHUNK_SIZEt   offsetR1  R6  (    (   R	   s)   /mit/python/lib/python2.6/test/test_io.pyR     s    	
 
 

c         C  s   d } d } x | D] } t  i   } t  i | d | } | i |  | i |  | i d	  |  i | i   | d
  |  i | i   | d
 i |   q Wd  S(   Nu
   1234567890u   utf-16u	   utf-16-leu	   utf-16-beu   utf-32u	   utf-32-leu	   utf-32-beR   i    i   (   u   utf-16u	   utf-16-leu	   utf-16-beu   utf-32u	   utf-32-leu	   utf-32-be(	   R"   R#   R   R   R   Rp   R   RI   Rw   (   R	   R$   R   R   Rm   R4   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testEncodedWrites  s           c      
   C  s  t  i  } d } d d d } d } t |  } t | i |   } xd D]y} t i t i d
 d | } | | _ |   }	 x! t |  D] }
 | i	 |  q W| i
   |   } | i d  x | D] } q W|   } | i d  x | i   o q W|   } | i d  x | i   o | i   qW|   } | i   t i ot t d | | | f  t d | i  t d | |	  t d | |  t d | |  t d | |  qK qK Wd  S(   Nu   utf8u    ÿ࿿￿󿿿􏿿i   u   
i'  i    i@   i   i   u   w+R   i    u2   
Timing test: %d lines of %d characters (%d bytes)u   File chunk size:          %6su'   Writing:                  %6.3f secondsu'   Reading using iteration:  %6.3f secondsu'   Reading using readline(): %6.3f secondsu'   Using readline()+tell():  %6.3f seconds(   i    i@   i   i   (   R   R   Rw   R"   R@   R   R,   R  Rc   R   R_   R   RG   R   RB   t   verboseRO   (   R	   t   timerR  R&  t   nlinest   ncharsR   R.  R4   t   t0R   t   t1t   t2t   t3t   t4(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt
   timingTest   sP    	 		 
	 	 	 	

c         C  sf   t  i t  i d   } d } x1 t o) | i d  } | p Pn | | 7} q! W|  i | d  d  S(   Ns   AA
BBu    i   u   AA
BB(   R"   R   R#   R   R   Rp   (   R	   R  t   readsR   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadOneByOneE  s     c         C  sv   t  i t  i d d d   } d } x1 t o) | i d  } | p Pn | | 7} q) W|  i | d d d  d  S(   Nt   Ai   s   
Bu    i   u   Au   
B(   R"   R   R#   R   R   Rp   (   R	   R  RI  R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testReadByChunkP  s      c         C  sr   t  i t  i |  i  d d } d } x1 t o) | i d  } | p Pn | | 7} q* W|  i | |  i  d  S(   NR   u   asciiu    i   (   R"   R   R#   R   R   R   Rp   R   (   R	   R  RI  R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue1395_1[  s    ! c         C  s{   t  i t  i |  i  d d } d | _ d } x1 t o) | i d  } | p Pn | | 7} q3 W|  i | |  i  d  S(   NR   u   asciii   u    (	   R"   R   R#   R   R  R   R   Rp   R   (   R	   R  RI  R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue1395_2g  s    !	 c         C  s   t  i t  i |  i  d d } d | _ | i d  } | | i d  7} | | i   7} | | i   7} | | i   7} |  i | |  i  d  S(   NR   u   asciii   (	   R"   R   R#   R   R  R   RG   Rp   R   (   R	   R  RI  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue1395_3s  s    !	c         C  s`   t  i t  i |  i  d d } d | _ | i d  } | | i   7} |  i | |  i  d  S(   NR   u   asciii   (   R"   R   R#   R   R  R   Rp   R   (   R	   R  RI  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue1395_4~  s
    !	c         C  s|   t  i t  i |  i  d d } d | _ | i d  } | i   } | i d  | i |  |  i | i d  d  d  S(   NR   u   asciii   i    u   BBB
(	   R"   R   R#   R   R  R   R   R   Rp   (   R	   R  RI  R   (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue1395_5  s    !	c         C  sG   t  i |  i  } t  i | d d } |  i | i   | i    d  S(   NR   u   ascii(   R"   R#   R   R   R/   R   (   R	   R   R  (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_issue2282  s    c         C  s]  d d  k  } | i d    } t i | d t } |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d	  d  |  i | i d  d  |  i t | i d
 d t | i	 d  |  i | i d  d  |  i | i d  d  |  i | i d
 d t d  |  i | i d d t d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  |  i | i d  d  | i d    } t i | d t } |  i | i
 d   | i d  |  i | i
 d  | i d  |  i | i
 d   | i d  |  i | i
 d!  | i d  |  i | i
 d"  | i d  | i   |  i | i d  d  |  i | i
 d   d  S(#   Niu   utf-8t	   translates   袈u   袈s   u    s   s   R   R   i    s   
u   
s   Re   u   
as   
u   

s   
as   袈
u   袈
s   袈s   abc
s   
abcu   
s   abcR~   u   u   abc(   R   i    (   u   
u   
(   u   
u   
(   u   u   
u   
(   R   t   getincrementaldecoderR"   t   IncrementalNewlineDecoderR   Rp   R   R2   t   UnicodeDecodeErrorR   t   newlinesR   R   (   R	   R   t   decoder(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   test_newline_decoder  sP    
(   R   R   R   R-   R   R   R   R  R  R  R!  R  R,  R4  R5  R   R>  RH  RJ  RL  RM  RN  RO  RP  RQ  RR  RY  (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyR     s6   								'								-		%							
	t
   MiscIOTestc           B  s   e  Z d    Z RS(   c         C  s   x t  i D] } t t  | d   } |  i | d  j	 |  | d j o q
 q
 d | i   j o |  i t | t  |  q
 |  i t | t  i   q
 Wd  S(   Nu   openu   error(	   R"   t   __all__t   getattrR   R   t   lowert
   issubclassR   t   IOBase(   R	   R   t   obj(    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   testImport__all__  s    
 (   R   R   Ra  (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyRZ    s   c           C  s,   t  i t t t t t t t t	 t
 t 
 d  S(   N(   R   t   run_unittestR*   Rv   Rz   R}   R   R   R   R   R   RZ  (    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt	   test_main  s
    u   __main__(*   R   t
   __future__R    R   R  RL   R   Rb   R   R   t   unittestt	   itertoolsR   R   t   testR   R   R"   t	   RawIOBaseR   R#   R    R&   t   TestCaseR*   Rj   Rv   Rz   R}   R   R   R   R   R   t   registerR   R   R   RZ  Rc  R   t   main(    (    (    s)   /mit/python/lib/python2.6/test/test_io.pyt   <module>   sD   #-iX
,V+  	