U
    °[Öe  ã                   @   sb   d dl Z d dlZd dlZd dlZd dlmZmZ edœdd„Zdd„ Z	dd	„ Z
d
d„ Zdd„ ZdS )é    N)ÚFileDescriptorÚ	NoFDError)Úfdc              	   C   s6   t  t¡}t | ¡ W 5 Q R X |jjtjks2t‚dS )z<Check that the given number is not open as a file descriptorN)	ÚpytestÚraisesÚOSErrorÚosÚstatÚvalueÚerrnoÚEBADFÚAssertionError)r   Úexc_info© r   úX/var/www/html/services/stratfitenv/lib/python3.8/site-packages/jeepney/tests/test_fds.pyÚassert_not_fd	   s    r   c              	   C   sv   t  | d t jt jB ¡}t|ƒ}| ¡ |ks2t‚W 5 Q R X dt|ƒksLt‚t 	t
¡ | ¡  W 5 Q R X t|ƒ d S )NÚaÚclosed)r   ÚopenÚO_CREATÚO_RDWRr   Úfilenor   Úreprr   r   r   r   ©Útmp_pathr   Úwfdr   r   r   Ú
test_close   s    
r   c              	   C   s~   t  | d t j¡}t|ƒ}| ¡ |ks*t‚| ¡ |ks:t‚z2dt|ƒksLt‚t	 
t¡ | ¡  W 5 Q R X W 5 t  |¡ X d S )Nr   Ú	converted)r   r   r   r   r   r   Z	to_raw_fdÚcloser   r   r   r   r   r   r   r   Útest_to_raw_fd   s    r   c              	   C   s’   t  | d t jt jB ¡}t|ƒ}| d¡}| d¡s:t‚W 5 Q R X dt|ƒksTt‚t	 
t¡ | ¡  W 5 Q R X t|ƒ | d  ¡ dksŽt‚d S )Nr   ÚwÚabcr   )r   r   r   r   r   Zto_fileÚwriter   r   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¡}|rJd |¡sNt	‚W 5 Q R X dt
|ƒksht	‚t t¡ | ¡  W 5 Q R X t|ƒ W 5 |  ¡  X d S )Ns   abcdé   r   )ÚsocketÚ
socketpairr   ÚsendallÚdetachr   Z	to_socketÚrecvÚ
startswithr   r   r   r   r   r   r   )Ús1Ús2Zsfdr   ÚsockÚbr   r   r   Útest_to_socket=   s    


r1   )r   r   r'   r   Zjeepneyr   r   Úintr   r   r   r%   r1   r   r   r   r   Ú<module>   s   