a
    óñ"h¨  ã                   @   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 )ÚTestEqualityúUsed as a mixin for TestCasec                 C   s,   | j D ] \}}|  ||¡ |  ||¡ qd S ©N)Úeq_pairsZassertEqual©ÚselfÚobj_1Úobj_2© r
   ú=/opt/python-3.9.21/usr/lib/python3.9/unittest/test/support.pyÚtest_eq   s    zTestEquality.test_eqc                 C   s,   | j D ] \}}|  ||¡ |  ||¡ qd S r   )Úne_pairsZassertNotEqualr   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 )ÚTestHashingr   c                 C   sä   | j D ]h\}}z&t|ƒt|ƒks2|  d||f ¡ W q tyl } z |  d|||f ¡ W Y d }~qd }~0 0 q| jD ]h\}}z&t|ƒt|ƒkr¢|  d||f ¡ W qv tyÜ } z |  d|||f ¡ W Y d }~qvd }~0 0 qvd 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 r   )Ú_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   Útestr   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%   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   Úargsr   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*   A   s    z_BaseLoggingResult.addSuccessc                    s   | j  d¡ tƒ j|Ž  d S )NÚaddError)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,   I   s    z_BaseLoggingResult.addSkipc                    s   | j  d¡ tƒ j|Ž  d S )NÚaddExpectedFailure)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.   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 r   )ÚAttributeErrorr$   r
   r
   r   Ú
addSubTest\   s    zLegacyLoggingResult.addSubTestN)r   r   r   r   Úpropertyr2   r
   r
   r
   r   r0   V   s   r0   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 u r| j  d¡ n| j  d¡ tƒ  |||¡ d S )NZaddSubTestSuccessZaddSubTestFailure)r   r    r   r2   )r   r"   ZsubtestÚerrr   r
   r   r2   f   s    zLoggingResult.addSubTest)r   r   r   r   r2   r/   r
   r
   r   r   r4   a   s   r4   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
shouldStopr$   r
   r
   r   r   q   s    z,ResultWithNoStartTestRunStopTestRun.__init__c                 C   s   d S r   r
   r!   r
   r
   r   r   z   s    z-ResultWithNoStartTestRunStopTestRun.startTestc                 C   s   d S r   r
   r!   r
   r
   r   r%   }   s    z,ResultWithNoStartTestRunStopTestRun.stopTestc                 C   s   d S r   r
   r!   r
   r
   r   r+   €   s    z,ResultWithNoStartTestRunStopTestRun.addErrorc                 C   s   d S r   r
   r!   r
   r
   r   r'   ƒ   s    z.ResultWithNoStartTestRunStopTestRun.addFailurec                 C   s   d S r   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*   r8   r
   r
   r
   r   r6   n   s   	r6   )	ZunittestÚobjectr   r   Z
TestResultr   r0   r4   r6   r
   r
   r
   r   Ú<module>   s   .