ó
ªl¹Mc           @   s“   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z	 d d l
 m Z d e j f d „  ƒ  YZ d S(   s   Package Index Tests
iÿÿÿÿN(   t   IndexServert   TestPackageIndexc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sõ  t  j j ƒ  } d } y | j | ƒ } Wn, t k
 rV } |  j | t | ƒ k ƒ n X|  j t | t j	 ƒ ƒ t  j j d d ƒ } d } y | j | ƒ } Wn, t k
 rÌ } |  j | t | ƒ k ƒ n X|  j t | t j	 ƒ ƒ d „  } t j
 } | t _
 d } zR y | j | ƒ } Wn, t k
 rK} |  j d t | ƒ k ƒ n Xt d ƒ ‚ Wd  | t _
 Xd	 } y | j | ƒ Wn, t k
 r«} |  j d
 t | ƒ k ƒ n Xt j d d k rñt j d d k rñd } d } | j | | ƒ n  d  S(   Ns.   http://127.0.0.1:0/nonesuch/test_package_indext   hostss   www.example.comsM   url:%20https://svn.plone.org/svn/collective/inquant.contentmirror.plone/trunkc          W   s   d d  l  } | j d ƒ ‚ d  S(   Niÿÿÿÿt   line(   t   httplibt   BadStatusLine(   t   argsR   (    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   _urlopen%   s    s   http://example.comR   s   Should have raise here!s2   http://http://svn.pythonpaste.org/Paste/wphp/trunks   nonnumeric porti    i   i   i   s>   <a href="http://www.famfamfam.com](http://www.famfamfam.com/">(   s   www.example.com(   t
   setuptoolst   package_indext   PackageIndext   open_urlt	   Exceptiont   assert_t   strt
   isinstancet   urllib2t	   HTTPErrort   urlopent   AssertionErrort   syst   version_infot   process_index(   t   selft   indext   urlt   vR   t   old_urlopent   page(    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   test_bad_urls   sF    				
&c         C   s8   t  j j d d ƒ } d } |  j | j | 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   (    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   test_url_okG   s    	c         C   s°   t  ƒ  } | j ƒ  | j ƒ  d } t j j | ƒ } t j j d ƒ } | j	 | ƒ | j
 ƒ  |  j d | k ƒ |  j t | d ƒ d k ƒ |  j d | d d j k ƒ d S(   s…  
        Download links from the pypi simple index should be used before
        external download links.
        http://bitbucket.org/tarek/distribute/issue/163/md5-validation-error

        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
        -> Distribute should use the link from pypi, not the external one.
        s   test_links_priority/simple/t   foobari   t   correct_md5i    N(   R    t   startt   base_urlR   R	   R
   t   pkg_resourcest   Requirementt   parset   find_packagest   stopR   t   lent   location(   R   t   servert	   index_urlt   pit   requirement(    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   test_links_priorityN   s    	

c         C   st   |  j  t j j d ƒ d
 ƒ |  j  t j j d ƒ d ƒ |  j  t j j d ƒ d ƒ |  j  t j j 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   (    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   test_parse_bdist_wininsto   s    (   t   __name__t
   __module__R   R    R0   R5   (    (    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyR   
   s   	;		!(   t   __doc__R   t   ost   shutilt   tempfilet   unittestR   R%   t   setuptools.package_indexR   R,   R    t   TestCaseR   (    (    (    sF   /usr/lib/python2.7/dist-packages/setuptools/tests/test_packageindex.pyt   <module>   s   <