ó
wïRVc           @  sj  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z y d  d l Z e j Z	 Wn& e
 k
 r d  d l Z e j	 Z	 n Xd  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 e j f d „  ƒ  YZ d	 Z d
 e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z d S(   iÿÿÿÿ(   t   print_functionN(   t   git(   t   options(   t	   packaging(   t   baset   SkipFileWritesc           B  s¸  e  Z d  e d d d d d d d d d e j d	 d
 ƒ f d e d d d d d d d d d e j d	 d
 ƒ f d e d d d d d d d d d e j d	 d
 ƒ f d e d d d d d d d d d e j d	 d
 ƒ f d e d d d d d d d d d e j d	 d ƒ f d e d d d d d d d d d e j d	 d ƒ f d e d d d d d d d d d e j d	 d ƒ f d e d d d d d d d d d e j d	 d ƒ f g Z d „  Z d „  Z	 RS(   t   changelog_option_truet
   option_keyt   skip_changelogt   option_valuet   Truet   env_keyt   SKIP_WRITE_GIT_CHANGELOGt	   env_valuet   pkg_funct   filenamet	   ChangeLogt   changelog_option_falset   Falset   changelog_env_truet   changelog_both_truet   authors_option_truet   skip_authorst   SKIP_GENERATE_AUTHORSt   AUTHORSt   authors_option_falset   authors_env_truet   authors_both_truec         C  s	  t  t |  ƒ j ƒ  |  j t j ƒ  ƒ j |  _ t j j	 t j j
 ƒ |  _ t j j |  j d ƒ |  _ t j j |  j ƒ s‘ |  j d |  j ƒ d  St j j |  j |  j ƒ |  _ t ƒ  |  _ |  j d  k	 ræ d |  j f |  j |  j <n  |  j t j |  j |  j ƒ ƒ d  S(   Ns   .gits*   %s is missing; skipping git-related checkss	   setup.cfg(   t   superR   t   setUpt
   useFixturet   fixturest   TempDirt   patht	   temp_patht   ost   abspatht   curdirt   root_dirt   joint   git_dirt   existst   skipTestR   t   dictt   option_dictR   t   NoneR	   t   EnvironmentVariableR   R   (   t   self(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   M   s    	c         C  sj   |  j  d |  j d |  j d |  j ƒ |  j t j j |  j ƒ |  j	 j
 ƒ  t j k pb |  j d  k	 ƒ d  S(   NR(   t   dest_dirR,   (   R   R(   R"   R,   t   assertEqualR#   R!   R)   R   R	   t   lowerR   t   TRUE_VALUESR   R-   (   R/   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt	   test_skip^   s    	
N(
   t   __name__t
   __module__R+   R-   R   t   write_git_changelogt   generate_authorst	   scenariosR   R4   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   (   sD   	s0  04316fe (review/monty_taylor/27519) Make python
378261a Add an integration test script.
3c373ac (HEAD, tag: 2013.2.rc2, tag: 2013.2, milestone-proposed) Merge "Lib
182feb3 (tag: 0.5.17) Fix pip invocation for old versions of pip.
fa4f46e (tag: 0.5.16) Remove explicit depend on distribute.
d1c53dd Use pip instead of easy_install for installation.
a793ea1 Merge "Skip git-checkout related tests when .git is missing"
6c27ce7 Skip git-checkout related tests when .git is missing
04984a5 Refactor hooks file.
a65e8ee (tag: 0.5.14, tag: 0.5.13) Remove jinja pin.
t   GitLogsTestc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  s”   t  t |  ƒ j ƒ  |  j t j ƒ  ƒ j |  _ t j j	 t j j
 ƒ |  _ t j j |  j d ƒ |  _ |  j t j d ƒ ƒ |  j t j d ƒ ƒ d  S(   Ns   .gitR   R   (   R   R:   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R.   (   R/   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   v   s    c         C  sÿ   |  j  t j d „  ƒ ƒ t j d |  j d |  j ƒ t t j	 j
 |  j d ƒ d ƒ £ } | j ƒ  } |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d	 | ƒ |  j d
 | ƒ |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d | ƒ Wd  QXd  S(   Nc         S  s   i t  t j d ƒ ƒ d 6S(   Ns   utf-8t   stdout(   t   BytesIOt   _changelog_contentt   encode(   t   _(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   <lambda>   s   R(   R0   R   t   rs   2013.2s   0.5.17s   ------s   Refactor hooks files   Refactor hooks file.t   182feb3s   review/monty_taylor/27519s   0.5.13s   Merge "(   R   R   t	   FakePopenR   R7   R(   R"   t   openR#   R!   R'   t   readt   assertInt   assertNotIn(   R/   t   ch_fht   changelog_contents(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_write_git_changelog€   s    
$c           s³  t  j d ƒ } t  j d ƒ } t  j d ƒ } t  j d ƒ | } d |  j } d |  j } d } i | | 6| | 6|  j | 6‰  |  j t j j |  j d ƒ g ‰ |  j t	 j
 d	 ‡ f d
 †  ƒ ƒ ‡  f d †  } |  j t	 j
 d | ƒ ƒ t t j j |  j d ƒ d ƒ  }	 |	 j d | ƒ Wd  QXt j d |  j d |  j ƒ t t j j |  j d ƒ d ƒ L }	 |	 j ƒ  }
 |  j | |
 k ƒ |  j | |
 k ƒ |  j | |
 k ƒ Wd  QXd  S(   Ns   Foo Foo <email@foo.com>s   Bar Bar <email@bar.com>s   Foo Bar <foo@bar.com>s   Co-authored-by: s)   git --git-dir=%s log --format=%%aN <%%aE>s   git --git-dir=%s logs   git rev-parse --show-toplevels
   AUTHORS.ins   os.path.existsc           s   t  j j |  ƒ ˆ  k S(   N(   R#   R!   R$   (   R!   (   t   exist_files(    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR@   ©   s    c           s   ˆ  d j  |  ƒ S(   Nt    (   R'   (   t   cmdt   kwargs(   t   cmd_map(    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   _fake_run_shell_command«   s    s   pbr.git._run_shell_commandt   ws   %s
R(   R0   R   RA   (   t   sixt   uR(   R&   R#   R!   R'   R"   R   R   t   MonkeyPatchRD   t   writeR   R8   RE   t
   assertTrue(   R/   t
   author_oldt
   author_newt	   co_authort   co_author_byt   git_log_cmdt   git_co_log_cmdt   git_top_levelRP   t   auth_fht   authors(    (   RO   RK   s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_generate_authors”   s<    

$
$(   R5   R6   R   RJ   R`   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR:   t   s   	
	t   BuildSphinxTestc           B  s×   e  Z d  e d e d d d e ƒ f d e d e d d d e d d ƒ f d e d e d d	 d e ƒ f d
 e d e d d d e ƒ f d e d e d d d e ƒ f g Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   t   true_autodoc_capst   has_optt   autodocR
   t   has_autodoct   true_autodoc_caps_with_excludest   excludessX   fake_package.fake_private_module
fake_package.another_fake_*
fake_package.unknown_modulet   true_autodoc_lowert   truet   false_autodocR   t
   no_autodocc         C  s!  t  t |  ƒ j ƒ  |  j t j d d „  ƒ ƒ d d l m } | j ƒ  |  _	 d |  j	 _
 i d d g d 6|  j	 j d	 <t j d d d d g ƒ } |  j | ƒ |  j t j | j ƒ ƒ i  |  j	 j d <t |  d ƒ rî d |  j	 j d d <n  |  j r|  j	 j d } d |  j f | d <n  d  S(   Ns!   sphinx.setup_command.BuildDoc.runc         S  s   d  S(   N(   R-   (   R/   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR@   Õ   s    iÿÿÿÿ(   t   distt   fake_packaget   at   .t
   source_dirt   build_sphinxs   fake_module.pyt    s"   another_fake_module_for_testing.pys   fake_private_module.pyt   pbrRg   s	   setup.cfgsX   fake_package.fake_private_module
fake_package.another_fake_*
fake_package.unknown_modulet   autodoc_exclude_modulest   autodoc_index_modules(   Rm   (   s   fake_module.pyRr   (   s"   another_fake_module_for_testing.pyRr   (   s   fake_private_module.pyRr   (   s	   setup.cfgsX   fake_package.fake_private_module
fake_package.another_fake_*
fake_package.unknown_module(   R   Ra   R   R   R   RT   t	   distutilsRl   t   Distributiont   distrt   packagest   command_optionst   PythonPackageR   t   DiveDirt   hasattrRc   Rd   (   R/   Rl   t   pkg_fixtureR   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   Ñ   s*     	c         C  s¾   t  j |  j ƒ } | j ƒ  |  j t j j d ƒ |  j k ƒ |  j t j j d ƒ |  j k ƒ |  j sy t	 |  d ƒ r… |  j
 } n	 |  j } | t j j d ƒ ƒ | t j j d ƒ ƒ d  S(   Ns   api/autoindex.rsts    api/fake_package.fake_module.rstRg   s(   api/fake_package.fake_private_module.rsts4   api/fake_package.another_fake_module_for_testing.rst(   R   t   LocalBuildDocRx   t   runRV   R#   R!   R)   Re   R}   t   assertFalse(   R/   t	   build_doct	   assertion(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_build_docì   s     
			
	c         C  sF  t  j |  j ƒ } | j ƒ  |  j d t | j ƒ ƒ |  j d | j ƒ |  j d | j ƒ t  j |  j ƒ } d | _ | j ƒ  |  j d | j ƒ t  j |  j ƒ } d | _ | j ƒ  |  j d t | j ƒ ƒ |  j d | j ƒ t  j |  j ƒ } d | _ | j ƒ  |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ni   t   htmlt   manRr   i   s   html,man,doctestt   doctest(   R   R   Rx   t   finalize_optionsR1   t   lent   buildersRF   (   R/   R‚   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_builders_config   s(    
	
	
	
c         C  s¬   |  j  r, i d |  j f d 6|  j j d <n  d	 |  j j d d <t j |  j ƒ } |  j d | j ƒ |  j d | j ƒ | j	 ƒ  |  j d | j ƒ |  j d | j ƒ d  S(
   Ns	   setup.cfgRu   Rs   s   command lines   non-existing-builderRq   t   builderR…   (   s   command lines   non-existing-builder(
   Rc   Rd   Rx   Rz   R   R   RG   RŠ   RF   Rˆ   (   R/   R‚   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_cmd_builder_override  s    	 
c         C  sy   |  j  r, i d |  j f d 6|  j j d <n  d
 |  j j d d <t j |  j ƒ } | j ƒ  |  j d d	 g | j ƒ d  S(   Ns	   setup.cfgRu   Rs   s   command lines   builder1,builder2Rq   RŒ   t   builder1t   builder2(   s   command lines   builder1,builder2(	   Rc   Rd   Rx   Rz   R   R   Rˆ   R1   RŠ   (   R/   R‚   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt+   test_cmd_builder_override_multiple_builders1  s    	 
(   R5   R6   R+   R
   R   R9   R   R„   R‹   R   R   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyRa   ¿   s    	!				t   ParseRequirementsTestc           B  s}   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C  s8   t  t |  ƒ j ƒ  t j d d d d ƒ \ } |  _ d  S(   Nt   prefixt	   openstackt   suffixs   .setup(   R   R‘   R   t   tempfilet   mkstempt   tmp_file(   R/   t   fd(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   C  s    c         C  sQ   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d d g t j |  j g ƒ ƒ d  S(   NRQ   s   foo
bart   foot   bar(   RD   R—   RU   R1   R   t   parse_requirements(   R/   t   fh(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_parse_requirements_normalH  s    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s    -e git://foo.com/zipball#egg=barRš   (   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt(   test_parse_requirements_with_git_egg_urlN  s    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s&   -e git://foo.com/zipball#egg=bar-1.2.4s
   bar>=1.2.4(   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt2   test_parse_requirements_with_versioned_git_egg_urlT  s    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s   https://foo.com/zipball#egg=barRš   (   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt)   test_parse_requirements_with_http_egg_urlZ  s    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s%   https://foo.com/zipball#egg=bar-4.2.1s
   bar>=4.2.1(   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt3   test_parse_requirements_with_versioned_http_egg_url`  s    c         C  sK   t  |  j d ƒ  } | j d ƒ Wd  QX|  j g  t j |  j g ƒ ƒ d  S(   NRQ   s	   -f foobar(   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt+   test_parse_requirements_removes_index_linesf  s    c         C  sd   t  |  j d ƒ  } | j d ƒ Wd  QX|  j t j d |  j ƒ ƒ |  j d d g t j ƒ  ƒ d  S(   NRQ   s   foo
bart   PBR_REQUIREMENTS_FILESR™   Rš   (	   RD   R—   RU   R   R   R.   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt)   test_parse_requirements_override_with_envk  s    	c         C  sh   t  |  j d ƒ  } | j d ƒ Wd  QX|  j t j d d |  j ƒ ƒ |  j d d g t j ƒ  ƒ d  S(   NRQ   s   foo
barR£   s   no-such-file,R™   Rš   (	   RD   R—   RU   R   R   R.   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt8   test_parse_requirements_override_with_env_multiple_filest  s    	c         C  s#   t  j g  ƒ } |  j g  | ƒ d  S(   N(   R   t   get_reqs_from_filesR1   (   R/   t   actual(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt$   test_get_requirement_from_file_empty}  s    c         C  sQ   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d d g t j |  j g ƒ ƒ d  S(   NRQ   s3   # this is a comment
foobar
# and another one
foobazt   foobart   foobaz(   RD   R—   RU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt%   test_parse_requirements_with_comments  s    c         C  sP   t  d t j d d ƒ  } | j d ƒ Wd  QX|  j d d g t j ƒ  ƒ d  S(   Ns   requirements-py%d.txti    RQ   s3   # this is a comment
foobar
# and another one
foobazR©   Rª   (   RD   t   syst   version_infoRU   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt&   test_parse_requirements_python_version‡  s
    c         C  su   t  d d ƒ  } | j d ƒ Wd  QXt  d t j d d ƒ  } | j d ƒ Wd  QX|  j d d g t j ƒ  ƒ d  S(	   Ns   requirements-py1.txtRQ   t   thisisatraps   requirements-py%d.txti    s3   # this is a comment
foobar
# and another one
foobazR©   Rª   (   RD   RU   R¬   R­   R1   R   R›   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt,   test_parse_requirements_right_python_versionŽ  s    (   R5   R6   R   R   Rž   RŸ   R    R¡   R¢   R¤   R¥   R¨   R«   R®   R°   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR‘   A  s   														t   ParseDependencyLinksTestc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  s8   t  t |  ƒ j ƒ  t j d d d d ƒ \ } |  _ d  S(   NR’   R“   R”   s   .setup(   R   R±   R   R•   R–   R—   (   R/   R˜   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR   š  s    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s   http://test.com
s   http://test.com(   RD   R—   RU   R1   R   t   parse_dependency_links(   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   test_parse_dependency_normalŸ  s
    c         C  sN   t  |  j d ƒ  } | j d ƒ Wd  QX|  j d g t j |  j g ƒ ƒ d  S(   NRQ   s    -e git://foo.com/zipball#egg=bars   git://foo.com/zipball#egg=bar(   RD   R—   RU   R1   R   R²   (   R/   Rœ   (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt&   test_parse_dependency_with_git_egg_url¦  s
    (   R5   R6   R   R³   R´   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyR±   ˜  s   		c         C  s   t  j |  | | ƒ S(   N(   t   testscenariost   load_tests_apply_scenarios(   t   loadert   in_testst   pattern(    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt
   load_tests®  s    (   t
   __future__R    R#   R¬   R•   RR   t	   cStringIOt   iot   StringIOR<   t   ImportErrorR   Rµ   Rs   R   R   R   t	   pbr.testsR   t   BaseTestCaseR   R=   R:   Ra   R‘   R±   Rº   (    (    (    s8   /usr/lib/python2.7/dist-packages/pbr/tests/test_setup.pyt   <module>   s.   IK‚W