o
    ¯bÈ  ã                   @   sj   d 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.
é    )ÚStringIO)ÚreporterÚrunnerÚunittestc                   @   s   e Zd Zdd„ ZdS )Ú	TrialTestc                 C   s    t ƒ | _t ¡ | _t ¡ | _d S ©N)r   Úoutputr   Ú
TestResultr   Ú
TestLoaderÚloader©Úself© r   úB/usr/lib/python3/dist-packages/twisted/trial/test/test_keyboard.pyÚsetUp   s   
zTrialTest.setUpN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s    r   c                       s>   e Zd ZG dd„ dejƒZ‡ fdd„Zdd„ Zdd„ Z‡  Z	S )	ÚInterruptInTestTestsc                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z$InterruptInTestTests.InterruptedTestc                 C   s   t ‚r   )ÚKeyboardInterruptr   r   r   r   Útest_02_raiseInterrupt   ó   z;InterruptInTestTests.InterruptedTest.test_02_raiseInterruptc                 C   s   d S r   r   r   r   r   r   Útest_01_doNothing   r   z6InterruptInTestTests.InterruptedTest.test_01_doNothingc                 C   s
   dt _d S )NT)r   Útest_03_doNothing_runr   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   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   óF   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   r   ÚTestCaser   r   r(   r.   Ú__classcell__r   r   r    r   r      s
    
r   c                       óB   e Zd ZdZG dd„ dejƒZ‡ fdd„Zdd„ Zdd	„ Z	‡  Z
S )
ÚInterruptInSetUpTestsr   c                   @   r   )z%InterruptInSetUpTests.InterruptedTestc                 C   ó   t jdkrt‚d S ©Nr   )r2   r%   r   r   r   r   r   r   7   ó   
ÿz+InterruptInSetUpTests.InterruptedTest.setUpc                 C   ó   t  jd7  _d S ©Né   )r2   r%   r   r   r   r   Útest_01;   ó   z-InterruptInSetUpTests.InterruptedTest.test_01c                 C   ó   t  jd7  _dt _d S ©Nr8   T)r2   r%   Útest_02_runr   r   r   r   Útest_02>   ó   
z-InterruptInSetUpTests.InterruptedTest.test_02N)r   r   r   r   r9   r>   r   r   r   r   r   6   ó    r   c                    ó*   t ƒ  ¡  | j tj¡| _dt_dt_d S )NFr   )	r   r   r   r   r2   r   r   r=   r%   r   r    r   r   r   B   ó   

zInterruptInSetUpTests.setUpc                 C   óB   |   dtj¡ |   d| j ¡ ¡ |   d| jj¡ |  | jj¡ d S ©Nr   r*   )r#   r2   r%   r   r$   r   r&   r'   r   r   r   r   r(   H   ó   z"InterruptInSetUpTests.test_setUpOKc                 C   r)   )Nr*   útest_02 ran)r   r+   r   r,   r   r-   r'   r#   r%   r&   r2   r=   r   r   r   r   Útest_interruptInSetUpN   s   z+InterruptInSetUpTests.test_interruptInSetUp)r   r   r   r%   r   r/   r   r   r(   rG   r0   r   r   r    r   r2   3   ó    r2   c                       r1   )
ÚInterruptInTearDownTestsr   c                   @   r   )z(InterruptInTearDownTests.InterruptedTestc                 C   r3   r4   )rI   r%   r   r   r   r   r   ÚtearDownY   r5   z1InterruptInTearDownTests.InterruptedTest.tearDownc                 C   r6   r7   )rI   r%   r   r   r   r   r9   ]   r:   z0InterruptInTearDownTests.InterruptedTest.test_01c                 C   r;   r<   )rI   r%   r=   r   r   r   r   r>   `   r?   z0InterruptInTearDownTests.InterruptedTest.test_02N)r   r   r   rJ   r9   r>   r   r   r   r   r   X   r@   r   c                    rA   )Nr   F)	r   r   r   r   rI   r   r   r%   r=   r   r    r   r   r   d   rB   zInterruptInTearDownTests.setUpc                 C   rC   rD   )r#   rI   r%   r   r$   r   r&   r'   r   r   r   r   r(   j   rE   z%InterruptInTearDownTests.test_setUpOKc                 C   sF   t  | jg¡ | j¡ |  d| jj¡ |  | jj¡ |  	t
jd¡ d S )Nr8   rF   )r   r+   r   r,   r   r#   r%   r-   r'   r&   rI   r=   r   r   r   r   Útest_interruptInTearDownp   s   z1InterruptInTearDownTests.test_interruptInTearDown)r   r   r   r%   r   r/   r   r   r(   rK   r0   r   r   r    r   rI   U   rH   rI   N)Ú__doc__Úior   Útwisted.trialr   r   r   ÚSynchronousTestCaser   r   r2   rI   r   r   r   r   Ú<module>   s   "