B
    18™\¨  ã               @   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_pairsÚassertEqual)ÚselfÚobj_1Úobj_2© r   úY/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/unittest/test/support.pyÚtest_eq   s    zTestEquality.test_eqc             C   s0   x*| j D ] \}}|  ||¡ |  ||¡ qW d S )N)Úne_pairsÚ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   ÚhashÚ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 )NÚaddSubTestSuccessZaddSubTestFailure)r   r   r   r.   )r   r    ÚsubtestÚerr)r   r   r	   r.   f   s    zLoggingResult.addSubTest)r   r   r   r   r.   r+   r   r   )r   r	   r0   a   s   r0   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)ÚfailuresÚerrorsÚtestsRunÚskippedÚexpectedFailuresÚunexpectedSuccessesÚ
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&   r<   r   r   r   r	   r4   n   s   	r4   )	ÚunittestÚobjectr   r   Ú
TestResultr   r,   r0   r4   r   r   r   r	   Ú<module>   s   .