
 X&1                 @   ss  d  Z  d d l Z d d l Z d d l Z d d l m 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 d d l m Z d d l Z d d l j Z d d	 l m Z d d
 l m Z d d   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 S)z"Tests for the 'setuptools' package    N)doctest)DistutilsOptionErrorDistutilsPlatformError)DistutilsSetupError)	Extension)LooseVersion)	func_code)Feature)Requirec              C   s}   d d  l  }  d d  l } | j |  j t j j d d  d |  j d d f  } t j	 d k ry | j
 |  j d   n  | S)	Nr   testszapi_tests.txtZoptionflagspackagepkg_resourceswin32zwin_script_wrapper.txt)r   unittestZ	TestSuiteZDocFileSuiteospathjoinELLIPSISsysplatformZaddTest)r   r   suite r   K/home/ubuntu/projects/ifolica/build/setuptools/setuptools/tests/__init__.pyadditional_tests   s    r   c              K   sD   d t  j _ |  j d d g  z t j |    SWd d t  j _ Xd S)zDReturn distribution from 'setup(**args)', without executing commandscommandlinescript_argsinstallN)	distutilscore_setup_stop_after
setdefault
setuptoolssetup)argsr   r   r   	makeSetup    s
    r$   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
DependsTestsc             C   s   t  t d  s d  Sd d   } t |  } |  j t j | d d
  d   |  j t j | d d  d  |  j t j | d d  d  |  j t j | d	 d  d   d  S)Nextract_constantc               S   s   d a  t a d  S)Ntest)xzyr   r   r   r   f15   s    z)DependsTests.testExtractConst.<locals>.f1q   r(   r'   r*   r)   r.   r.   r.   r.   )hasattrdepr   assertEqualr&   )selfr+   Zfcr   r   r   testExtractConst0   s    zDependsTests.testExtractConstc             C   sR   |  j  t t j d  |  j  t t j d  t j d  \ } } } | j   d  S)Nzno-such.-thingzsetuptools.non-existentzsetuptools.tests)assertRaisesImportErrorr0   find_moduleclose)r2   fpir   r   r   testFindModuleG   s    zDependsTests.testFindModulec             C   s~   t  t d  s d  Sd d l m } |  j t j d d  |  |  j t j d d  t j  |  j t j d d	  t  d  S)
Nget_module_constantr   )__version__emailr=   r   versionzsetuptools.tests__doc__)	r/   r0   r>   r=   r1   r<   r   r?   r@   )r2   r=   r   r   r   testModuleExtractM   s    zDependsTests.testModuleExtractc             C   sd  t  t d  s d  St d d d  } |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j   d  d d l	 m
 } |  j | j   |  |  j | j d	   |  j | j d
   |  j | j d   |  j | j    |  j | j    t d d d d t } |  j | j    |  j | j    |  j | j d   t d d d  } |  j | j    |  j | j    t d d  d d d } |  j | j d   |  j | j d   |  j | j d   |  j | j   d  |  j | j d  d d   t D } |  j | j |   |  j | j |   d  S)Nr&   ZEmailz1.0.3r>   r=   zEmail-1.0.3r   )r=   z1.0.9z0.9.1unknownz
Email 3000Z03000formatzDo-what-I-meanz1.0zd-w-i-mZTestsr   homepagezhttp://example.comc             S   s"   g  |  ] } t  j j |   q Sr   )r   r   dirname).0r9   r   r   r   
<listcomp>   s   	 z,DependsTests.testRequire.<locals>.<listcomp>)r/   r0   r
   r1   namemoduleZrequested_version	attributeZ	full_namer>   r=   get_version
assertTrueZ
version_okZ
is_presentZ
is_currentr   rC   rD   __path__)r2   reqr=   pathsr   r   r   testRequire]   s>    zDependsTests.testRequireN)__name__
__module____qualname__r3   r;   rA   rP   r   r   r   r   r%   .   s   r%   c               @   sp   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 d   Z
 d S)DistroTestsc          	   C   ss   t  d d g  |  _ t  d d g  |  _ t d d d d d	 d
 g d d d g d |  j |  j f d i   |  _ d  S)Nzbar.extzbar.czc.yzy.cpackagesaza.bza.b.cbc
