Ñò
_ÊLPc           @   s™   d  d k  Z  d  d k Z d  d k Z d e  i f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ	 d S(   iÿÿÿÿNt   TestSendRequestc           B   s›   e  Z d  „  Z d „  Z d 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 k  l } | S(   Niÿÿÿÿ(   t   SendRequest(   t   webob.clientR   (   t   selfR   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   _getTargetClass   s    c         K   s   |  i  ƒ  } | |   S(   N(   R   (   R   t   kwt   cls(    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   _makeOne
   s    c         C   s_   h d d 6d d 6d d 6d d 6t  i ƒ  d	 6d
 d 6d d 6} | d  j	 o | i | ƒ n | S(   Nt   https   wsgi.url_schemet	   localhostt   SERVER_NAMEs   localhost:80t	   HTTP_HOSTt   80t   SERVER_PORTs
   wsgi.inputi    t   CONTENT_LENGTHt   GETt   REQUEST_METHOD(   t   iot   BytesIOt   Nonet   update(   R   t   extrat   environ(    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   _makeEnviron   s    
c         C   s<   |  i  h d d 6ƒ } |  i ƒ  } |  i t | | d  ƒ d  S(   Nt   abcs   wsgi.url_scheme(   R   R   t   assertRaisest
   ValueErrorR   (   R   R   t   inst(    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   test___call___unknown_scheme   s    c            s„   ˆ  i  ƒ  } t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ d  S(   Nt   msgt   HTTPConnectionc            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   t   assertEqualt   Truet   start_response_called(   t   statust   headers(   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyt   start_response&   s    t   foo(   R   t   DummyResponset   DummyConnectionFactoryR   t
   assertTrueR!   R   t   list(   R   R   t   responset   conn_factoryR$   t   iterable(    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt   test___call___gardenpath!   s    c         C   s^   |  i  ƒ  } | d =| d =t d ƒ } t | ƒ } |  i d | ƒ } |  i t | | d  ƒ d  S(   NR
   R   R   R   (   R   R&   R'   R   R   R   R   (   R   R   R*   R+   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt(   test___call___no_servername_no_http_host.   s    c            s½   ˆ  i  ƒ  } | d =d | d <t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ ˆ  i | d d ƒ ˆ  i | d d	 ƒ d  S(
   NR
   R	   R   R   R   c            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   >   s    R%   R   R   (   R   R&   R'   R   R(   R!   R   R)   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt2   test___call___no_servername_colon_not_in_host_http7   s    
c            sÇ   ˆ  i  ƒ  } | d =d | d <d | d <t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d	 g ƒ ˆ  i | d d ƒ ˆ  i | d
 d ƒ d  S(   NR
   R	   R   t   httpss   wsgi.url_schemeR   t   HTTPSConnectionc            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   P   s    R%   R   t   443(   R   R&   R'   R   R(   R!   R   R)   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt3   test___call___no_servername_colon_not_in_host_httpsH   s    

c            s‹   ˆ  i  ƒ  } | d =t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ d  S(   NR   R   R   c            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   `   s    R%   (   R   R&   R'   R   R(   R!   R   R)   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt   test___call___no_content_lengthZ   s    c            s¨   ˆ  i  ƒ  } d | d <t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ ˆ  i | i h d d 6ƒ d  S(   Ni
   s   webob.client.timeoutR   R   c            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   n   s    R%   t   timeout(	   R   R&   R'   R   R(   R!   R   R)   R   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt=   test___call___with_webob_client_timeout_and_timeout_supportedh   s    
c            sŽ   ˆ  i  h d d 6ƒ } t d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ d  S(   NR   R   R   R   c            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   |   s    R%   (   R   R&   R'   R   R(   R!   R   R)   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt    test___call___bad_content_lengthw   s    c            s”   ˆ  i  ƒ  } t i ƒ  } d | _ t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d i	 d ƒ ƒ d  S(   NR   R   c            s   ˆ  i  |  d ƒ t ˆ _ d  S(   Ns   504 Gateway Timeout(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   Š   s    i    t   504(
   R   t   socketR5   R   R'   R   R(   R!   R)   t
   startswith(   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt!   test___call___with_socket_timeout„   s    	c            sŽ   ˆ  i  ƒ  } t i d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d i d ƒ ƒ d  S(   NiþÿÿÿR   c            s   ˆ  i  |  d ƒ t ˆ _ d  S(   Ns   502 Bad Gateway(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   –   s    i    t   502(	   R   R9   t   errorR'   R   R(   R!   R)   R:   (   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt$   test___call___with_socket_error_neg2‘   s    c            s²   d d  k  } ˆ  i ƒ  } t | d ƒ p d  St i | i ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i	 ƒ ˆ  i t
 | ƒ d i d ƒ ƒ d  S(   Niÿÿÿÿt   ENODATAR   c            s   ˆ  i  |  d ƒ t ˆ _ d  S(   Ns   502 Bad Gateway(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   ¦   s    i    R<   (   t   errnoR   t   hasattrR9   R=   R?   R'   R   R(   R!   R)   R:   (   R   R@   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt'   test___call___with_socket_error_ENODATA   s    c            sh   ˆ  i  ƒ  } t i d ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ  i t i ˆ | | ƒ d  S(   Nt   nopeR   c            s   ˆ  i  |  d ƒ t ˆ _ d  S(   Ns   502 Bad Gateway(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   ²   s    (   R   R9   R=   R'   R   R   (   R   R   R*   R+   R$   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt'   test___call___with_socket_error_unknown­   s    c            sš   ˆ  i  ƒ  } t d d  ƒ } t | ƒ } ˆ  i d | ƒ ‰ ‡  ‡ f d †  } ˆ | | ƒ } ˆ  i ˆ i ƒ ˆ  i t | ƒ d g ƒ ˆ  i | i	 d  ƒ d  S(   NR   R   c            s-   ˆ  i  |  d ƒ ˆ  i  | g  ƒ t ˆ _ d  S(   Ns   200 OK(   R   R    R!   (   R"   R#   (   R   R   (    s0   /home/chrism/projects/webob/tests/test_client.pyR$   ¼   s    R%   (
   R   R&   R   R'   R   R(   R!   R   R)   t   length(   R   R   R*   R+   R$   R,   (    (   R   R   s0   /home/chrism/projects/webob/tests/test_client.pyt   test___call___nolength·   s    N(   t   __name__t
   __module__R   R   R   R   R   R-   R.   R/   R3   R4   R6   R7   R;   R>   RB   RD   RF   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyR       s    															
t   DummyMessagec           B   s   e  Z d  „  Z RS(   c         C   s   | |  _  h  |  _ |  _ d  S(   N(   R   R#   t   _headers(   R   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   __init__Æ   s    	(   RG   RH   RK   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRI   Å   s   R&   c           B   s)   e  Z d  d „ Z d „  Z d d „ Z RS(   t   10c         C   s.   t  | ƒ |  _ d |  _ d |  _ | |  _ d  S(   Nt   200t   OK(   RI   R   R"   t   reasont	   headerval(   R   R   RP   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRK   Ë   s    		c         C   s   |  i  S(   N(   RP   (   R   t   name(    (    s0   /home/chrism/projects/webob/tests/test_client.pyt	   getheaderÑ   s    c         C   s   | |  _  d S(   NR%   (   RE   (   R   RE   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   readÔ   s    	N(   RG   RH   RK   RR   R   RS   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyR&   Ê   s   	R'   c           B   s/   e  Z d d  „ Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  t |  _ d  S(   N(   t   resultt   Falset   closed(   R   RT   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRK   Ù   s    	c         K   s(   | |  _  | |  _ t | |  |  _ |  S(   N(   t   hostportR   t   DummyRequestFactoryt   request(   R   RW   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   __call__Ý   s    		c         C   s'   t  |  i t ƒ o |  i ‚ n |  i S(   N(   t
   isinstanceRT   t	   Exception(   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   getresponseã   s    c         C   s   t  |  _ d  S(   N(   R    RV   (   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   closeè   s    N(   RG   RH   R   RK   RZ   R]   R^   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyR'   Ø   s   		RX   c           B   s   e  Z d  „  Z d „  Z RS(   c         K   s   | |  _  | |  _ d  S(   N(   RW   R   (   R   RW   R   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRK   ì   s    	c         C   s   |  S(   N(    (   R   t   methodt   patht   bodyR#   (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRZ   ð   s    (   RG   RH   RK   RZ   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyRX   ë   s   	(
   t   unittestR   R9   t   TestCaseR    t   objectRI   R&   R'   RX   (    (    (    s0   /home/chrism/projects/webob/tests/test_client.pyt   <module>   s   À