U âQab‚% ã @ sî d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m Z d dlmZ d dlm Z d dlmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d d lmZ eZ G dd„ deƒZ!G d d„ dƒZ"G dd„ deƒZ#dS )é N)ÚDistutilsErrorÚDistutilsOptionError)Úlog)Ú TestLoader)Úsix)ÚmapÚfilter) Úresource_listdirÚresource_existsÚnormalize_pathÚworking_setÚ_namespace_packagesÚevaluate_markerÚadd_activation_listenerÚrequireÚ EntryPoint)ÚCommandé )Ú_unique_everseenc @ s e Zd Zdd„ Zddd„ZdS )ÚScanningLoaderc C s t | ¡ tƒ | _d S ©N)r Ú__init__ÚsetÚ_visited©Úself© r ú;/usr/lib/python3.8/site-packages/setuptools/command/test.pyr s zScanningLoader.__init__Nc C sâ || j krdS | j |¡ g }| t | |¡¡ t|dƒrH| | ¡ ¡ t|dƒrÀt|jdƒD ]`}| d¡rŒ|dkrŒ|jd |dd… }n"t |j|d ƒr^|jd | }nq^| | |¡¡ q^t|ƒd krÖ| |¡S |d S dS )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. NÚadditional_testsÚ__path__Ú z.pyz__init__.pyÚ.éýÿÿÿz/__init__.pyr r )r ÚaddÚappendr ÚloadTestsFromModuleÚhasattrr r Ú__name__Úendswithr ZloadTestsFromNameÚlenZ suiteClass)r ÚmoduleÚpatternZtestsÚfileZ submoduler r r r% s$ z"ScanningLoader.loadTestsFromModule)N)r' Ú __module__Ú__qualname__r r% r r r r r s r c @ s e Zd Zdd„ Zddd„ZdS )ÚNonDataPropertyc C s || _ d S r ©Úfget)r r1 r r r r A s zNonDataProperty.__init__Nc C s |d kr| S | |¡S r r0 )r ÚobjZobjtyper r r Ú__get__D s zNonDataProperty.__get__)N)r' r- r. r r3 r r r r r/ @ s r/ c @ s¢ e Zd ZdZdZdddgZdd„ Zdd „ Zed d„ ƒZ dd „ Z dd„ Zej g fdd„ƒZeej dd„ ƒƒZedd„ ƒZdd„ Zdd„ Zedd„ ƒZedd„ ƒZdS )Útestz.Command to run unit tests after in-place buildz0run unit tests after in-place build (deprecated))ztest-module=Úmz$Run 'test_suite' in specified module)ztest-suite=Úsz9Run single test, case or suite (e.g. 'module.test_suite'))ztest-runner=ÚrzTest runner to usec C s d | _ d | _d | _d | _d S r )Ú test_suiteÚtest_moduleÚtest_loaderÚtest_runnerr r r r Úinitialize_optionsV s ztest.initialize_optionsc C sŒ | j r| jrd}t|ƒ‚| j d krD| jd kr8| jj | _ n| jd | _ | jd kr^t| jdd ƒ| _| jd krnd| _| jd krˆt| jdd ƒ| _d S )Nz1You may specify a module or a suite, but not bothz.test_suiter: z&setuptools.command.test:ScanningLoaderr; )r8 r9 r Údistributionr: Úgetattrr; )r Úmsgr r r Úfinalize_options\ s ztest.finalize_optionsc C s t | ¡ ƒS r )ÚlistÚ _test_argsr r r r Ú test_argso s ztest.test_argsc c s4 | j stjdkrdV | jr"dV | j r0| j V d S )N)é é Zdiscoverz --verbose)r8 ÚsysÚversion_infoÚverboser r r r rB s s ztest._test_argsc C s | ¡ � |ƒ W 5 Q R X dS )zI Backward compatibility for project_on_sys_path context. N)Úproject_on_sys_path)r Úfuncr r r Úwith_project_on_sys_path{ s ztest.with_project_on_sys_pathc c sP t jot| jddƒ}|rv| jddd� | d¡ | d¡}t|jƒ}| jd|d� | d¡ | jddd� | d¡ n"| d¡ | jdd d� | d¡ | d¡}t j d d … }t j ¡ }zbt|jƒ}t j d|¡ t ¡ td d„ ƒ td|j|jf ƒ | |g¡� d V W 5 Q R X W 5 |t j d d …<