Ñò
‰BðQc        
   @   sª   d  Z  d d k Z d d k Z d d k Z d d k l Z l Z l Z l Z d d k	 Z
 d d k Z d d k l Z d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d S(	   s   Package Index Tests
iÿÿÿÿN(   t   urllib2t   httplibt	   HTTPErrort   unicode(   t   IndexServert   TestPackageIndexc           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   s   t  i i ƒ  } d } y | i | ƒ } Wn< t j
 o0 t i ƒ  d } |  i | t | ƒ j ƒ n X|  i t	 | t
 ƒ ƒ d  S(   Ns.   http://127.0.0.1:0/nonesuch/test_package_indexi   (   t
   setuptoolst   package_indext   PackageIndext   open_urlt	   Exceptiont   syst   exc_infot
   assertTruet   strt
   isinstanceR   (   t   selft   indext   urlt   v(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_bad_url_bad_port   s    c         C   s‡   t  i i d d ƒ } d } y | i | ƒ } Wn< t j
 o0 t i ƒ  d } |  i | t | ƒ j ƒ n X|  i t	 | t
 ƒ ƒ d  S(   Nt   hostss   www.example.comsM   url:%20https://svn.plone.org/svn/collective/inquant.contentmirror.plone/trunki   (   s   www.example.com(   R   R   R   R	   R
   R   R   R   R   R   R   (   R   R   R   R   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_bad_url_typo   s    	c         C   s   t  i i d d ƒ } d „  } | | _ d } y | i | ƒ } Wn< t j
 o0 t i ƒ  d } |  i d t	 | ƒ j ƒ n Xt
 d ƒ ‚ d  S(	   NR   s   www.example.comc          W   s   t  i d ƒ ‚ d  S(   Nt   line(   R   t   BadStatusLine(   t   args(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   _urlopen.   s    s   http://example.comi   R   s   Should have raise here!(   s   www.example.com(   R   R   R   t   openerR	   R
   R   R   R   R   t   AssertionError(   R   R   R   R   R   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_bad_url_bad_status_line)   s    			c         C   s£   t  i i d d
 ƒ } d } y | i | ƒ Wnd t i i j
 oR t i ƒ  d } t	 | ƒ } d | j p! d | j p d | j p t
 ‚ d SXt d	 ƒ ‚ d S(   sO   
        A bad URL with a double scheme should raise a DistutilsError.
        R   s   www.example.coms2   http://http://svn.pythonpaste.org/Paste/wphp/trunki   s   nonnumeric ports   getaddrinfo faileds   Name or service not knownNs   Did not raise(   s   www.example.com(   R   R   R   R	   t	   distutilst   errorst   DistutilsErrorR   R   R   R   t   RuntimeError(   R   R   R   t   errort   msg(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_bad_url_double_scheme;   s    	.c         C   sa   t  i i d d	 ƒ } t i d d j o4 t i d d j o  d } d } | i | | ƒ n d  S(
   NR   s   www.example.comi    i   i   i   s   http://example.coms>   <a href="http://www.famfamfam.com](http://www.famfamfam.com/">(   s   www.example.com(   R   R   R   R   t   version_infot   process_index(   R   R   R   t   page(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_bad_url_screwy_hrefN   s    	(c         C   s8   t  i i d d ƒ } d } |  i | i | t ƒ ƒ d  S(   NR   s   www.example.coms   file:///tmp/test_package_index(   s   www.example.com(   R   R   R   R   t   url_okt   True(   R   R   R   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_url_ok[   s    	c         C   sÈ   t  i i d ƒ o d St ƒ  } | i ƒ  | i ƒ  d } t i i | ƒ } t	 i
 i d ƒ } | i | ƒ | i ƒ  |  i d | j ƒ |  i t | d ƒ d j ƒ |  i d | d d i j ƒ d S(   sq  
        Download links from the pypi simple index should be used before
        external download links.
        https://bitbucket.org/tarek/distribute/issue/163

        Usecase :
        - someone uploads a package on pypi, a md5 is generated
        - someone manually copies this link (with the md5 in the url) onto an
          external page accessible from the package page.
        - someone reuploads the package (with a different md5)
        - while easy_installing, an MD5 error occurs because the external link
          is used
        -> Setuptools should use the link from pypi, not the external one.
        t   javaNs   test_links_priority/simple/t   foobari   t   correct_md5i    (   R   t   platformt
   startswithR   t   startt   base_urlR   R   R   t   pkg_resourcest   Requirementt   parset   find_packagest   stopR   t   lent   location(   R   t   servert	   index_urlt   pit   requirement(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_links_priorityb   s    	

c         C   st   |  i  t i i d ƒ d
 ƒ |  i  t i i d ƒ d ƒ |  i  t i i d ƒ d ƒ |  i  t i i d	 ƒ d ƒ d  S(   Ns   reportlab-2.5.win32-py2.4.exes   reportlab-2.5s   2.4t   win32s   reportlab-2.5.win32.exes!   reportlab-2.5.win-amd64-py2.7.exes   2.7s	   win-amd64s   reportlab-2.5.win-amd64.exe(   s   reportlab-2.5s   2.4s   win32(   s   reportlab-2.5Ns   win32(   s   reportlab-2.5s   2.7s	   win-amd64(   s   reportlab-2.5Ns	   win-amd64(   t   assertEqualR   R   t   parse_bdist_wininstt   None(   R   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_parse_bdist_wininst‡   s    c         C   sE   t  i i i } | d ƒ \ } } |  i | d ƒ |  i | d ƒ d S(   sA   
        Test the basic usage of _vcs_split_rev_from_url
        s   https://example.com/bar@2995s   https://example.com/bart   2995N(   R   R   R   t   _vcs_split_rev_from_urlR@   (   R   t   vsrfuR   t   rev(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test__vcs_split_rev_from_url‘   s    (   t   __name__t
   __module__R   R   R   R$   R(   R+   R>   RC   RH   (    (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyR      s   							%	
t   TestContentCheckersc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s[   t  i i i d ƒ } | i d i d ƒ ƒ |  i | i i ƒ  d ƒ |  i	 | i
 ƒ  ƒ d  S(   Ns3   http://foo/bar#md5=f12895fdffbd45007040d2e44df98478s$   You should probably not be using MD5t   asciit    f12895fdffbd45007040d2e44df98478(   R   R   t   HashCheckert   from_urlt   feedt   encodeR@   t   hasht	   hexdigestR   t   is_valid(   R   t   checker(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_md5œ   s    	c         C   sB   t  i i i d ƒ } | i d i d ƒ ƒ |  i | i ƒ  ƒ d S(   s<   Content checks should succeed silently if no hash is presents1   http://foo/bar#something%20completely%20differentt   anythingRL   N(   R   R   RN   RO   RP   RQ   R   RT   (   R   RU   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_other_fragment¤   s    	c         C   sB   t  i i i d ƒ } | i d i d ƒ ƒ |  i | i ƒ  ƒ d S(   s0   Content checks should succeed if a hash is emptys   http://foo/bar#md5=RW   RL   N(   R   R   RN   RO   RP   RQ   R   RT   (   R   RU   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_blank_md5«   s    	c         C   s,   t  i i i d ƒ } |  i | i d ƒ d  S(   Ns3   http://foo/bar#md5=f12895fdffbd45007040d2e44df98478t   md5(   R   R   RN   RO   R@   t	   hash_name(   R   RU   (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_get_hash_name_md5²   s    	c         C   s>   t  i i i d ƒ } | i d „  d ƒ } |  i | d ƒ d  S(   Ns3   http://foo/bar#md5=f12895fdffbd45007040d2e44df98478c         S   s   |  S(    (    (   t   x(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   <lambda>º   s    s   My message about %ss   My message about md5(   R   R   RN   RO   t   reportR@   (   R   RU   t   rep(    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   test_report·   s    	(   RI   RJ   RV   RX   RY   R\   Ra   (    (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyRK   š   s
   				(   t   __doc__R   t   unittestR3   t   setuptools.compatR    R   R   R   t   distutils.errorsR   t   setuptools.package_indexR   t   setuptools.tests.serverR   t   TestCaseR   RK   (    (    (    s^   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/setuptools/tests/test_packageindex.pyt   <module>   s   "