;
Ìâ"Ic               @   sÍ  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 Z d d l Z d d l 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 m Z m Z d d l m Z e j j d ƒ d Z e j j Z e e d ƒ Z e e d ƒ o e j d	 k Z d
 „  Z d d „ Z e o< Gd „  d e j e j ƒ Z  Gd „  d e j e j! ƒ Z" n e j# d „  ƒ Z$ Gd „  d e j% ƒ Z& d „  Z' e( d k o e' ƒ  e d ƒ n d S(   u   
Test suite for socketserver.
i    N(   u   reap_childrenu   verboseu   TestSkipped(   u   TESTFNu   networks   hello world
u   AF_UNIXu   forku   os2c             C   s%   t  t d ƒ o t j |  ƒ n d S(   u7   Call signal.alarm when it exists (i.e. not on Windows).u   alarmN(   u   hasattru   signalu   alarm(   u   n(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   signal_alarm   s    i   c             C   sV   t  j  |  g g  g  | ƒ \ } } } |  | k o |  j | ƒ St d |  f ƒ ‚ d  S(   Nu   timed out on %r(   u   selectu   recvu   RuntimeError(   u   socku   nu   timeoutu   ru   wu   x(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   receive#   s    $c             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   ForkingUnixStreamServer+   s   
u   ForkingUnixStreamServerc             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   ForkingUnixDatagramServer/   s   
u   ForkingUnixDatagramServerc             c   sk   t  j ƒ  } | d k o t  j d ƒ n d  Vt  j | d ƒ \ } } |  j | | ƒ |  j d | ƒ d  S(   Ni    iH   i   i H  (   u   osu   forku   _exitu   Noneu   waitpidu   assertEquals(   u   testcaseu   pidu   pid2u   status(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   simple_subprocess4   s    c             B   sÐ   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z e o d
 „  Z n e o* d „  Z d „  Z e o d „  Z q¦ n d „  Z d „  Z e o d „  Z n d S(   u   Test all socket servers.c             C   s    t  d ƒ d |  _ g  |  _ d  S(   Ni   i    (   u   signal_alarmu	   port_seedu
   test_files(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   setUpC   s    
	c          	   C   sg   t  d ƒ t ƒ  x< |  j D]1 } y t j | ƒ Wq t j k
 o Yq Xq Wg  |  j d  d  … <d  S(   Ni    (   u   signal_alarmu   reap_childrenu
   test_filesu   osu   removeu   error(   u   selfu   fn(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   tearDownH   s    

 
c             C   s  | t  j k o t d f Sd  } t j d k o
 d } n t j d d d | ƒ } t j d k ož | d d k o | d	 d  … } n | d t j t j	 f k o | d d  … } n t j d
 k o | j
 t j t j	 ƒ } q| j
 t j	 t j ƒ } n |  j j | ƒ | Sd  S(   Ni    u   os2u   \socketu   prefixu   unix_socket.u   diri   u   :i   u   /(   u   socketu   AF_INETu   HOSTu   Noneu   osu   nameu   tempfileu   mktempu   sepu   altsepu   replaceu
   test_filesu   append(   u   selfu   protou   diru   fn(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   pickaddrS   s     
c             C   sj   Gd „  d | ƒ } Gd „  d | ƒ } t  o t d ƒ n | | | ƒ } |  j | j | j j ƒ  ƒ | S(   Nc             B   s   |  Ee  Z d  „  Z d S(   c             S   s   |  j  | ƒ |  j ƒ  ‚  d  S(   N(   u   close_requestu   server_close(   u   selfu   requestu   client_address(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   handle_errorn   s    
N(   u   __name__u
   __module__u   handle_error(   u
   __locals__(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   MyServerm   s   
u   MyServerc             B   s   |  Ee  Z d  „  Z d S(   c             S   s#   |  j  j ƒ  } |  j j | ƒ d  S(   N(   u   rfileu   readlineu   wfileu   write(   u   selfu   line(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   handlet   s    N(   u   __name__u
   __module__u   handle(   u
   __locals__(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu	   MyHandlers   s   
u	   MyHandleru   creating server(   u   verboseu   printu   assertEqualsu   server_addressu   socketu   getsockname(   u   selfu   addru   svrclsu   hdlrbaseu   MyServeru	   MyHandleru   server(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   make_serverl   s     c          	   C   s$  |  j  |  j | j ƒ | | ƒ } | j } t o t d | ƒ t d | ƒ n t j d d | d | j d i d d 6ƒ } d | _
 | j ƒ  t o t d	 ƒ n x< t d
 ƒ D]. } t o t d | ƒ n | | j | ƒ q° Wt o t d ƒ n | j ƒ  | j ƒ  t o t d ƒ n d  S(   Nu   ADDR =u   CLASS =u   nameu
   %s servingu   targetu   kwargsg{®Gáz„?u   poll_intervalu   server runningi   u   test clientu   waiting for serveru   doneT(   u   make_serveru   pickaddru   address_familyu   server_addressu   verboseu   printu	   threadingu   Threadu   serve_foreveru   Trueu   daemonu   startu   rangeu   shutdownu   join(   u   selfu   svrclsu   hdlrbaseu   testfuncu   serveru   addru   tu   i(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu
   run_server}   s2    		
		
    

 c             C   s•   t  j  | t  j ƒ } | j | ƒ | j t ƒ t | d ƒ } } x2 | o* d | k o t | d ƒ } | | 7} qE W|  j | t ƒ | j ƒ  d  S(   Nid   s   
(   u   socketu   SOCK_STREAMu   connectu   sendallu   TEST_STRu   receiveu   assertEqualsu   close(   u   selfu   protou   addru   su   bufu   data(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   stream_examine™   s     c             C   s‹   t  j  | t  j ƒ } | j t | ƒ t | d ƒ } } x2 | o* d | k o t | d ƒ } | | 7} q; W|  j | t ƒ | j ƒ  d  S(   Nid   s   
(   u   socketu
   SOCK_DGRAMu   sendtou   TEST_STRu   receiveu   assertEqualsu   close(   u   selfu   protou   addru   su   bufu   data(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   dgram_examine¤   s     c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru	   TCPServeru   StreamRequestHandleru   stream_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_TCPServer®   s    c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru   ThreadingTCPServeru   StreamRequestHandleru   stream_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ThreadingTCPServer³   s    c          
   C   sF   t  |  ƒ j } j ƒ  z  |  j t j t j |  j ƒ Wd  | ~ QXd  S(   N(   u   simple_subprocessu   __exit__u	   __enter__u
   run_serveru   socketserveru   ForkingTCPServeru   StreamRequestHandleru   stream_examine(   u   selfu   _[1](    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ForkingTCPServer¹   s    c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru   UnixStreamServeru   StreamRequestHandleru   stream_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_UnixStreamServerÀ   s    c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru   ThreadingUnixStreamServeru   StreamRequestHandleru   stream_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ThreadingUnixStreamServerÅ   s    c          
   C   sC   t  |  ƒ j } j ƒ  z |  j t t j |  j ƒ Wd  | ~ QXd  S(   N(   u   simple_subprocessu   __exit__u	   __enter__u
   run_serveru   ForkingUnixStreamServeru   socketserveru   StreamRequestHandleru   stream_examine(   u   selfu   _[1](    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ForkingUnixStreamServerË   s    	c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru	   UDPServeru   DatagramRequestHandleru   dgram_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_UDPServerÑ   s    c             C   s    |  j  t j t j |  j ƒ d  S(   N(   u
   run_serveru   socketserveru   ThreadingUDPServeru   DatagramRequestHandleru   dgram_examine(   u   self(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ThreadingUDPServerÖ   s    c          
   C   sF   t  |  ƒ j } j ƒ  z  |  j t j t j |  j ƒ Wd  | ~ QXd  S(   N(   u   simple_subprocessu   __exit__u	   __enter__u
   run_serveru   socketserveru   ForkingUDPServeru   DatagramRequestHandleru   dgram_examine(   u   selfu   _[1](    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   test_ForkingUDPServerÜ   s    N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu   pickaddru   make_serveru
   run_serveru   stream_examineu   dgram_examineu   test_TCPServeru   test_ThreadingTCPServeru   HAVE_FORKINGu   test_ForkingTCPServeru   HAVE_UNIX_SOCKETSu   test_UnixStreamServeru   test_ThreadingUnixStreamServeru   test_ForkingUnixStreamServeru   test_UDPServeru   test_ThreadingUDPServeru   test_ForkingUDPServer(   u
   __locals__(    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   SocketServerTest@   s*   
							
						u   SocketServerTestc               C   s1   t  j ƒ  o t d ƒ ‚ n t j j t ƒ d  S(   Nu"   can't run when import lock is held(   u   impu	   lock_heldu   TestSkippedu   testu   supportu   run_unittestu   SocketServerTest(    (    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu	   test_main÷   s    u   __main__i   ()   u   __doc__u
   contextlibu   errnou   impu   osu   selectu   signalu   socketu   tempfileu	   threadingu   timeu   unittestu   socketserveru   test.supportu   testu   reap_childrenu   verboseu   TestSkippedu   TESTFNu	   TEST_FILEu   supportu   requiresu   TEST_STRu   HOSTu   hasattru   HAVE_UNIX_SOCKETSu   nameu   HAVE_FORKINGu   signal_alarmu   receiveu   ForkingMixInu   UnixStreamServeru   ForkingUnixStreamServeru   UnixDatagramServeru   ForkingUnixDatagramServeru   contextmanageru   simple_subprocessu   TestCaseu   SocketServerTestu	   test_mainu   __name__(    (    (    u3   /mit/python/lib/python3.0/test/test_socketserver.pyu   <module>   sB   	·	