py_moduleszb.dr(   ext_modulespackage_dir)r   e1e2r$   dist)r2   r   r   r   setUp   s    zDistroTests.setUpc             C   s#   |  j  t |  j t j j   d  S)N)rL   
isinstancer^   r!   Distribution)r2   r   r   r   testDistroType   s    zDistroTests.testDistroTypec             C   s   |  j  j d  |  j |  j  j d d g  |  j  j d  |  j |  j  j d g  |  j |  j  j d g  |  j |  j  j |  j |  j g  |  j  j d  |  j |  j  j g   |  j |  j  j d g  |  j |  j  j |  j g  t   j d  d  S)NrV   rW   rX   r(   )	r^   exclude_packager1   rU   rY   rZ   r\   r]   r$   )r2   r   r   r   testExcludePackage   s    "zDistroTests.testExcludePackagec             C   s   |  j  j d |  j g  |  j |  j  j |  j g  |  j  j d |  j g  |  j |  j  j |  j |  j g  |  j  j d |  j g  |  j |  j  j |  j |  j g  d  S)NrZ   )r^   excluder\   r1   rZ   r]   include)r2   r   r   r   testIncludeExclude   s    "zDistroTests.testIncludeExcludec             C   sk   |  j  j d d d d g  |  j |  j  j g   |  j |  j  j d g  |  j |  j  j |  j g  d  S)NrU   rX   rW   rV   r(   )r^   re   r1   rU   rY   rZ   r\   )r2   r   r   r   testExcludePackages   s    zDistroTests.testExcludePackagesc             C   sf   t    } | j d d g d d g d |  j g  t    } | j d d g d d g d |  j g  d  S)NrU   rV   rY   rW   rZ   )r$   rf   r]   re   )r2   r^   r   r   r   	testEmpty   s    	(	zDistroTests.testEmptyc             C   s   |  j  |  j j d   |  j j d  |  j  |  j j d   |  j  |  j j d   |  j j d  |  j  |  j j d   |  j  |  j j d   |  j j d  |  j  |  j j d   d  S)NrV   rW   rX   )rL   r^   Zhas_contents_forrc   )r2   r   r   r   testContents   s    zDistroTests.testContentsc             C   s  |  j  t |  j j d d |  j  t |  j j d d |  j  t |  j j d i d d 6|  j  t |  j j d i d d 6|  j  t |  j j d i d d 6|  j  t |  j j d i d d 6|  j  t |  j j d d g |  j  t |  j j d d g d  S)NZnonexistent_optionr(   rU   r*   rZ   r[   r,   )r4   r   r^   rf   re   )r2   r   r   r   testInvalidIncludeExclude   s     								z%DistroTests.testInvalidIncludeExcludeN)rQ   rR   rS   r_   rb   rd   rg   rh   ri   rj   rk   r   r   r   r   rT      s   rT   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)FeatureTestsc             C   s   t  d d d  |  _ t d i t d d d d d	 |  j g d 6t d
 d d d d g d d g d d g d
 6t d	 d d d d g d d g d d# g d	 6t d d d d d d 6d d d g d d d  g d d d g d! t d d" g  g  |  _ d  S)$NZ	Distutilsz1.0.3r   featuresZfoostandardTrequire_featuresZbazbarrU   zpkg.barrY   bar_etremovezbar.extoptionalFzpkg.bazscriptszscripts/baz_it	librarieslibfoofoo/foofoo.cZDWIM	availableZbazishdwimr   z--without-barr   zpkg.foorZ   zbar.c)rv   rw   )r
   rN   r$   r	   r   r^   )r2   r   r   r   r_      s    "	zFeatureTests.setUpc          	   C   sh   |  j  t d d d d d d d j    |  j  t d d d d d j    |  j t t d  d  S)Nr'   rn   Trr   r(   rx   F)rL   r	   Zinclude_by_defaultr4   r   )r2   r   r   r   testDefaults  s    #zFeatureTests.testDefaultsc             C   s'   |  j  t |  j j d j |  j  d  S)Nry   )r4   r   r^   rm   Z
