ó
q®¸Qc           @   s9  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 m Z m Z d d l	 m
 Z d d l m
 Z
 d d l m Z d d l m Z y d d l Z Wn e k
 rÁ d Z n Xd Z d Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z e d k r5e e ƒ  ƒ n  d S(   s%   Tests for distutils.command.register.iÿÿÿÿN(   t   check_warningst   run_unittest(   t   register(   t   DistutilsSetupError(   t   PyPIRCCommandTestCases@   [distutils]

index-servers =
    server1

[server1]
username:me
sN   [distutils]
index-servers =
    pypi

[pypi]
username:tarek
password:password
t	   RawInputsc           B   s#   e  Z d  Z d „  Z d d „ Z RS(   s   Fakes user inputs.c         G   s   | |  _  d |  _ d  S(   Ni    (   t   answerst   index(   t   selfR   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   __init__,   s    	t    c         C   s)   z |  j  |  j SWd  |  j d 7_ Xd  S(   Ni   (   R   R   (   R   t   prompt(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   __call__0   s    (   t   __name__t
   __module__t   __doc__R	   R   (    (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR   *   s   	t
   FakeOpenerc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s   Fakes a PyPI serverc         C   s   g  |  _  d  S(   N(   t   reqs(   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR	   8   s    c         G   s   |  S(   N(    (   R   t   args(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR   ;   s    c         C   s   |  j  j | ƒ |  S(   N(   R   t   append(   R   t   req(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   open>   s    c         C   s   d S(   Nt   xxx(    (   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   readB   s    (   R   R   R   R	   R   R   R   (    (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR   6   s
   			t   RegisterTestCasec           B   s•   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z	 e
 j e d k	 d ƒ d „  ƒ Z e
 j e d k	 d ƒ d	 „  ƒ Z d
 „  Z RS(   c         C   sT   t  t |  ƒ j ƒ  t j |  _ d „  } | t _ t j |  _ t ƒ  |  _	 t _ d  S(   Nc         S   s   d S(   Nt   password(    (   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   _getpassK   s    (
   t   superR   t   setUpt   getpasst   _old_getpasst   urllib2t   build_openert
   old_openerR   t   conn(   R   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR   G   s    		c         C   s/   |  j  t _ |  j t _ t t |  ƒ j ƒ  d  S(   N(   R   R   R!   R   R    R   R   t   tearDown(   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR#   Q   s    c         C   sW   | d  k r8 i d d 6d d 6d d 6d d 6d d 6} n  |  j |   \ } } t | ƒ S(   NR   t   urlt   authort   author_emailt   namet   version(   t   Nonet   create_distR   (   R   t   metadatat   pkg_infot   dist(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   _get_cmdV   s    c         C   sj  |  j  ƒ  } |  j t j j |  j ƒ ƒ t d d d ƒ } | j t _	 z | j
 ƒ  Wd  t `	 X|  j t j j |  j ƒ ƒ t |  j ƒ } z  | j ƒ  } |  j | t ƒ Wd  | j ƒ  Xd d „ } | t _	 d | _ | j
 ƒ  |  j t |  j j ƒ d ƒ t |  j j d j ƒ } t |  j j d j ƒ } |  j | d	 | d	 ƒ |  j d
 |  j j d j k ƒ d  S(   Nt   1t   tarekt   yR
   c         S   s   t  |  ƒ ‚ d  S(   N(   t   AssertionError(   R   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   _no_way†   s    i   i   i    s   Content-lengthR   (   R.   t
   assertTruet   ost   patht   existst   rcR   R   t   register_modulet	   raw_inputt   runR   R   t   assertEqualt   WANTED_PYPIRCt   closet   show_responset   lenR"   R   t   dictt   headerst   data(   R   t   cmdt   inputst   ft   contentR3   t   req1t   req2(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_create_pypirc^   s,    
		
c         C   sW   |  j  |  j t ƒ |  j ƒ  } | j ƒ  | j ƒ  | j ƒ  |  j | j j	 d ƒ d  S(   NR   (
   t
   write_fileR8   t   PYPIRC_NOPASSWORDR.   t   _set_configt   finalize_optionst   send_metadataR<   t   distributionR   (   R   RD   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_password_not_in_file•   s    


c         C   s«   |  j  ƒ  } t d d d ƒ } | j t _ z | j ƒ  Wd  t ` X|  j t |  j j	 ƒ d ƒ |  j j	 d } t
 | j ƒ } |  j | d d ƒ |  j d | j k ƒ d  S(   Nt   2R0   s   tarek@ziade.orgi   i    s   Content-lengtht   608(   R.   R   R   R9   R:   R;   R<   R@   R"   R   RA   RB   R4   RC   (   R   RD   RE   R   RB   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_registering¡   s    c         C   s¨   |  j  ƒ  } t d d ƒ } | j t _ z | j ƒ  Wd  t ` X|  j t |  j j	 ƒ d ƒ |  j j	 d } t
 | j ƒ } |  j | d d ƒ |  j d | j k ƒ d  S(   Nt   3s   tarek@ziade.orgi   i    s   Content-lengtht   290R0   (   R.   R   R   R9   R:   R;   R<   R@   R"   R   RA   RB   R4   RC   (   R   RD   RE   R   RB   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_password_reset³   s    s   needs docutilsc         C   sÛ  |  j  i  ƒ } | j ƒ  d | _ |  j t | j ƒ i d d 6d d 6d d 6d d 6d d 6d	 d
 6} |  j  | ƒ } | j ƒ  d | _ |  j t | j ƒ d | d
 <|  j  | ƒ } | j ƒ  d | _ t d d d ƒ } | j t _	 z | j ƒ  Wd  t `	 X|  j  ƒ  } | j ƒ  t d d d ƒ } | j t _	 z | j ƒ  Wd  t `	 Xi d d 6d d 6d d 6d d 6d d 6d d 6d d
 6} |  j  | ƒ } | j ƒ  d | _ t d d d ƒ } | j t _	 z | j ƒ  Wd  t `	 Xd  S(   Ni   R   R$   R%   u   Ã©xÃ©xÃ©R&   R'   R(   s   title
==

textt   long_descriptions   title
=====

textR/   R0   R1   u   xxxu   Ã‰ricu   nameu   Something about esszet ÃŸt   descriptionu   More things about esszet ÃŸ(
   R.   t   ensure_finalizedt   strictt   assertRaisesR   R;   R   R   R9   R:   (   R   RD   R+   RE   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_strictÅ   sR    
	

	

	


	c         C   s   d } i d d 6d d 6d d 6d d 6d d 6| d 6} |  j  | ƒ } | j ƒ  t | _ t d	 d
 d ƒ } | t _ |  j t t d ƒ |  j	 t
 | j ƒ d  S(   Ns   :funkie:`str`R   R$   R%   R&   R'   R(   RX   RR   R0   s   tarek@ziade.orgR:   (   R.   RZ   t   TrueR[   R   R9   R:   t
   addCleanupt   delattrR\   R   R;   (   R   RY   R+   RD   RE   (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt&   test_register_invalid_long_description  s    

		c         C   sR   |  j  ƒ  } t ƒ  7 } t j d ƒ | j ƒ  |  j t | j ƒ d ƒ Wd  QXd  S(   Nt   alwaysi   (   R.   R    t   warningst   simplefiltert   check_metadataR<   R@   (   R   RD   t   w(    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   test_check_metadata_deprecated  s
    
N(   R   R   R   R#   R)   R.   RJ   RQ   RT   RW   t   unittestt
   skipUnlesst   docutilsR]   Ra   Rg   (    (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyR   E   s   	
		7			!B!c           C   s   t  j t ƒ S(   N(   Rh   t	   makeSuiteR   (    (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt
   test_suite  s    t   __main__(   R   R5   Rh   R   R   Rc   t   test.test_supportR    R   t   distutils.commandR   R9   t   distutils.command.registert   distutils.errorsR   t   distutils.tests.test_configR   Rj   t   ImportErrorR)   RL   R=   t   objectR   R   R   Rl   R   (    (    (    s3   /sys/lib/python2.7/distutils/tests/test_register.pyt   <module>   s,   


Ù	