o
    gF                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ e	ej
dd dkdG dd dejZdd	 Zed
krFe  dS dS )    N)support   winz can't easily test on this systemc                   @   s~   e Zd ZG dd dZG dd dZdd Zeej	
ddd	d
 Zdd Zeeedddd Zdd Zdd ZdS )SelectTestCasec                   @   s   e Zd ZdS )zSelectTestCase.NopeN)__name__
__module____qualname__ r	   r	   F/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_select.pyNope   s    r   c                   @   s   e Zd Zdd ZdS )zSelectTestCase.Almostc                 C   s   dS )Nfilenor	   selfr	   r	   r
   r      s   zSelectTestCase.Almost.filenoNr   r   r   r   r	   r	   r	   r
   Almost   s    r   c                 C   sx   |  ttjddd |  ttj|  gg g  |  ttj|  gg g  |  ttjg g g d |  ttjg g g d d S )N      r   znot a number)ZassertRaises	TypeErrorselectr   r   
ValueErrorr   r	   r	   r
   test_error_conditions   s
   z$SelectTestCase.test_error_conditionsZfreebsdz*skip because of a FreeBSD bug: kern/155606c                 C   s   t tdD}| }|  zt|gg g d W n ty3 } z| |jtj W Y d }~nd }~ww | 	d W d    d S W d    d S 1 sLw   Y  d S )Nrbr   zexception not raised)
open__file__r   closer   OSErrorassertEqualerrnoEBADFfail)r   fpfderrr	   r	   r
   
test_errno   s   "zSelectTestCase.test_errnoc                 C   s>   t  g g g d\}}}| || | || | || d S )Nr   )r   ZassertIsNot)r   rwxr	   r	   r
   test_returned_list_identity*   s   z*SelectTestCase.test_returned_list_identitypopenzneed os.popen()c           
      C   s  t d}tjdd|g}tj|tjdd}|j}dD ]M}tj	r&t
d|  t|gg g |\}}}| |g  | |g  |sAq||gkr_| }	tj	rSt
t|	 |	s^tj	r\t
d  qpq| d||| qW d    d S W d    d S 1 s{w   Y  d S )	Nz
            import time
            for i in range(10):
                print("testing...", flush=True)
                time.sleep(0.050)
        z-Iz-c)stdout)r   r   r            NNNNNNNNNNz
timeout = ZEOFz'Unexpected return values from select():)textwrapdedentsys
executable
subprocessPopenPIPEr*   r   verboseprintr   r   readlinereprr    )
r   codecmdprocpipetimeoutZrfdZwfdZxfdliner	   r	   r
   test_select1   s8   

"zSelectTestCase.test_selectc                    sR   g  G  fddd}| gd  d d < |  tg  g g  d d g f d S )Nc                       s   e Zd Z fddZdS )z-SelectTestCase.test_select_mutated.<locals>.Fc                    s    d= t j S )Nr   )r0   
__stdout__r   r   ar	   r
   r   T   s   
z4SelectTestCase.test_select_mutated.<locals>.F.filenoNr   r	   rA   r	   r
   FS   s    rC   
      )r   r   )r   rC   r	   rA   r
   test_select_mutatedQ   s   (z"SelectTestCase.test_select_mutatedc                 C   s:   t | tt  ttdrt | tt  d S d S )Ndevpoll)r   Zcheck_disallow_instantiationtyper   pollhasattrrG   r   r	   r	   r
   test_disallow_instantiationZ   s   
z*SelectTestCase.test_disallow_instantiationN)r   r   r   r   r   r   unittestskipIfr0   platform
startswithr$   r(   Z
skipUnlessrJ   osr?   rF   rK   r	   r	   r	   r
   r   
   s    

	r   c                   C   s   t   d S )N)r   reap_childrenr	   r	   r	   r
   tearDownModule`   s   rR   __main__)r   rP   r   r2   r0   r.   rL   testr   rM   rN   ZTestCaser   rR   r   mainr	   r	   r	   r
   <module>   s     T