U
    T‚gÖ  ã                   @  sv   d Z ddlmZ ddlmZ ddlmZmZm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 )z.
Tests for interrupting tests with Control-C.
é    )Úannotations)ÚStringIO)ÚreporterÚrunnerÚunittestc                   @  s   e Zd Zddœdd„ZdS )Ú	TrialTestÚNone©Úreturnc                 C  s    t ƒ | _t ¡ | _t ¡ | _d S ©N)r   Úoutputr   Z
TestResultr   Z
TestLoaderÚloader©Úself© r   úD/tmp/pip-unpacked-wheel-1_7di8ic/twisted/trial/test/test_keyboard.pyÚsetUp   s    
zTrialTest.setUpN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   c                      sZ   e Zd ZU ded< G dd„ dejƒZddœ‡ fdd„Zddœd	d
„Zddœdd„Z	‡  Z
S )ÚInterruptInTestTestszbool | NoneÚtest_03_doNothing_runc                   @  s6   e Zd Zddœdd„Zddœdd„Zddœdd„Zd	S )
z$InterruptInTestTests.InterruptedTestr   r	   c                 C  s   t ‚d S r   )ÚKeyboardInterruptr   r   r   r   Útest_02_raiseInterrupt   s    z;InterruptInTestTests.InterruptedTest.test_02_raiseInterruptc                 C  s   d S r   r   r   r   r   r   Útest_01_doNothing   s    z6InterruptInTestTests.InterruptedTest.test_01_doNothingc                 C  s
   dt _d S )NT)r   r   r   r   r   r   Útest_03_doNothing   s    z6InterruptInTestTests.InterruptedTest.test_03_doNothingN)r   r   r   r   r   r   r   r   r   r   ÚInterruptedTest   s   r   r   r	   c                   s$   t ƒ  ¡  | j tj¡| _d t_d S r   )Úsuperr   r   Ú	loadClassr   r   Úsuiter   r   ©Ú	__class__r   r   r   "   s    
zInterruptInTestTests.setUpc                 C  s4   |   d| j ¡ ¡ |   d| jj¡ |  | jj¡ d S )Né   r   )ÚassertEqualr   ÚcountTestCasesr   ÚtestsRunÚassertFalseÚ
shouldStopr   r   r   r   Útest_setUpOK'   s    z!InterruptInTestTests.test_setUpOKc                 C  sF   t  | jg¡ | j¡ |  | jj¡ |  d| jj¡ |  	t
jd¡ d S )Né   ztest_03_doNothing ran.)r   Ú
TrialSuiter   Úrunr   Ú
assertTruer'   r#   r%   r&   r   r   r   r   r   r   Útest_interruptInTest,   s     ÿz)InterruptInTestTests.test_interruptInTest)r   r   r   Ú__annotations__r   ÚTestCaser   r   r(   r-   Ú__classcell__r   r   r    r   r      s
   

r   c                      s^   e Zd ZU dZded< G dd„ dejƒZddœ‡ fdd	„Zddœd
d„Z	ddœdd„Z
‡  ZS )ÚInterruptInSetUpTestsr   ÚboolÚtest_02_runc                   @  s6   e Zd Zddœdd„Zddœdd„Zddœdd„Zd	S )
z%InterruptInSetUpTests.InterruptedTestr   r	   c                 C  s   t jdkrt‚d S ©Nr   )r1   r%   r   r   r   r   r   r   :   s    
z+InterruptInSetUpTests.InterruptedTest.setUpc                 C  s   t  jd7  _d S ©Né   )r1   r%   r   r   r   r   Útest_01>   s    z-InterruptInSetUpTests.InterruptedTest.test_01c                 C  s   t  jd7  _dt _d S ©Nr6   T)r1   r%   r3   r   r   r   r   Útest_02A   s    z-InterruptInSetUpTests.InterruptedTest.test_02N)r   r   r   r   r7   r9   r   r   r   r   r   9   s   r   r   r	   c                   s*   t ƒ  ¡  | j tj¡| _dt_dt_d S )NFr   )	r   r   r   r   r1   r   r   r3   r%   r   r    r   r   r   E   s    
zInterruptInSetUpTests.setUpc                 C  sB   |   dtj¡ |   d| j ¡ ¡ |   d| jj¡ |  | jj¡ d S ©Nr   r)   )r#   r1   r%   r   r$   r   r&   r'   r   r   r   r   r(   K   s    z"InterruptInSetUpTests.test_setUpOKc                 C  sF   t  | jg¡ | j¡ |  | jj¡ |  d| jj¡ |  	t
jd¡ d S )Nr)   útest_02 ran)r   r*   r   r+   r   r,   r'   r#   r%   r&   r1   r3   r   r   r   r   Útest_interruptInSetUpQ   s    z+InterruptInSetUpTests.test_interruptInSetUp)r   r   r   r%   r.   r   r/   r   r   r(   r<   r0   r   r   r    r   r1   5   s   
r1   c                      s^   e Zd ZU dZded< G dd„ dejƒZddœ‡ fdd	„Zddœd
d„Z	ddœdd„Z
‡  ZS )ÚInterruptInTearDownTestsr   r2   r3   c                   @  s6   e Zd Zddœdd„Zddœdd„Zddœdd„Zd	S )
z(InterruptInTearDownTests.InterruptedTestr   r	   c                 C  s   t jdkrt‚d S r4   )r=   r%   r   r   r   r   r   ÚtearDown]   s    
z1InterruptInTearDownTests.InterruptedTest.tearDownc                 C  s   t  jd7  _d S r5   )r=   r%   r   r   r   r   r7   a   s    z0InterruptInTearDownTests.InterruptedTest.test_01c                 C  s   t  jd7  _dt _d S r8   )r=   r%   r3   r   r   r   r   r9   d   s    z0InterruptInTearDownTests.InterruptedTest.test_02N)r   r   r   r>   r7   r9   r   r   r   r   r   \   s   r   r   r	   c                   s*   t ƒ  ¡  | j tj¡| _dt_dt_d S )Nr   F)	r   r   r   r   r=   r   r   r%   r3   r   r    r   r   r   h   s    
zInterruptInTearDownTests.setUpc                 C  sB   |   dtj¡ |   d| j ¡ ¡ |   d| jj¡ |  | jj¡ d S r:   )r#   r=   r%   r   r$   r   r&   r'   r   r   r   r   r(   n   s    z%InterruptInTearDownTests.test_setUpOKc                 C  sF   t  | jg¡ | j¡ |  d| jj¡ |  | jj¡ |  	t
jd¡ d S )Nr6   r;   )r   r*   r   r+   r   r#   r%   r,   r'   r&   r=   r3   r   r   r   r   Útest_interruptInTearDownt   s    z1InterruptInTearDownTests.test_interruptInTearDown)r   r   r   r%   r.   r   r/   r   r   r(   r?   r0   r   r   r    r   r=   X   s   
r=   N)Ú__doc__Ú
__future__r   Úior   Ztwisted.trialr   r   r   ZSynchronousTestCaser   r   r1   r=   r   r   r   r   Ú<module>   s    #