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 deZ!G d d dZ"G dd deZ#dS ) N)DistutilsErrorDistutilsOptionError)log) TestLoader)six)mapfilter) resource_listdirresource_existsnormalize_pathworking_set_namespace_packagesevaluate_markeradd_activation_listenerrequire EntryPoint)Command )_unique_everseenc @ s e Zd Zdd ZdddZdS )ScanningLoaderc C s t | t | _d S N)r __init__set_visitedself r ;/usr/lib/python3.8/site-packages/setuptools/command/test.pyr s zScanningLoader.__init__Nc C s || j krdS | j | g }|t| | t|drH|| t|drt|jdD ]`}| dr|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. Nadditional_tests__path__ z.pyz__init__.py.z/__init__.pyr r )r addappendr loadTestsFromModulehasattrr r __name__endswithr ZloadTestsFromNamelenZ suiteClass)r modulepatternZtestsfileZ 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 ZdddZdS )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 fddZeej 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_suitetest_moduletest_loadertest_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 krt| 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 sysversion_infoverboser 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 <