U +�a% � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m Z d dlmZ d dlm Z mZmZmZmZmZmZmZmZ d dlmZ d dlmZ G dd � d e�ZG d d� d�ZG dd � d e�ZdS )� N)�DistutilsError�DistutilsOptionError)�log)� TestLoader) �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 �?/tmp/pip-install-1bd_1mtk/setuptools/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__.py� r )r �add�appendr �loadTestsFromModule�hasattrr r �__name__�endswithr ZloadTestsFromName�lenZ suiteClass)r �module�pattern�tests�file� submoduler r r r"