o
    `                     @   sb   d dl Z d dlZd dlZd dlZd dlmZmZ defddZdd Z	dd	 Z
d
d Zdd ZdS )    N)FileDescriptor	NoFDErrorfdc                 C   sJ   t t}t|  W d   n1 sw   Y  |jjtjks#J dS )z<Check that the given number is not open as a file descriptorN)pytestraisesOSErrorosstatvalueerrnoZEBADF)r   exc_info r   8/usr/lib/python3/dist-packages/jeepney/tests/test_fds.pyassert_not_fd	   s   r   c                 C   s   t | d t jt jB }t|}| |ksJ W d    n1 s#w   Y  dt|v s0J tt	 |  W d    n1 sDw   Y  t
| d S )Naclosed)r   openO_CREATO_RDWRr   filenoreprr   r   r   r   tmp_pathr   wfdr   r   r   
test_close   s   

r   c              	   C   s   t | d t j}t|}| |ksJ | |ksJ z1dt|v s&J tt	 |  W d    n1 s:w   Y  W t 
| d S W t 
| d S t 
| w )Nr   	converted)r   r   r   r   r   Z	to_raw_fdr   r   r   r   closer   r   r   r   test_to_raw_fd   s   
r   c                 C   s   t | d t jt jB }t|}|d}|dsJ W d    n1 s'w   Y  dt|v s4J t	t
 |  W d    n1 sHw   Y  t| | d  dks[J d S )Nr   wabcr   )r   r   r   r   r   Zto_filewriter   r   r   r   r   r   Z	read_text)r   r   r   fr   r   r   test_to_file-   s   
r"   c                  C   s   t  \} }z[| d | }t|}| }|d}|r%d|s'J W d    n1 s1w   Y  dt|v s>J t	
t |  W d    n1 sRw   Y  t| W |   d S |   w )Ns   abcd   r   )socketZ
socketpairZsendalldetachr   Z	to_socketZrecv
startswithr   r   r   r   r   r   r   )s1s2Zsfdr   Zsockbr   r   r   test_to_socket=   s   




r*   )r   r   r$   r   Zjeepneyr   r   intr   r   r   r"   r*   r   r   r   r   <module>   s    