î
É X~  ã               @   s6  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 d d l m	 Z	 m
 Z
 d d l m Z d d l m Z d d „  Z e ƒ  Z Gd	 d
 „  d
 e j ƒ Z d d „  Z Gd d „  d e j ƒ Z Gd d „  d e j ƒ Z Gd d „  d e j ƒ Z Gd d „  d e j ƒ Z d d „  Z d S)z	svn testsé    N)Úenvironment)ÚunicodeÚunichr)Ú	svn_utils)ÚskipIfc               C   sP   y* t  j d d g d t j d k ƒd SWn t t  j f k
 rK d SYn Xd  S)NÚsvnz	--versionÚshellÚwin32TF)Ú
subprocessÚ
check_callÚsysÚplatformÚOSErrorÚCalledProcessError© r   r   úK/home/ubuntu/projects/ifolica/build/setuptools/setuptools/tests/test_svn.pyÚ_do_svn_check   s    r   c               @   s8   e  Z d  Z d d „  Z e e d ƒ d d „  ƒ Z d S)ÚTestSvnVersionc             C   sÀ   d  } x, t  j D]! } | j ƒ  d k r | } q q W| d  k rn y |  j d ƒ Wqn t k
 rj d  SYqn Xn  t  j | } d t  j | <z# t j j ƒ  } |  j | d ƒ Wd  | t  j | <Xd  S)NÚpathz$Cannot figure out how to modify pathÚ )	ÚosÚenvironÚlowerZskipTestÚAttributeErrorr   ÚSvnInfoÚget_svn_versionÚassertEqual)ÚselfZpath_variableÚenvZold_pathÚversionr   r   r   Útest_no_svn_found   s    z TestSvnVersion.test_no_svn_foundz"No SVN to text, in the first placec             C   s#   t  j j ƒ  } |  j | d ƒ d  S)Nr   )r   r   r   ZassertNotEqual)r   r   r   r   r   Útest_svn_should_exist0   s    z$TestSvnVersion.test_svn_should_existN)Ú__name__Ú
__module__Ú__qualname__r    r   Ú
_svn_checkr!   r   r   r   r   r      s   r   c             C   sM   d  } z, t  j |  d d d ƒ} | j ƒ  } | SWd  | rH | j ƒ  n  Xd  S)NÚrÚencodingzutf-8)ÚioÚopenÚreadÚclose)r   ÚfileobjÚdatar   r   r   Ú_read_utf8_file5   s    r.   c               @   sd   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d S)ÚParserInfoXMLc             C   s×   t  j j d d d | d ƒ } d | } t | ƒ } t d j | d f ƒ d f d j | d	 f ƒ d
 f d j | d	 d f ƒ d f d j | d	 d f ƒ d f g ƒ } |  j t d d „  t j | ƒ Dƒ ƒ | ƒ d  S)NÚ
