Ñò
à"Ic           @   sI  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 Z d  d k l	 Z	 e	 i
 Z
 d Z d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z d	 e i f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d d „ Z e d j o e d e ƒ n d S(   iÿÿÿÿN(   t   test_supports   QUIT
t   echo_serverc           B   s    e  Z d  Z d „  Z d „  Z RS(   i   c         C   sM   t  i i |  ƒ | |  _ t i t i t i ƒ |  _ t i	 |  i ƒ |  _
 d  S(   N(   t	   threadingt   Threadt   __init__t   eventt   sockett   AF_INETt   SOCK_STREAMt   sockR    t	   bind_portt   port(   t   selfR   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR      s    	c         C   s  |  i  i d ƒ |  i i ƒ  |  i  i ƒ  \ } } d |  _ x@ t |  i j o/ | i d ƒ } | p Pn |  i | |  _ q> W|  i i t d ƒ |  _ yL xE |  i o: | i	 |  i |  i
  ƒ } t i d ƒ |  i | |  _ qœ WWn n X| i ƒ  |  i  i ƒ  d  S(   Ni   t    gü©ñÒMbP?(   R	   t   listenR   t   sett   acceptt   buffert   SERVER_QUITt   recvt   replacet   sendt
   chunk_sizet   timet   sleept   close(   R   t   connt   clientt   datat   n(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   run   s*    	  

(   t   __name__t
   __module__R   R   R   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR      s   	t   echo_clientc           B   sI   e  Z d  „  Z d „  Z e i d j o d „  Z n d „  Z d „  Z RS(   c         C   s\   t  i i |  ƒ g  |  _ |  i t i t i ƒ |  i t	 | f ƒ |  i
 | ƒ d |  _ d  S(   NR   (   t   asynchatt
   async_chatR   t   contentst   create_socketR   R   R   t   connectt   HOSTt   set_terminatorR   (   R   t
   terminatort   server_port(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR   6   s    	c         C   s   d  S(   N(    (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   handle_connect>   s    t   darwinc         C   s   d  S(   N(    (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   handle_exptD   s    c         C   s   |  i  | 7_  d  S(   N(   R   (   R   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   collect_incoming_dataG   s    c         C   s    |  i  i |  i ƒ d |  _ d  S(   NR   (   R$   t   appendR   (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   found_terminatorJ   s    (	   R   R    R   R+   t   syst   platformR-   R.   R0   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR!   4   s   			c          C   sM   t  i ƒ  }  t |  ƒ } | i ƒ  |  i ƒ  |  i ƒ  t i d ƒ | |  f S(   Ng{®Gáz„?(   R   t   EventR   t   startt   waitt   clearR   R   (   R   t   s(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   start_echo_serverO   s    


t   TestAsynchatc           B   sŒ   e  Z 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 RS(   c         C   s   d  S(   N(    (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   setUp\   s    c         C   s   d  S(   N(    (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   tearDown_   s    c         C   sà   t  i ƒ  } t | ƒ } | | _ | i ƒ  | i ƒ  | i ƒ  t i d ƒ t	 | | i
 ƒ } | i d ƒ | i d | ƒ | i d | ƒ | i t ƒ t i d |  i d d d d ƒ | i ƒ  |  i | i d	 d
 g ƒ d  S(   Ng{®Gáz„?s   hello s   world%ss   I'm not dead yet!%st   use_pollt   counti,  t   timeouts   hello worlds   I'm not dead yet!(   R   R3   R   R   R4   R5   R6   R   R   R!   R   t   pushR   t   asyncoret   loopt   usepollt   joint   assertEqualR$   (   R   t   termt   server_chunkR   R7   t   c(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   line_terminator_checkb   s    	



c         C   s%   x d D] } |  i  d | ƒ q Wd  S(   Ni   i   i   s   
(   i   i   i   (   RH   (   R   t   l(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_line_terminator1x   s     c         C   s%   x d D] } |  i  d | ƒ q Wd  S(   Ni   i   i   s   
(   i   i   i   (   RH   (   R   RI   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_line_terminator2}   s     c         C   s%   x d D] } |  i  d | ƒ q Wd  S(   Ni   i   i   t   qqq(   i   i   i   (   RH   (   R   RI   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_line_terminator3‚   s     c         C   sˆ   t  ƒ  \ } } t | | i ƒ } d } | i | ƒ | i t ƒ t i d |  i d d d d ƒ | i ƒ  |  i	 | i
 | |  g ƒ d  S(   Ns   hello world, I'm not dead yet!
R<   R=   i,  R>   g{®Gáz„?(   R8   R!   R   R?   R   R@   RA   RB   RC   RD   R$   (   R   t   termlenR7   R   RG   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   numeric_terminator_check‡   s    
c         C   s   |  i  d ƒ |  i  d ƒ d  S(   Ni   l    (   RO   (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_numeric_terminator1“   s    c         C   s   |  i  d ƒ d  S(   Nl    (   RO   (   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_numeric_terminator2™   s    c         C   s”   t  ƒ  \ } } t d  | i ƒ } d } | i | ƒ | i t ƒ t i d |  i d d d d ƒ | i	 ƒ  |  i
 | i g  ƒ |  i
 | i | ƒ d  S(   Ns   hello world, I'm not dead yet!
R<   R=   i,  R>   g{®Gáz„?(   R8   R!   t   NoneR   R?   R   R@   RA   RB   RC   RD   R$   R   (   R   R7   R   RG   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_none_terminatorœ   s    
c         C   s“   t  ƒ  \ } } t d | i ƒ } d } t i | t d d ƒ} | i | ƒ t i d |  i	 d d d d	 ƒ | i
 ƒ  |  i | i d
 d g ƒ d  S(   Ns   
s   hello world
I'm not dead yet!
t   buffer_sizei   R<   R=   i,  R>   g{®Gáz„?s   hello worlds   I'm not dead yet!(   R8   R!   R   R"   t   simple_producerR   t   push_with_producerR@   RA   RB   RC   RD   R$   (   R   R7   R   RG   R   t   p(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_simple_producer©   s    
c         C   s~   t  ƒ  \ } } t d | i ƒ } d } | i | t ƒ t i d |  i d d d d ƒ | i ƒ  |  i	 | i
 d d	 g ƒ d  S(
   Ns   
s   hello world
I'm not dead yet!
R<   R=   i,  R>   g{®Gáz„?s   hello worlds   I'm not dead yet!(   R8   R!   R   RV   R   R@   RA   RB   RC   RD   R$   (   R   R7   R   RG   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_string_producer´   s    
c         C   s„   t  ƒ  \ } } t d | i ƒ } | i d ƒ | i t ƒ t i d |  i d d d d ƒ | i ƒ  |  i	 | i
 d d	 d
 g ƒ d  S(   Ns   
s   hello world

I'm not dead yet!
R<   R=   i,  R>   g{®Gáz„?s   hello worldR   s   I'm not dead yet!(   R8   R!   R   R?   R   R@   RA   RB   RC   RD   R$   (   R   R7   R   RG   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_empty_line¾   s    
c         C   s¡   t  ƒ  \ } } t d | i ƒ } | i d ƒ | i t ƒ | i ƒ  t i d |  i d d d d ƒ | i	 ƒ  |  i
 | i g  ƒ |  i t | i ƒ d j ƒ d  S(	   Ns   
s   hello world
I'm not dead yet!
R<   R=   i,  R>   g{®Gáz„?i    (   R8   R!   R   R?   R   t   close_when_doneR@   RA   RB   RC   RD   R$   t
   assertTruet   lenR   (   R   R7   R   RG   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_close_when_doneÉ   s    

(   R   R    t   FalseRB   R:   R;   RH   RJ   RK   RM   RO   RP   RQ   RS   RX   RY   RZ   R^   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR9   Y   s   												
	t   TestAsynchat_WithPollc           B   s   e  Z e Z RS(    (   R   R    t   TrueRB   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyR`   Ù   s   t   TestHelperFunctionsc           B   s   e  Z d  „  Z RS(   c         C   s<   |  i  t i d d ƒ d ƒ |  i  t i d d ƒ d ƒ d  S(   Ns   qwertys   
i   t
   qwertydkjfi    (   RD   R"   t   find_prefix_at_end(   R   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_find_prefix_at_endÝ   s    (   R   R    Re   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyRb   Ü   s   t   TestFifoc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s  t  i ƒ  } | i d ƒ | i d ƒ |  i t | ƒ d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ |  i t | ƒ d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  t ƒ |  i | i ƒ  d ƒ |  i t | ƒ d ƒ |  i | i ƒ  t	 ƒ |  i | i ƒ  d ƒ d  S(	   Ni   t   ai   i   i    (   i   i   (   i   Rg   (   i    N(   R"   t   fifoR?   RD   R]   t   firstt   popt   is_emptyR_   Ra   RR   (   R   t   f(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt
   test_basicâ   s    c         C   sŠ   t  i d d d g ƒ } |  i t | ƒ d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d	 ƒ d  S(
   Nt   xi   i   i   i    (   i   Rn   (   i   i   (   i   i   (   i    N(   R"   Rh   RD   R]   Rj   RR   (   R   Rl   (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   test_given_listñ   s    (   R   R    Rm   Ro   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyRf   á   s   	c         C   s   t  i t t t t ƒ d  S(   N(   R    t   run_unittestR9   R`   Rb   Rf   (   t   verbose(    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt	   test_mainú   s    t   __main__Rq   (   t   threadR@   R"   R   R   R   t   unittestR1   t   testR    R'   R   R   R   R#   R!   R8   t   TestCaseR9   R`   Rb   Rf   RR   Rr   R   Ra   (    (    (    s/   /mit/python/lib/python2.6/test/test_asynchat.pyt   <module>   s    <	(	
€