3 Ävhþ# ã @ 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 G d d „ d eƒZG dd„ deƒZG d d„ 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)ÚCommandc @ s e Zd Zdd„ Zddd„ZdS )ÚScanningLoaderc C s t j| ƒ tƒ | _d S )N)r Ú__init__ÚsetÚ_visited)Úself© r ú/usr/lib/python3.6/test.pyr s zScanningLoader.__init__Nc C sæ || j krdS | j j|ƒ g }|jtj| |ƒƒ t|dƒrH|j|jƒ ƒ t|dƒrÄxpt|jdƒD ]`}|j dƒrŽ|dkrŽ|jd |dd… }n"t |j|d ƒr`|jd | }nq`|j| j|ƒƒ q`W t|ƒd krÚ| j |ƒ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__.pyé 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 )N)Úfget)r r. r r r r > s zNonDataProperty.__init__Nc C s |d kr| S | j |ƒS )N)r. )r ÚobjZobjtyper r r Ú__get__A s zNonDataProperty.__get__)N)r% r+ r, r r0 r r r r r- = s r- c @ s¢ e Zd ZdZdZd%d&d'gZdd „ Zdd„ Zedd„ ƒZ dd„ Z dd„ Zej g fdd„ƒZeej dd„ ƒƒZedd„ ƒZdd„ Zdd„ Zed d!„ ƒZed"d#„ ƒZd$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=Úsú9Run single test, case or suite (e.g. 'module.test_suite')útest-runner=ÚrúTest runner to usec C s d | _ d | _d | _d | _d S )N)Ú test_suiteÚtest_moduleÚtest_loaderÚtest_runner)r r r r Úinitialize_optionsS 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> )r; r<