setuptoolsÚtestsÚsvn_dataz	_info.xmlz
%s_exampleú\za fileÚfileÚfolderÚdirz
lalala.txtz	quest.txtc             s   s   |  ] } | Vq d  S)Nr   )Ú.0Úxr   r   r   ú	<genexpr>Q   s    z-ParserInfoXML.parse_tester.<locals>.<genexpr>)r   r   Újoinr.   Úsetr   r   Zparse_dir_entries)r   Úsvn_nameÚ
ext_spacesr   Úexample_baser-   Úexpectedr   r   r   Úparse_testerB   s    
$%zParserInfoXML.parse_testerc             C   s   |  j  d d ƒ d  S)NÚsvn13F)r@   )r   r   r   r   Ú
test_svn13T   s    zParserInfoXML.test_svn13c             C   s   |  j  d d ƒ d  S)NÚsvn14F)r@   )r   r   r   r   Ú
test_svn14W   s    zParserInfoXML.test_svn14c             C   s   |  j  d d ƒ d  S)NÚsvn15F)r@   )r   r   r   r   Ú
test_svn15Z   s    zParserInfoXML.test_svn15c             C   s   |  j  d d ƒ d  S)NÚsvn16T)r@   )r   r   r   r   Ú
test_svn16]   s    zParserInfoXML.test_svn16c             C   s   |  j  d d ƒ d  S)NÚsvn17T)r@   )r   r   r   r   Ú
test_svn17`   s    zParserInfoXML.test_svn17c             C   s   |  j  d d ƒ d  S)NÚsvn18T)r@   )r   r   r   r   Ú
test_svn18c   s    zParserInfoXML.test_svn18N)
r"   r#   r$   r@   rB   rD   rF   rH   rJ   rL   r   r   r   r   r/   @   s   r/   c               @   sL   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S)ÚParserExternalXMLc       
      C   s{  t  j j d d d | d ƒ } | d } t | ƒ } | rJ d } d } n d } d	 } t t  j j | | f ƒ t  j j | | f ƒ t  j j | t d
 ƒ t d ƒ t d ƒ f ƒ t  j j | d | f ƒ t  j j | d | f ƒ t  j j | d t d
 ƒ t d ƒ t d ƒ f ƒ g ƒ } t d d „  | Dƒ ƒ } t  j j d ƒ }	 |  j t d d „  t	 j
 | |	 ƒ Dƒ ƒ | ƒ d  S)Nr0   r1   r2   z_ext_list.xmlZ_examplezthird party2zthird party3Úthird_party2Úthird_party3Úthird_partyi'Y  iËN  r5   c             s   s!   |  ] } t  j j | ƒ Vq d  S)N)r   r   Únormpath)r7   r8   r   r   r   r9   ƒ   s    z1ParserExternalXML.parse_tester.<locals>.<genexpr>úC:ÚdevelopmentÚsvn_examplec             s   s   |  ] } | Vq d  S)Nr   )r7   r8   r   r   r   r9   …   s    )rR   rS   rT   )r   r   r:   r.   r;   Úsepr   r   r   r   Zparse_externals_xml)
r   r<   r=   r   r>   r-   Úfolder2Úfolder3r?   Zdir_baser   r   r   r@   h   s,    
	#,zParserExternalXML.parse_testerc             C   s   |  j  d d ƒ d  S)NrE   F)r@   )r   r   r   r   rF   ˆ   s    zParserExternalXML.test_svn15c             C   s   |  j  d d ƒ d  S)NrG   T)r@   )r   r   r   r   rH   ‹   s    zParserExternalXML.test_svn16c             C   s   |  j  d d ƒ d  S)NrI   T)r@   )r   r   r   r   rJ   Ž   s    zParserExternalXML.test_svn17c             C   s   |  j  d d ƒ d  S)NrK   T)r@   )r   r   r   r   rL   ‘   s    zParserExternalXML.test_svn18N)r"   r#   r$   r@   rF   rH   rJ   rL   r   r   r   r   rM   f   s
    rM   c               @   sd   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d S)ÚParseExternalc             C   s‘   t  j j d d d | d ƒ } t | ƒ } | rL t d d d d g ƒ } n t d	 d
 d g ƒ } |  j t d d „  t j | ƒ Dƒ ƒ | ƒ d  S)Nr0   r1   r2   z_ext_list.txtzthird party2zthird party3zthird party3brP   rN   rO   c             s   s   |  ] } | Vq d  S)Nr   )r7   r8   r   r   r   r9   ¢   s    z-ParseExternal.parse_tester.<locals>.<genexpr>)r   r   r:   r.   r;   r   r   Zparse_external_prop)r   r<   r=   r   r-   r?   r   r   r   r@   —   s    	%zParseExternal.parse_testerc             C   s   |  j  d d ƒ d  S)NrA   F)r@   )r   r   r   r   rB   ¥   s    zParseExternal.test_svn13c             C   s   |  j  d d ƒ d  S)NrC   F)r@   )r   r   r   r   rD   ¨   s    zParseExternal.test_svn14c             C   s   |  j  d d ƒ d  S)NrE   F)r@   )r   r   r   r   rF   «   s    zParseExternal.test_svn15c             C   s   |  j  d d ƒ d  S)NrG   T)r@   )r   r   r   r   rH   ®   s    zParseExternal.test_svn16c             C   s   |  j  d d ƒ d  S)NrI   T)r@   )r   r   r   r   rJ   ±   s    zParseExternal.test_svn17c             C   s   |  j  d d ƒ d  S)NrK   T)r@   )r   r   r   r   rL   ´   s    zParseExternal.test_svn18N)
r"   r#   r$   r@   rB   rD   rF   rH   rJ   rL   r   r   r   r   rX   •   s   rX   c                   sv   e  Z d  Z ‡  f d d †  Z e e d ƒ d d „  ƒ Z e e d ƒ d d „  ƒ Z e e d ƒ d d	 „  ƒ Z ‡  S)
ÚTestSvnc                sã   t  j j ƒ  } | s+ d  |  _ d  |  _ d  St d d „  | j d ƒ d  d … Dƒ ƒ |  _ |  j d k  r| t d | ƒ ‚ n |  j d k r— d |  _ n  d
 |  j |  _ t	 j
 j d d d |  j d ƒ |  _ t t |  ƒ j ƒ  d  S)Nc             S   s   g  |  ] } t  | ƒ ‘ q Sr   )Úint)r7   r8   r   r   r   ú
<listcomp>Á   s   	 z!TestSvn.setUp.<locals>.<listcomp>Ú.é   é   é   zInsufficient SVN Version %sé	   é   zsvn%i%i_exampler0   r1   r2   z.zip)r^   r_   )r^   r`   )r^   ra   )r   r   r   ZdatanameZdatafileÚtupleÚsplitÚbase_versionÚ
ValueErrorr   r   r:   ÚsuperrY   ÚsetUp)r   r   )Ú	__class__r   r   rg   º   s    		/zTestSvn.setUpz"No SVN to text, in the first placec             C   s,   t  j j d ƒ j ƒ  } |  j | d ƒ d  S)Nr\   é   )r   r   ÚloadÚget_revisionr   )r   Úrevr   r   r   Útest_revisionÎ   s    zTestSvn.test_revisionc             C   s¢   t  t j j d ƒ d f t j j d ƒ d f t j j d d ƒ d f t j j d d ƒ d f g ƒ } t j j d ƒ } |  j t  d d	 „  | j Dƒ ƒ | ƒ d  S)
Nza filer4   r5   r6   z
lalala.txtz	quest.txtr\   c             s   s   |  ] } | Vq d  S)Nr   )r7   r8   r   r   r   r9   Þ   s    z'TestSvn.test_entries.<locals>.<genexpr>)	r;   r   r   r:   r   r   rj   r   Úentries)r   r?   Úinfor   r   r   Útest_entriesÓ   s    !zTestSvn.test_entriesc          	   C   sÕ   |  j  d k r d } d } n d } d } t t j j | ƒ t j j | ƒ t j j d ƒ t j j d | ƒ t j j d | ƒ t j j d d ƒ g ƒ } t j j d	 ƒ } |  j t d
 d „  | j	 Dƒ ƒ | ƒ d  S)Nr^   ri   zthird party2zthird party3rN   rO   rP   r5   r\   c             S   s   g  |  ] } | ‘ q Sr   r   )r7   r8   r   r   r   r[   ò   s   	 z*TestSvn.test_externals.<locals>.<listcomp>)r^   ri   )
rd   r;   r   r   r:   r   r   rj   r   Z	externals)r   rV   rW   r?   ro   r   r   r   Útest_externalsà   s    	zTestSvn.test_externals)	r"   r#   r$   rg   r   r%   rm   rp   rq   r   r   )rh   r   rY   ¸   s   rY   c               C   s   t  j j t ƒ S)N)ÚunittestZdefaultTestLoaderZloadTestsFromNamer"   r   r   r   r   Ú
test_suiteô   s    rs   )Ú__doc__r(   r   r
   r   rr   Zsetuptools.testsr   Zsetuptools.compatr   r   r0   r   Zsetuptools.tests.py26compatr   r   r%   ZTestCaser   r.   r/   rM   rX   ZZippedEnvironmentrY   rs   r   r   r   r   Ú<module>   s$   	&/#<