Ñò
b-äQc           @   s¨   d  Z  d d k Z d d k Z d d k Z d d k l Z d d k l Z l Z l Z l	 Z	 d e f d „  ƒ  YZ
 d e f d „  ƒ  YZ d	 e e i f d
 „  ƒ  YZ d S(   s?   Basic http server for tests to simulate PyPI or custom indexes
iÿÿÿÿN(   t   BaseHTTPRequestHandler(   t   urllib2t   URLErrort
   HTTPServert   SimpleHTTPRequestHandlert   IndexServerc           B   sA   e  Z d  Z d e d „ Z d „  Z d „  Z d „  Z d „  Z RS(	   sY  Basic single-threaded http server simulating a package index

    You can use this server in unittest like this::
        s = IndexServer()
        s.start()
        index_url = s.base_url() + 'mytestindex'
        # do some test requests to the index
        # The index files should be located in setuptools/tests/indexes
        s.stop()
    t    i    c         C   s    t  i |  | | ƒ t |  _ d  S(   N(   R   t   __init__t   Truet   _run(   t   selft   server_addresst   RequestHandlerClass(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR      s    c         C   s    x |  i  o |  i ƒ  q Wd  S(   N(   R	   t   handle_request(   R
   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   serve   s     
c         C   s)   t  i d |  i ƒ |  _ |  i i ƒ  d  S(   Nt   target(   t	   threadingt   ThreadR   t   threadt   start(   R
   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR      s    c         C   s’   t  i d ƒ t |  _ d t |  ƒ } y8 t i d j o t i | d d ƒn t i | ƒ Wn t	 j
 o n X|  i
 i ƒ  |  i i ƒ  d S(	   s   Stop the servergš™™™™™¹?s!   http://127.0.0.1:%(server_port)s/i   i   t   timeouti   N(   i   i   (   t   timet   sleept   FalseR	   t   varst   syst   version_infoR   t   urlopenR   R   t   joint   sockett   close(   R
   t   url(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   stop"   s    	c         C   s   |  i  } d | S(   Ns-   http://127.0.0.1:%s/setuptools/tests/indexes/(   t   server_port(   R
   t   port(    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   base_url8   s    	(   R   i    (	   t   __name__t
   __module__t   __doc__R   R   R   R   R    R#   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR   
   s   
			t   RequestRecorderc           B   s   e  Z d  „  Z RS(   c         C   s<   t  |  i ƒ i d g  ƒ } | i |  ƒ |  i d d ƒ d  S(   Nt   requestsiÈ   t   OK(   R   t   servert
   setdefaultt   appendt   send_response(   R
   R(   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   do_GET=   s    (   R$   R%   R.   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR'   <   s   t
   MockServerc           B   s;   e  Z d  Z d e d „ Z d „  Z d „  Z e e ƒ Z RS(   sD   
    A simple HTTP Server that records the requests made to it.
    R   i    c         C   s=   t  i |  | | ƒ t i i |  ƒ |  i t ƒ g  |  _ d  S(   N(   R   R   R   R   t	   setDaemonR   R(   (   R
   R   R   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR   F   s    c         C   s   |  i  ƒ  d  S(   N(   t   serve_forever(   R
   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   runM   s    c         C   s   d t  |  ƒ S(   Ns!   http://localhost:%(server_port)s/(   R   (   R
   (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR   P   s    (   R   i    (   R$   R%   R&   R'   R   R2   R   t   property(    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyR/   B   s   		(   R&   R   R   R   t   setuptools.compatR    R   R   R   R   R   R'   R   R/   (    (    (    sS   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/server.pyt   <module>   s   "2