
 X\                 @   s   d  d l  m Z d  d l m Z d  d l Z d  d l m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z d  d l m Z Gd d   d e  Z Gd d	   d	 e  Z d S)
    )Command)DistutilsOptionErrorN)resource_listdirresource_existsnormalize_pathworking_set_namespace_packagesadd_activation_listenerrequire
EntryPoint)
TestLoaderc               @   s   e  Z d  Z d d   Z d S)ScanningLoaderc             C   s,  g  } | j  d k r1 | j t j |  |   n  t | d  rV | j | j    n  t | d  rx t | j  d  D] } | j d  r | d k r | j  d | d d  } n- t | j  | d
  rx | j  d | } n qx | j |  j	 |   qx Wn  t
 |  d k r |  j |  S| d Sd S)a  Return a suite of all tests cases contained in the given module

        If the module is a package, load tests from all the modules in it.
        If the module has an ``additional_tests`` function, call it and add
        the return value to the tests.
        zsetuptools.tests.doctestadditional_tests__path__ z.pyz__init__.py.N   z/__init__.py   r   )__name__appendr   loadTestsFromModulehasattrr   r   endswithr   ZloadTestsFromNamelenZ
suiteClass)selfmoduletestsfile	submodule r    I/home/ubuntu/projects/ifolica/build/setuptools/setuptools/command/test.pyr      s"    z"ScanningLoader.loadTestsFromModuleN)r   
__module____qualname__r   r    r    r    r!   r   	   s   r   c               @   sd   e  Z d  Z d Z d Z d d g Z d	 d
   Z d d   Z d d   Z d d   Z	 d d   Z
 d S)testz.Command to run unit tests after in-place buildz#run unit tests after in-place buildtest-module=m$Run 'test_suite' in specified moduletest-suite=s1Test suite to run (e.g. 'some_module.test_suite')c             C   s   d  |  _  d  |  _ d  |  _ d  S)N)
test_suitetest_moduletest_loader)r   r    r    r!   initialize_options8   s    		ztest.initialize_optionsc             C   s   |  j  d  k rC |  j d  k r0 |  j j  |  _  q[ |  j d |  _  n |  j r[ t d   n  |  j  g |  _ |  j r |  j j d d  n  |  j d  k r t |  j d d   |  _ n  |  j d  k r d |  _ n  d  S)Nz.test_suitez1You may specify a module or a suite, but not bothr   z	--verboser-   z&setuptools.command.test:ScanningLoader)	r+   r,   distributionr   	test_argsverboseinsertr-   getattr)r   r    r    r!   finalize_options=   s    		ztest.finalize_optionsc             C   s  t  j d k r t |  j d d  r |  j d d d |  j d  |  j d  } t | j  } |  j d d | |  j d  |  j d	 d d |  j d	  n- |  j d  |  j d	 d d
 |  j d	  |  j d  } t  j	 d  d   } t  j
 j   } z[ t  j	 j d t | j   t j   t d d    t d | j | j f  |   Wd  | t  j	 d  d   <t  j
 j   t  j
 j |  t j   Xd  S)Nr   use_2to3Fbuild_pyZinplacer   egg_infoegg_base	build_extr   c             S   s
   |  j    S)N)activate)distr    r    r!   <lambda>r   s    z/test.with_project_on_sys_path.<locals>.<lambda>z%s==%s)r   )sysversion_infor3   r/   reinitialize_commandrun_commandget_finalized_commandr   	build_libpathmodulescopyr2   r8   r   __init__r	   r
   egg_nameZegg_versionclearupdate)r   funcZbpy_cmdZ
build_pathZei_cmdZold_pathZold_modulesr    r    r!   with_project_on_sys_pathR   s2    $
ztest.with_project_on_sys_pathc             C   s   |  j  j r% |  j  j |  j  j  n  |  j  j rJ |  j  j |  j  j  n  |  j r d j |  j  } |  j r |  j d |  q |  j d |  |  j	 |  j
  n  d  S)N z skipping "unittest %s" (dry run)zrunning "unittest %s")r/   Zinstall_requiresZfetch_build_eggsZtests_requirer+   joinr0   dry_runannouncerK   	run_tests)r   cmdr    r    r!   run{   s    		ztest.runc             C   s2  d d  l  } t j d
 k r t |  j d d  r |  j d j d  d } | t k r g  } | t j k r{ | j	 |  n  | d 7} x0 t j D]% } | j
 |  r | j	 |  q q Wt t t j j |   q n  t j d |  j  } | j d d  } |   } | j d  d  | j g |  j d	 | d  S)Nr   r   r5   Fr   r   zx=r
   Z
testLoader)r   )unittestr=   r>   r3   r/   r0   splitr   rD   r   
startswithlistmap__delitem__r   parser-   loadmain__file__)r   rT   r   Zdel_modulesnameZ	loader_eploader_classZcksr    r    r!   rP      s$    $
	ztest.run_testsN)r%   r&   r'   )r(   r)   r*   )r   r"   r#   __doc__descriptionuser_optionsr.   r4   rK   rR   rP   r    r    r    r!   r$   ,   s    	)r$   )
setuptoolsr   distutils.errorsr   r=   pkg_resourcesr   r   r   r   r   r	   r
   r   rT   r   r   r$   r    r    r    r!   <module>   s   :#