o
    tPf                     @   s   d dl Z d dlmZ d dlZd dlmZ dd ZdZG dd dej	Z
G dd	 d	e
ZG d
d de
Z[
edkr>e  dS dS )    N)get_hubc                 C   s   | N )exr   r   _/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__systemerror.pyraise_      r   zshould be re-raised and caughtc                   @   sL   e Zd 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 )TestNFc                 G   s   t r   )NotImplementedErrorselfargsr   r   r   start   r   z
Test.startc                 C   s
   d | _ d S r   )xr   r   r   r   setUp   s   
z
Test.setUpc              
   C   sf   |  tjt z
td W t	d ty2 } zt|tks'J tt|W Y d }~d S d }~ww )NMbP?zmust raise SystemExit)
r   sysexitMSGgeventsleep
SystemExitstrreprAssertionError)r   r   r   r   r   test_sys_exit   s   *zTest.test_sys_exitc                 C   s6   |  tt z
td W td ty   Y d S w )Nr   zmust raise KeyboardInterrupt)r   r   KeyboardInterruptr   r   r   r   r   r   r   test_keyboard_interrupt!   s   zTest.test_keyboard_interruptc              
   C   sp   ddl m} |jdddd z!z| tt 	 t d q ty%   Y nw W |ddt_	d S |ddt_	w )	Nr   )monkeyFT)stdinstdoutstderrg?r   r"   )
r   r   	patch_sysr   r   r   r   get_originalr   r"   )r   r   r   r   r   &test_keyboard_interrupt_stderr_patched+   s   
"z+Test.test_keyboard_interrupt_stderr_patchedc                 C   sL   |  ttt | tt td W d    d S 1 sw   Y  d S )NgMb`?)r   r   SystemErrorr   assertRaisesRegexr   r   r   r   r   r   test_system_error:   s   "zTest.test_system_errorc                 C   s   |  ttd td d S )Nz+regular exception must not kill the programr   )r   r   	Exceptionr   r   r   r   r   r   test_exceptionA   s   zTest.test_exception)__name__
__module____qualname__r   error_fatalr   r   r   r   r%   r(   r*   r   r   r   r   r	      s    

r	   c                       s:   e Zd Zdd Zdd Zejr fddZ  ZS   ZS )TestCallbackc                 C   s$   | j d ur| j jrJ | j d S d S r   )r   pendingr   r   r   r   tearDownH   s   
zTestCallback.tearDownc                 G   s   t  jj| | _d S r   )r   looprun_callbackr   r   r   r   r   r   Q   s   zTestCallback.startc                    s   t d tt|   d S )Nr   )r   r   superr/   r*   r   	__class__r   r   r*   U   s   
zTestCallback.test_exception)	r+   r,   r-   r1   r   	greentestLIBUVr*   __classcell__r   r   r5   r   r/   F   s    	r/   c                   @   s   e Zd Zdd Zdd ZdS )	TestSpawnc                 C   s.   t d | jd ur| jjsJ | jd S d S )Ng-C6?)r   r   r   deadr   r   r   r   r1   b   s
   

zTestSpawn.tearDownc                 G   s   t j| | _d S r   )r   spawnr   r   r   r   r   r   g   s   zTestSpawn.startN)r+   r,   r-   r1   r   r   r   r   r   r:   `   s    r:   __main__)r   gevent.testingtestingr7   r   
gevent.hubr   r   r   TestCaser	   r/   r:   r+   mainr   r   r   r   <module>   s    9