ó
ç'ÊUc           @   sš   d  d l  Z  d  d l Z d  d l m Z m Z d  d l m Z d  d l m Z d  d l	 m
 Z
 m Z d  d l m Z e d ƒ Z d e f d	 „  ƒ  YZ d S(
   iÿÿÿÿN(   t   TestCaset   SkipTest(   t   HttpProxyMiddleware(   t   NotConfigured(   t   Responset   Request(   t   Spidert   foot   TestDefaultHeadersMiddlewarec           B   sV   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         C   s   t  j j ƒ  |  _ d  S(   N(   t   ost   environt   copyt   _oldenv(   t   self(    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   setUp   s    c         C   s   |  j  t _ d  S(   N(   R   R	   R
   (   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   tearDown   s    c         C   s   i  t  _ |  j t t ƒ d  S(   N(   R	   R
   t   assertRaisesR   R   (   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_no_proxies   s    	c         C   s~   i d d 6t  _ t ƒ  } x^ d D]V } t | ƒ } | j | t ƒ d  k sP t ‚ |  j | j	 | ƒ |  j | j
 i  ƒ q  Wd  S(   Nt   reset_env_and_do_not_raiset   dummy_proxys   http://e.coms   https://e.coms   file:///tmp/a(   s   http://e.coms   https://e.coms   file:///tmp/a(   R	   R
   R   R   t   process_requestt   spidert   Nonet   AssertionErrort   assertEqualst   urlt   meta(   R   t   mwR   t   req(    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_no_enviroment_proxies   s    	c         C   sÇ   d t  j d <} d t  j d <} t  j j d d  ƒ t ƒ  } x‚ d | f d | f d
 g D]e \ } } t | ƒ } | j | t ƒ d  k s t ‚ |  j	 | j
 | ƒ |  j	 | j j d	 ƒ | ƒ qZ Wd  S(   Ns   https://proxy.for.http:3128t
   http_proxys   http://proxy.for.https:8080t   https_proxyt
   file_proxys   http://e.coms   https://e.coms   file://tmp/at   proxy(   s   file://tmp/aN(   R	   R
   t   popR   R   R   R   R   R   R   R   R   t   get(   R   R   R   R   R   R!   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_enviroment_proxies$   s    	c         C   sz   d t  j d <t ƒ  } t d ƒ } | j | t ƒ d  k s@ t ‚ |  j | j	 i d d 6ƒ |  j | j
 j d ƒ d ƒ d  S(   Ns   https://user:pass@proxy:3128R   s   http://scrapytest.orgs   https://proxy:3128R!   s   Proxy-Authorizations   Basic dXNlcjpwYXNz(   R	   R
   R   R   R   R   R   R   R   R   t   headersR#   (   R   R   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_proxy_auth1   s    	c         C   s}   d t  j d <} t ƒ  } t d d i d  d 6ƒ} | j | t ƒ d  k sQ t ‚ d | j k rs | j d d  k sy t ‚ d  S(   Ns   https://proxy.for.http:3128R   s   http://noproxy.comR   R!   (	   R	   R
   R   R   R   R   R   R   R   (   R   R   R   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_proxy_already_seted9   s
    	c         C   s  d t  j d <} t ƒ  } d t  j d <t d ƒ } | j | t ƒ d  k sQ t ‚ d | j k sf t ‚ d t  j d <t d ƒ } | j | t ƒ d  k s t ‚ d | j k s² t ‚ d t  j d <t d ƒ } | j | t ƒ d  k sé t ‚ d | j k sþ t ‚ d  S(	   Ns   https://proxy.for.http:3128R   t   *t   no_proxys   http://noproxy.comR!   s	   other.coms   other.com,noproxy.com(	   R	   R
   R   R   R   R   R   R   R   (   R   R   R   R   (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   test_no_proxyA   s    	(   t   __name__t
   __module__R   t   failureExceptionR   R   R   R   R$   R&   R'   R*   (    (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyR      s   				
			(   R	   t   syst   twisted.trial.unittestR    R   t&   scrapy.downloadermiddlewares.httpproxyR   t   scrapy.exceptionsR   t   scrapy.httpR   R   t   scrapy.spidersR   R   R   (    (    (    sM   /home/travis/build/scrapy/scrapy/tests/test_downloadermiddleware_httpproxy.pyt   <module>   s   