o
    ÑtPfå  ã                   @   sê   d dl mZ d dlZd dlZd dlZd dlmZmZ d dlZd dl m	Z
 d dlZd dlZG dd„ dej	jjƒZe
 d¡G dd„ dej	jjƒƒZe eed	ƒd
¡e
 d¡G dd„ dej	jjƒƒƒZG dd„ de
jƒZedkrse
 ¡  dS dS )é    )ÚsixN)ÚselectÚsocketc                   @   s   e Zd Zdd„ ZdS )Ú
TestSelectc                 C   s   t   g g g |¡ d S ©N)r   )ÚselfÚtimeout© r	   úZ/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__select.pyÚwait   s   zTestSelect.waitN)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r      s    r   zCant select on filesc                   @   s0   e Zd Zdd„ Ze ej d¡d¡dd„ ƒZ	dS )ÚTestSelectReadc              	   C   sP   t  ¡ \}}zt |gg g |¡ W t  |¡ t  |¡ d S t  |¡ t  |¡ w r   )ÚosÚpiper   Úclose)r   r   ÚrÚwr	   r	   r
   r      s   

ÿzTestSelectRead.waitÚfreebsdz*skip because of a FreeBSD bug: kern/155606c                 C   sî   t tdƒh}| ¡ }| ¡  zt |gg g d¡ W n6 ty3 } z|  |jtj¡ W Y d }~n.d }~w tj	yO } z|  |j
d tj¡ W Y d }~nd }~ww |  d¡ W d   ƒ d S W d   ƒ d S W d   ƒ d S 1 spw   Y  d S )NÚrbr   zexception not raised)ÚopenÚ__file__Úfilenor   r   ÚOSErrorÚassertEqualÚerrnoÚEBADFÚerrorÚargsÚfail)r   ÚfpÚfdÚerrr	   r	   r
   Ú
test_errno   s$   € €þôù
"özTestSelectRead.test_errnoN)
r   r   r   r   ÚunittestÚskipIfÚsysÚplatformÚ
startswithr$   r	   r	   r	   r
   r      s    	ÿr   Úpollz
Needs pollzCant poll on filesc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestPollReadc              	   C   sv   t  ¡ \}}z$t ¡ }| |tj¡ | |d ¡ W | |¡ t  |¡ t  |¡ d S | |¡ t  |¡ t  |¡ w )Niè  )r   r   r   r*   ÚregisterÚPOLLINÚ
unregisterr   )r   r   r   r   r*   r	   r	   r
   r   5   s   


þ
zTestPollRead.waitc                 C   s   t  ¡ }|  t|jd¡ d S )Né   )r   r*   ÚassertRaisesÚKeyErrorr.   )r   r*   r	   r	   r
   Ú test_unregister_never_registeredC   s   z-TestPollRead.test_unregister_never_registeredc                 C   s~   |   d¡ ttdƒ+}| ¡ }t ¡ }| |tj¡ | ¡  | d¡}|  	||tj
fg¡ W d   ƒ d S 1 s8w   Y  d S )NzŸlibev >= 4.27 aborts the process if built with EV_VERIFY >= 2. For libuv, depending on whether the fileno is reused or not this either crashes or does nothing.r   r   )ÚskipTestr   r   r   r   r*   r,   r-   r   r   ÚPOLLNVAL)r   r!   r"   r*   Úresultr	   r	   r
   Útest_poll_invalidJ   s   ÿ
"özTestPollRead.test_poll_invalidN)r   r   r   r   r2   r6   r	   r	   r	   r
   r+   2   s    r+   c                   @   s8   e Zd Zdd„ Zeejdƒrdd„ Zdd„ Zdd	„ Z	d
S )ÚTestSelectTypesc                 C   s<   t   ¡ }zt t| ¡ ƒgg g d¡ W | ¡  d S | ¡  w ©Nçü©ñÒMbP?)r   r   Úintr   r   ©r   Úsockr	   r	   r
   Útest_int]   s   zTestSelectTypes.test_intÚlongc                 C   s@   t   ¡ }zt tj | ¡ ¡gg g d¡ W | ¡  d S | ¡  w r8   )r   r   r   Úbuiltinsr>   r   r   r;   r	   r	   r
   Ú	test_longe   s   ÿzTestSelectTypes.test_longc                    s@   t   ¡ ‰ ‡ fdd„}zt |ƒ g g d¡ W ˆ  ¡  d S ˆ  ¡  w )Nc                   3   s    t ˆ  ¡ ƒV  d S r   )r:   r   r	   ©r<   r	   r
   Úfileno_iterp   s   €z2TestSelectTypes.test_iterable.<locals>.fileno_iterr9   )r   r   r   )r   rB   r	   rA   r
   Útest_iterablem   s
   zTestSelectTypes.test_iterablec                 C   s"   d| _ |  ttjdgg g d¡ d S )NFÚhellor9   )Úswitch_expectedr0   Ú	TypeErrorr   )r   r	   r	   r
   Útest_stringx   s   zTestSelectTypes.test_stringN)
r   r   r   r=   Úhasattrr   r?   r@   rC   rG   r	   r	   r	   r
   r7   [   s    r7   Ú__main__)Úgevent.testingr   r'   r   r   Úgeventr   r   Úgevent.coreÚtestingÚ	greentestÚgevent.testing.timingr%   ÚtimingÚAbstractGenericWaitTestCaser   ÚskipOnWindowsr   Ú
skipUnlessrH   r+   ÚTestCaser7   r   Úmainr	   r	   r	   r
   Ú<module>   s&    '"ÿ