Ñò
˜³©Oc        	   @   sØ   d  d k  Z  d  d k Z d  d k l Z l Z d  d k l Z d  d k l Z d d k	 l
 Z
 d  d k l Z e d „  ƒ Z d d	 „ Z d
 „  Z d d „ Z e d „  ƒ Z d d „ Z e d „  ƒ Z d d „ Z d S(   iÿÿÿÿN(   t   Requestt   Response(   t   wsgify(   t   SendRequesti   (   t   serve(   t   assert_raisesc         C   s7   h t  |  i ƒ d 6|  i d 6|  i d 6} t d | ƒ S(   Nt   headerst   bodyt   methodt   json(   t   dictR   t   textR   R   (   t   reqt   data(    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt
   simple_app
   s    
c         C   sm  t  t ƒ i i ƒ  } zM| ~ } t i | i d d d d d h d d 6ƒ} | i |  ƒ } | i d j p t	 | i
 ‚ | i d	 d
 d j p t	 ‚ | i d d j p t	 ‚ | i d =| i d =| i |  ƒ } | i d j p t	 | i
 ‚ t i | i ƒ } | i d =| i d =| i |  ƒ i d j p t	 ‚ | i i d ƒ | i d <| i d =| i d =| i |  ƒ } | i d j p t	 | i
 ‚ | i d =| i d =| i d =| i i d ƒ d  j p t	 ‚ | i i d ƒ d  j p t	 ‚ | i i d ƒ d  j p t	 ‚ t t | i |  ƒ t i | i ƒ } d | i d <| i |  ƒ i d j p t	 ‚ Wd  QXd  S(   NR   t   POSTt   content_types   application/jsonR	   i   t   testiÈ   R   s   Content-Typet   SERVER_NAMEt   SERVER_PORTs   http://t   Hostt	   HTTP_HOSTs   not a numbert   CONTENT_LENGTH(   R   R   t   __exit__t	   __enter__R    t   blankt   urlt   sendt   status_codet   AssertionErrort   statusR	   t   environt   lstripR   t   gett   NoneR   t
   ValueError(   t
   client_appt   _[1]t   serverR   t   resp(    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   test_client   s<    #



 




   c         C   s   | d d g ƒ d g S(   Ns   200 OKs   Content-types
   text/plaint   ok(   s   Content-types
   text/plain(    (   R   t   start_response(    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   no_length_app5   s    c         C   sk   t  t ƒ i i ƒ  } zK | ~ } t i | i ƒ } | i |  ƒ } | i d j p t	 | i
 ‚ Wd  QXd  S(   NiÈ   (   R   R+   R   R   R    R   R   R   R   R   R   (   R$   R%   R&   R   R'   (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   test_no_content_length:   s    #c         C   sF   t  d ƒ } | i i d d ƒ | i i d d ƒ | i i d ƒ | S(   NR   s
   Set-Cookies   a=bs   c=ds   X-Crazys   value
  continuation(   s   X-Crazys   value
  continuation(   R   R   t   addt
   headerlistt   append(   R   R'   (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt
   cookie_appA   s
    c         C   s£   t  t ƒ i i ƒ  } zƒ | ~ } t i | i d ƒ } | i |  ƒ } | i i	 d ƒ d d g j p t
 ‚ | i d d j p t
 t | i d ƒ ‚ Wd  QXd  S(   Ns   /?tests
   Set-Cookies   a=bs   c=ds   X-Crazys   value, continuation(   R   R0   R   R   R    R   R   R   R   t   getallR   t   repr(   R$   R%   R&   R   R'   (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   test_client_cookiesJ   s
    #&c         C   s   t  i d ƒ t d ƒ S(   Ni   R)   (   t   timet   sleepR   (   R   (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   slow_appR   s    c         C   sª   |  d  j o t ƒ  }  n |  i |  i ƒ p d  St t ƒ i i ƒ  } zX | ~ } t i	 | i
 ƒ } d | i d <| i |  ƒ } | i d j p t | i ‚ Wd  QXd  S(   Ngš™™™™™¹?s   webob.client.timeoutiø  (   R"   R   t   _timeout_supportedt   HTTPConnectionR   R6   R   R   R    R   R   R   R   R   R   R   (   R$   R%   R&   R   R'   (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   test_client_slowX   s    #(   R4   t   urllibt   webobR    R   t	   webob.decR   t   webob.clientR   t   test_in_wsgirefR   t
   nose.toolsR   R   R"   R(   R+   R,   R0   R3   R6   R9   (    (    (    s;   /home/chrism/projects/webob/tests/test_client_functional.pyt   <module>   s   	"		