B
    v9a¨  ã               @   sn   d dl Z G dd„ deƒZG dd„ deƒZG dd„ de jƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZdS )é    Nc               @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTestEqualityzUsed as a mixin for TestCasec             C   s0   x*| j D ] \}}|  ||¡ |  ||¡ qW d S )N)Úeq_pairsZassertEqual)ÚselfÚobj_1Úobj_2© r   ú/usr/lib/python3.7/support.pyÚtest_eq   s    zTestEquality.test_eqc             C   s0   x*| j D ] \}}|  ||¡ |  ||¡ qW d S )N)Úne_pairsZassertNotEqual)r   r   r   r   r   r   Útest_ne   s    zTestEquality.test_neN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdd„ ZdS )ÚTestHashingzUsed as a mixin for TestCasec             C   sè   xp| j D ]f\}}y&t|ƒt|ƒks4|  d||f ¡ W q tk
rl } z|  d|||f ¡ W d d }~X Y qX qW xp| jD ]f\}}y&t|ƒt|ƒkr¦|  d||f ¡ W qz tk
rÞ } z|  d|||f ¡ W d d }~X Y qzX qzW d S )Nz%r and %r do not hash equalzProblem hashing %r and %r: %sz#%s and %s hash equal, but shouldn'tzProblem hashing %s and %s: %s)r   ÚhashZfailÚ	Exceptionr
   )r   r   r   Úer   r   r   Ú	test_hash   s    *zTestHashing.test_hashN)r   r   r   r   r   r   r   r   r   r      s   r   c                   s”   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fd	d
„Z‡ fdd„Z‡ fdd„Z	‡ fdd„Z
‡ fdd„Z‡ fdd„Z‡ fdd„Z‡  ZS )Ú_BaseLoggingResultc                s   || _ tƒ  ¡  d S )N)Ú_eventsÚsuperÚ__init__)r   Úlog)Ú	__class__r   r   r   )   s    z_BaseLoggingResult.__init__c                s   | j  d¡ tƒ  |¡ d S )NÚ	startTest)r   Úappendr   r   )r   Útest)r   r   r   r   -   s    z_BaseLoggingResult.startTestc                s   | j  d¡ tƒ  ¡  d S )NÚstartTestRun)r   r   r   r   )r   )r   r   r   r   1   s    z_BaseLoggingResult.startTestRunc                s   | j  d¡ tƒ  |¡ d S )NÚstopTest)r   r   r   r   )r   r   )r   r   r   r   5   s    z_BaseLoggingResult.stopTestc                s   | j  d¡ tƒ  ¡  d S )NÚstopTestRun)r   r   r   r    )r   )r   r   r   r    9   s    z_BaseLoggingResult.stopTestRunc                s   | j  d¡ tƒ j|Ž  d S )NÚ
addFailure)r   r   r   r!   )r   Úargs)r   r   r   r!   =   s    z_BaseLoggingResult.addFailurec                s   | j  d¡ tƒ j|Ž  d S )NÚ
addSuccess)r   r   r   r#   )r   r"   )r   r   r   r#   A   s    z_BaseLoggingResult.addSuccessc                s   | j  d¡ tƒ j|Ž  d S )NÚaddError)r   r   r   r$   )r   r"   )r   r   r   r$   E   s    z_BaseLoggingResult.addErrorc                s   | j  d¡ tƒ j|Ž  d S )NÚaddSkip)r   r   r   r%   )r   r"   )r   r   r   r%   I   s    z_BaseLoggingResult.addSkipc                s   | j  d¡ tƒ j|Ž  d S )NÚaddExpectedFailure)r   r   r   r&   )r   r"   )r   r   r   r&   M   s    z%_BaseLoggingResult.addExpectedFailurec                s   | j  d¡ tƒ j|Ž  d S )NÚaddUnexpectedSuccess)r   r   r   r'   )r   r"   )r   r   r   r'   Q   s    z'_BaseLoggingResult.addUnexpectedSuccess)r   r   r   r   r   r   r   r    r!   r#   r$   r%   r&   r'   Ú__classcell__r   r   )r   r   r   (   s   r   c               @   s   e Zd ZdZedd„ ƒZdS )ÚLegacyLoggingResultzo
    A legacy TestResult implementation, without an addSubTest method,
    which records its method calls.
    c             C   s   t ‚d S )N)ÚAttributeError)r   r   r   r   Ú
addSubTest\   s    zLegacyLoggingResult.addSubTestN)r   r   r   r   Úpropertyr+   r   r   r   r   r)   V   s   r)   c                   s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚLoggingResultzE
    A TestResult implementation which records its method calls.
    c                s6   |d kr| j  d¡ n| j  d¡ tƒ  |||¡ d S )NZaddSubTestSuccessZaddSubTestFailure)r   r   r   r+   )r   r   ZsubtestÚerr)r   r   r   r+   f   s    zLoggingResult.addSubTest)r   r   r   r   r+   r(   r   r   )r   r   r-   a   s   r-   c               @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )Ú#ResultWithNoStartTestRunStopTestRunz?An object honouring TestResult before startTestRun/stopTestRun.c             C   s.   g | _ g | _d| _g | _g | _g | _d| _d S )Nr   F)ZfailuresÚerrorsZtestsRunZskippedZexpectedFailuresZunexpectedSuccessesZ
shouldStop)r   r   r   r   r   q   s    z,ResultWithNoStartTestRunStopTestRun.__init__c             C   s   d S )Nr   )r   r   r   r   r   r   z   s    z-ResultWithNoStartTestRunStopTestRun.startTestc             C   s   d S )Nr   )r   r   r   r   r   r   }   s    z,ResultWithNoStartTestRunStopTestRun.stopTestc             C   s   d S )Nr   )r   r   r   r   r   r$   €   s    z,ResultWithNoStartTestRunStopTestRun.addErrorc             C   s   d S )Nr   )r   r   r   r   r   r!   ƒ   s    z.ResultWithNoStartTestRunStopTestRun.addFailurec             C   s   d S )Nr   )r   r   r   r   r   r#   †   s    z.ResultWithNoStartTestRunStopTestRun.addSuccessc             C   s   dS )NTr   )r   r   r   r   ÚwasSuccessful‰   s    z1ResultWithNoStartTestRunStopTestRun.wasSuccessfulN)r   r   r   r   r   r   r   r$   r!   r#   r1   r   r   r   r   r/   n   s   	r/   )	ZunittestÚobjectr   r   Z
TestResultr   r)   r-   r/   r   r   r   r   Ú<module>   s   .