ó
Š]c           @   så   d  Z  d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 d d l m Z d d l m Z m Z d Z d	 Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z e d k rá e e ƒ  ƒ n  d S(   s#   Tests for distutils.command.upload.iÿÿÿÿN(   t   run_unittest(   t   upload(   t   Distribution(   t   DistutilsError(   t   PYPIRCt   PyPIRCCommandTestCasesñ   [distutils]

index-servers =
    server1
    server2

[server1]
username:me
password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

[server2]
username:meagain
password: secret
realm:acme
repository:http://another.pypi/
s@   [distutils]

index-servers =
    server1

[server1]
username:me
t   FakeOpenc           B   s    e  Z d d d  „ Z d „  Z RS(   c         C   sO   | |  _  t | t ƒ s$ | |  _ n	 d  |  _ | p6 d |  _ | pE d |  _ d  S(   Nt   OKiÈ   (   t   urlt
   isinstancet   strt   reqt   Nonet   msgt   code(   t   selfR   R   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   __init__-   s    		c         C   s   |  j  S(   N(   R   (   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   getcode6   s    N(   t   __name__t
   __module__R   R   R   (    (    (    s,   lib/python2.7/distutils/tests/test_upload.pyR   +   s   	t   uploadTestCasec           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   sJ   t  t |  ƒ j ƒ  t j |  _ |  j t _ d  |  _ d  |  _	 d  |  _
 d  S(   N(   t   superR   t   setUpt
   upload_modt   urlopent   old_opent   _urlopenR   t	   last_opent   next_msgt	   next_code(   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyR   <   s    		c         C   s#   |  j  t _ t t |  ƒ j ƒ  d  S(   N(   R   R   R   R   R   t   tearDown(   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyR   D   s    c         C   s(   t  | d |  j d |  j ƒ|  _ |  j S(   NR   R   (   R   R   R   R   (   R   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyR   H   s    !c         C   sr   |  j  |  j t ƒ t ƒ  } t | ƒ } | j ƒ  x9 d	 d
 d d f D]% \ } } |  j t | | ƒ | ƒ qE Wd  S(   Nt   usernamet   met   passwordt   secrett   realmt   pypit
   repositorys   https://upload.pypi.org/legacy/(   R   R    (   R!   R"   (   R#   R$   (   R%   s   https://upload.pypi.org/legacy/(   t
   write_filet   rcR   R   R   t   finalize_optionst   assertEqualt   getattr(   R   t   distt   cmdt   attrt   waited(    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   test_finalize_optionsL   s    	
	c         C   s{   |  j  |  j t ƒ t ƒ  } t | ƒ } | j ƒ  |  j | j d  ƒ d | _ t | ƒ } | j ƒ  |  j | j d ƒ d  S(   Nt   xxx(	   R&   R'   t   PYPIRC_NOPASSWORDR   R   R(   R)   R!   R   (   R   R+   R,   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   test_saved_passwordX   s    	
	
c         C   sy  |  j  ƒ  } t j j | d ƒ } |  j | ƒ d d | } } } | | | f g } |  j |  j t ƒ |  j d | d d ƒ \ } } t | ƒ }	 |	 j	 ƒ  |	 j
 ƒ  |  j d |  j j j ƒ t |  j j j ƒ }
 |  j |
 d d ƒ |  j |
 d	 j d
 ƒ ƒ |  j |  j j j ƒ  d ƒ |  j |  j j j ƒ  d ƒ |  j d |  j j j ƒ |  j j j d } |  j d | ƒ d  S(   NR0   s   2.6t
   dist_filest   authoru   dÃ©dÃ©s   dÃ©dÃ©s   Content-lengtht   2159s   Content-types   multipart/form-datat   POSTs   https://upload.pypi.org/legacy/t   Authorizations   
(   t   mkdtempt   ost   patht   joinR&   R'   t   PYPIRC_LONG_PASSWORDt   create_distR   t   ensure_finalizedt   runt   assertInR   R   t   datat   dictt   headersR)   t
   assertTruet
   startswitht
   get_methodt   get_full_urlt   assertNotIn(   R   t   tmpR:   t   commandt	   pyversiont   filenameR3   t   pkg_dirR+   R,   RC   t   auth(    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   test_uploadi   s(    

c         C   s
  |  j  ƒ  } t j j | d ƒ } |  j | d d ƒd d | } } } | | | f g } |  j |  j t ƒ |  j d | d d ƒ \ } } t | ƒ }	 |	 j	 ƒ  |	 j
 ƒ  t |  j j j ƒ }
 |  j |
 d d	 ƒ |  j d |  j j j ƒ |  j d
 |  j j j ƒ d  S(   NR0   t   contents   yys   2.6R3   t   descriptions   long descriptions   Content-lengtht   2170s   long description
(   R8   R9   R:   R;   R&   R'   R<   R=   R   R>   R?   RB   R   R   RC   R)   R@   RA   RH   (   R   RI   R:   RJ   RK   RL   R3   RM   R+   R,   RC   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   test_upload_correct_cr…   s     	

c         C   s)   d |  _  d |  _ |  j t |  j ƒ d  S(   Ns	   Not Foundi”  (   R   R   t   assertRaisesR   RO   (   R   (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   test_upload_fails   s    		(
   R   R   R   R   R   R/   R2   RO   RS   RU   (    (    (    s,   lib/python2.7/distutils/tests/test_upload.pyR   :   s   							c           C   s   t  j t ƒ S(   N(   t   unittestt	   makeSuiteR   (    (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt
   test_suite¢   s    t   __main__(   t   __doc__R9   RV   t   test.test_supportR    t   distutils.commandR   R   t   distutils.command.uploadt   distutils.coreR   t   distutils.errorsR   t   distutils.tests.test_configR   R   R<   R1   t   objectR   R   RX   R   (    (    (    s,   lib/python2.7/distutils/tests/test_upload.pyt   <module>   s   h	