ó
ç'ÊUc           @   sE   d  d l  Z  d  d l Z d  d l m Z d e  j f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   Headerst   HeadersTestc           B   s­   e  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 d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   |  j  t | ƒ t | ƒ | ƒ S(   N(   t   assertEqualt   sorted(   t   selft   firstt   secondt   msg(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   assertSortedEqual   s    c         C   sé   t  i d d 6d d 6ƒ } | d s* t ‚ | d s: t ‚ |  j t | j d ƒ |  j | j d ƒ d  ƒ |  j | j d ƒ g  ƒ |  j | j d d ƒ d ƒ |  j | j d d ƒ d g ƒ |  j | j d d d g ƒ d d g ƒ d  S(   Ns	   text/htmls   Content-TypeiÒ  s   Content-Lengtht   Accepts   */*s   images/jpeg(	   R    t   AssertionErrort   assertRaisest   KeyErrort   __getitem__R   t   gett   Nonet   getlist(   R   t   h(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_basics   s    c         C   s`   t  ƒ  } d | d <|  j | d d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d g ƒ d  S(   Ns	   text/htmls   Content-Type(   R    R   R   R   (   R   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_single_value   s
    	
c         C   sˆ   t  ƒ  } d d g | d <} |  j | d d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d d g ƒ | j d ƒ | k	 s„ t ‚ d  S(   Nt   ip1t   ip2s   X-Forwarded-For(   R    R   R   R   R
   (   R   R   t   hlist(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_multivalue    s    	c         C   s‡   t  i d d 6d d ƒ} t | ƒ j ƒ  \ } } t | t ƒ sL t | ƒ ‚ t | d t ƒ so t | d ƒ ‚ |  j | d d ƒ d  S(   Nu   Â£u   keyt   encodings   utf-8i    s   Â£(   R    t   dictt   popitemt
   isinstancet   bytesR
   R   (   R   R   t   keyt   val(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_encode_utf8(   s
    #c         C   sI   t  i d d 6d d ƒ} t | ƒ j ƒ  \ } } |  j | d d ƒ d  S(   Nu   Â£u   keyR   t   latin1i    s   £(   R    R   R   R   (   R   R   R   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_encode_latin1/   s    c         C   sL   t  i d g d 6d d ƒ} t | ƒ j ƒ  \ } } |  j | d d ƒ d  S(   Nu   Â£u   keyR   s   utf-8i    s   Â£(   R    R   R   R   (   R   R   R   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_encode_multiple4   s    c         C   sB   t  ƒ  } d | d <d | k s% t ‚ | d =d | k s> t ‚ d  S(   Ns	   text/htmls   Content-Type(   R    R
   (   R   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_delete_and_contains9   s
    	
c         C   s³   t  ƒ  } d d g } | j d | ƒ } | j d ƒ | k	 sB t ‚ | j d ƒ | k s] t ‚ t  ƒ  } | j d d ƒ } |  j | j d ƒ d g ƒ | j d ƒ | k s¯ t ‚ d  S(   NR   R   s   X-Forwarded-For(   R    t
   setdefaultR   R
   R   (   R   R   R   t   olist(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_setdefault@   s    		c         C   sñ   i d d 6d d g d 6} t  | ƒ } |  j t | ƒ i d g d 6d d g d 6ƒ |  j | j ƒ  d d g ƒ |  j | j ƒ  d d d g f d d g f g ƒ |  j | j ƒ  d d d g f d d g f g ƒ |  j | j ƒ  d d g ƒ d  S(   Ns	   text/htmls   Content-TypeR   R   s   X-Forwarded-For(   R    t   assertDictEqualR   R   t   keyst   itemst	   iteritemst   values(   R   t   idictR   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_iterablesL   s    c         C   si   t  ƒ  } | j i d d 6d d g d 6ƒ |  j | j d ƒ d g ƒ |  j | j d ƒ d d g ƒ d  S(   Ns	   text/htmls   Content-TypeR   R   s   X-Forwarded-For(   R    t   updateR   R   (   R   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_update]   s
    	c         C   s—   t  i d d g d 6ƒ } t j | ƒ } |  j | | ƒ |  j | j d ƒ | j d ƒ ƒ | j d ƒ | j d ƒ k	 s~ t ‚ t | t  ƒ s“ t ‚ d  S(   Nt   value1t   value2t   header1(   R    t   copyR   R   R
   R   (   R   t   h1t   h2(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt	   test_copyd   s    "$c         C   sŽ   t  i d d 6ƒ } | j d d ƒ |  j | j d ƒ d d g ƒ t  ƒ  } | j d d ƒ | j d d ƒ |  j | j d ƒ d d g ƒ d  S(   NR0   R2   t   value3(   R    t
   appendlistR   R   (   R   R4   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_appendlistl   s    	c         C   sh   t  i d d 6ƒ } |  j | j d ƒ d g ƒ | j d d d g ƒ |  j | j d ƒ d d g ƒ d  S(   NR0   R2   R1   R7   (   R    R   R   t   setlist(   R   R4   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_setlistv   s    c         C   s~   t  i d d 6ƒ } | j d d d g ƒ | j d d d g ƒ |  j | j d ƒ d g ƒ |  j | j d ƒ d d g ƒ d  S(   NR0   R2   R1   R7   t   header2(   R    t   setlistdefaultR   R   (   R   R4   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_setlistdefault|   s
    c         C   sc   t  ƒ  } d | d <d  | d <| j d d ƒ |  j | j d ƒ d  ƒ |  j | j d ƒ g  ƒ d  S(   Nt   bart   foo(   R    R   R$   R   R   R   (   R   R4   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_none_valueƒ   s    	

c         C   sÀ   t  i d d 6ƒ } d | d <| j d d ƒ | j d d d d	 g ƒ |  j | j d ƒ d
 g ƒ |  j | j d ƒ d g ƒ |  j | j d ƒ d
 d d g ƒ |  j | j d ƒ d g ƒ d  S(   Ni   t   heyi   R@   R?   i   t   buzt   dosi   t   1t   2t   3t   5(   R    R$   R:   R   R   (   R   R4   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_int_value‹   s    
"c         C   s   |  j  t d t i t ƒ  d 6ƒ |  j  t d t ƒ  j d t ƒ  ƒ |  j  t d t ƒ  j d t ƒ  ƒ |  j  t d t ƒ  j d t ƒ  g ƒ d  S(   Ns   Unsupported value typeR@   (   t   assertRaisesRegexpt	   TypeErrorR    t   objectt   __setitem__R$   R:   (   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   test_invalid_value•   s    N(   t   __name__t
   __module__R   R   R   R   R   R   R!   R"   R#   R&   R-   R/   R6   R9   R;   R>   RA   RI   RN   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyR      s$   												
				
(   t   unittestR3   t   scrapy.httpR    t   TestCaseR   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_http_headers.pyt   <module>   s   