o
    •ºé`4  ã                   @   sÄ   d dl Z d dlZd dlmZmZmZmZ d dlmZm	Z	 d dl
mZmZmZ ddlmZ ejj ejje dd�gZd	d
„ Zedddd�Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    N)ÚDBusAddressÚDBusErrorResponseÚMessageTypeÚnew_method_call)Úmessage_busÚ	MatchRule)Úopen_dbus_connectionÚopen_dbus_routerÚProxyé   )Úhave_session_buszTests require DBus session bus)Úreasonc               	   Ã   s`   �t dd�I d H } | 4 I d H š | j d¡sJ ‚W d   ƒI d H  d S 1 I d H s)w   Y  d S )NÚSESSION©Úbusú:)r   Úunique_nameÚ
startswith)Úconn© r   ú</usr/lib/python3/dist-packages/jeepney/io/tests/test_trio.pyÚtest_connect   s
   €.ÿr   zorg.freedesktop.DBusz/org/freedesktop/DBuszorg.freedesktop.DBus.Peer)Úbus_nameÚobject_pathÚ	interfacec               	   Ã   s¨   �t tdƒ} tdd�4 I d H š(}t d¡� | | ¡I d H }W d   ƒ n1 s(w   Y  W d   ƒI d H  n1 I d H s=w   Y  |jjtj	ksKJ ‚|j
dksRJ ‚d S )NÚPingr   r   é   r   )r   Úbus_peerr	   ÚtrioÚ
fail_afterÚsend_and_get_replyÚheaderÚmessage_typer   Úmethod_returnÚbody©Ú	ping_callÚreqÚreplyr   r   r   Útest_send_and_get_reply    s   €
ÿ(ÿr)   c               	   Ã   sš   �t tdƒ} tdd�4 I d H š(}t d¡� | | ¡I d H }W d   ƒ n1 s(w   Y  W d   ƒI d H  n1 I d H s=w   Y  |jjtj	ksKJ ‚d S )NÚSnartr   r   r   )
r   r   r	   r   r   r    r!   r"   r   Úerrorr%   r   r   r   Útest_send_and_get_reply_error*   s   €
ÿ(ÿr,   c               	   Ã   sŽ   �t dd�4 I d H š0} tt| ƒ}d}| |¡I d H }|dv s J ‚| |¡I d H \}|du s/J ‚W d   ƒI d H  d S 1 I d H s@w   Y  d S )Nr   r   z+io.gitlab.takluyver.jeepney.examples.Server>   ©r   ©é   T)r	   r
   r   ÚRequestNameÚNameHasOwner)r'   ÚproxyÚnameÚresÚ	has_ownerr   r   r   Ú
test_proxy3   s   €
.ùr6   c               	   Ã   sŠ   �t dd�4 I d H š.} tt| ƒ}t t¡� | d¡I d H  W d   ƒ n1 s(w   Y  W d   ƒI d H  d S 1 I d H s>w   Y  d S )Nr   r   z:123)r	   r
   r   ÚpytestÚraisesr   r0   )r'   r2   r   r   r   Útest_proxy_error>   s   €
ÿ.þr9   c               
   Ã   s2  �d} t dd�4 I d H š€}tt|ƒ}tdtjtjdtjd�}| d| ¡ | |¡I d H  | 	|¡4 I d H šA}| 
| ¡I d H \}|dksEJ ‚t d	¡� | ¡ I d H }W d   ƒ n1 s\w   Y  |j| d
|jfkslJ ‚W d   ƒI d H  n1 I d H s|w   Y  W d   ƒI d H  d S 1 I d H s’w   Y  d S )Nz2io.gitlab.takluyver.jeepney.tests.trio_test_filterr   r   ÚsignalÚNameOwnerChanged)ÚtypeÚsenderr   ÚmemberÚpathr   r   g       @Ú )r	   r
   r   r   r   r   r   Úadd_arg_conditionÚAddMatchÚfilterr0   r   r   Úreceiver$   r   )r3   Úrouterr   Ú
match_ruleÚchanr4   Ú
signal_msgr   r   r   Útest_filterE   s,   €
ûÿ*ú.ñrI   c              
   Ã   sÞ   �t | dƒ}t d¡�0 tddd�4 I d H š}| |¡I d H }W d   ƒI d H  n1 I d H s/w   Y  W d   ƒ n1 s>w   Y  |jjtju sLJ ‚|j	d  
d¡�}| ¡ dks]J ‚W d   ƒ d S 1 shw   Y  d S )	NÚGetFDr   r   T©r   Ú
enable_fdsr   zw+Úreadme)r   r   r   r	   r    r!   r"   r   r#   r$   Úto_fileÚread)Úrespond_with_fdÚ
getfd_callrE   r(   Úfr   r   r   Útest_recv_fd_   s   €
(ÿ€ÿ"ÿrS   c              
   Ã   s¼   �| \}}t |dd|fƒ}t d¡�0 tddd�4 I d H š}| |¡I d H }W d   ƒI d H  n1 I d H s6w   Y  W d   ƒ n1 sEw   Y  |jjtju sSJ ‚|j	d |ks\J ‚d S )NÚReadFDÚhr   r   TrK   r   )
r   r   r   r	   r    r!   r"   r   r#   r$   )Útemp_file_and_contentsÚread_from_fdÚ	temp_fileÚdataÚreadfd_callrE   r(   r   r   r   Útest_send_fdj   s   €(ÿ€ÿr[   )r   r7   Újeepneyr   r   r   r   Újeepney.bus_messagesr   r   Újeepney.io.trior   r	   r
   Úutilsr   ÚmarkÚskipifÚ
pytestmarkr   r   r)   r,   r6   r9   rI   rS   r[   r   r   r   r   Ú<module>   s0    ÿþ
ý
	