U
���g
� @ s8 d Z ddlZddlZddlZddlZddlZddlZddlm m Z
ddlmZ G dd� dej�Z
G dd� d�Zdd d
�Zddd�Zed
k�r4G dd� dej�Ze�� Ze�e�e�� e�� Zeedd� ejD ���Zeej�Ze�e�Z e!de�"� � e!ddd� e
�#e �$� �D ]Z%e!e%�&� dd� �qe!� dS )z=Test runner and result class for the regression test suite.
� N)�datetimec s� e Zd ZdZdZ� fdd�Zedd� �Z� fdd�Zd"d
d�Z dd
� Z
edd� �Z� fdd�Z� fdd�Z
� fdd�Z� fdd�Z� fdd�Z� fdd�Zdd� Zdd� Zd d!� Z� ZS )#�RegressionTestResultzG======================================================================
zG----------------------------------------------------------------------
c s\ t � j||dd� d| _t�d�| _| j�dt�� � d�� d | _
d | _g | _t
|�| _d S )Nr )�stream�descriptions� verbosityTZ testsuite�start� )�super�__init__�buffer�ETZElement�_RegressionTestResult__suite�setr ZutcnowZ isoformat�_RegressionTestResult__e�!_RegressionTestResult__start_timeZ_RegressionTestResult__results�bool�_RegressionTestResult__verbose)�selfr r r �� __class__� �-/usr/lib/python3.8/test/support/testresult.pyr
s zRegressionTestResult.__init__c C sV z
|j }W n tk
r& t|� Y S X z|� W S tk
rL t|� Y S X t|�S �N)�id�AttributeError�str� TypeError�repr)�cls�testZtest_idr r r Z__getId s
zRegressionTestResult.__getIdc sV t � �|� t�| jd� | _}t�� | _| j rR| j
�| �|�� d�� | j
�
� d S )NZtestcasez ... )r � startTestr �
SubElementr
r �time�perf_counterr r r �write�getDescription�flush)r r �er r r r + s
zRegressionTestResult.startTestFc K sD | j }d | _ |d krd S |�d|�d| �|��� |�d|�dd�� |�d|�dd�� | jrz|�dt�� | j d�� |r�| jd k r�| j�� � � }|t
�|d�_| j
d k r�| j
�� � � }|t
�|d �_|�� D ]l\}}|r�|s�q�t
�||�} t|d
��r4|�� D ],\}
}|
�r$| �|
t|�� n
t|�| _�qq�t|�| _q�d S )N�nameZstatus�run�resultZ completedr" |