include_in)r2   r   r   r   testAvailability  s    zFeatureTests.testAvailabilityc             C   s   |  j  } |  j d | j k  |  j d | j k  |  j d | j k  |  j d | j k  |  j | j d	 d
  |  j | j d d  |  j | j d d  |  j d | j k  d  S)N	with-dwiminclude DWIMwithout-dwimexclude DWIM (default)with-barinclude bar (default)without-barexclude barzwithout-foozwith-foozwithout-baz)r|   Nr}   )r~   Nr   )r   Nr   )r   Nr   )r^   rL   Zfeature_optionsr1   Zfeature_negopt)r2   r^   r   r   r   testFeatureOptions  s    	zFeatureTests.testFeatureOptionsc             C   s   |  j  } |  j | j d  |  j | j d  |  j | j d  |  j d | j k  |  j d | j k  |  j d | j k  |  j d | j k  |  j d
 | j	 k  |  j | j
 g   |  j | j |  j g  |  j t | j d	  d  S)Nr-   r   rq   zpkg.barzpkg.bazzscripts/baz_itrv   foo/foofoo.crp   )zlibfoor   )r^   r1   Zwith_fooZwith_barZwith_bazrL   rY   rU   rt   ru   rZ   ro   rN   r4   r   Zinclude_feature)r2   r^   r   r   r   testUseFeatures'  s    	zFeatureTests.testUseFeaturesc          	   C   s-   |  j  t t d i t d d d d 6d  S)Nrm   r(   rr   r*   )r4   
SystemExitr$   r	   )r2   r   r   r   testFeatureWithInvalidRemove8  s    z)FeatureTests.testFeatureWithInvalidRemoveN)	rQ   rR   rS   r_   rz   r{   r   r   r   r   r   r   r   rl      s   rl   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)TestCommandTestsc             C   s2   t    j d  } |  j t | t j j   d  S)Nr'   )r$   get_command_objrL   r`   r   cmdCommand)r2   Ztest_cmdr   r   r   testTestIsCommand?  s    z"TestCommandTests.testTestIsCommandc             C   sE   t  d d d g  } | j d  } | j   |  j | j d  d  S)Nr   r'   z--test-suite=foo.tests.suitezfoo.tests.suite)r$   r   ensure_finalizedr1   
test_suite)r2   Zts1r   r   r   testLongOptSuiteWNoDefaultC  s    
z+TestCommandTests.testLongOptSuiteWNoDefaultc             C   s9   t  d d  j d  } | j   |  j | j d  d  S)Nr   zbar.tests.suiter'   )r$   r   r   r1   r   )r2   Zts2r   r   r   testDefaultSuiteI  s    
z!TestCommandTests.testDefaultSuitec             C   s[   t  d d d d d d g  j d  } | j   |  j | j d  |  j | j d  d  S)Nr   z	bar.testsr   r'   z-mz	foo.testszfoo.tests.test_suite)r$   r   r   r1   Ztest_moduler   )r2   Zts3r   r   r   testDefaultWModuleOnCmdLineN  s    	
z,TestCommandTests.testDefaultWModuleOnCmdLinec             C   s>   t  d d d d d d g  j d  } |  j t | j  d  S)Nr   r'   z-mz	bar.testsz-szfoo.tests.suite)r$   r   r4   r   r   )r2   Zts4r   r   r   testConflictingOptionsW  s    	z'TestCommandTests.testConflictingOptionsc             C   s3   t    j d  } | j   |  j | j d   d  S)Nr'   )r$   r   r   r1   r   )r2   Zts5r   r   r   testNoSuite]  s    
zTestCommandTests.testNoSuiteN)	rQ   rR   rS   r   r   r   r   r   r   r   r   r   r   r   =  s   	r   ) r@   r   r   r   Zsetuptools.testsr   distutils.corer   distutils.cmddistutils.errorsr   r   r   r   distutils.versionr   Zsetuptools.compatr   Zsetuptools.distr!   Zsetuptools.dependsdependsr0   r	   r
   r   r$   ZTestCaser%   rT   rl   r   r   r   r   r   <module>   s,   ZcR