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ÚerrnoÚ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   Ú	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   Úto_fileÚwriter   r   r   r   r   r   Ú	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   )ÚsocketÚ
socketpairÚsendallÚdetachr   Ú	to_socketÚrecvÚ
startswithr   r   r   r   r   r   r   )Ús1Ús2Úsfdr   ÚsockÚbr   r   r   Útest_to_socket=   s   


þ
ÿ
r4   )r   r   r(   r   Újeepneyr   r   Úintr   r   r   r&   r4   r   r   r   r   Ú<module>   s    