o
    Ž›a&
  ã                   @   sÌ   d dl Z d dlZd dlZd dl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ed	d
dd�Ze ¡ dd„ ƒZdd„ Ze ¡ dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )é    N)ÚDBusAddressÚnew_method_call)Úmessage_busÚ	MatchRule)Úopen_dbus_connectionÚopen_dbus_routerÚProxyé   )Úhave_session_buszTests require DBus session bus)Úreasonzorg.freedesktop.DBusz/org/freedesktop/DBuszorg.freedesktop.DBus.Peer)Úbus_nameÚobject_pathÚ	interfacec               	   C  sR   �t dd�I d H 4 I d H š} | V  W d   ƒI d H  d S 1 I d H s"w   Y  d S ©NÚSESSION©Úbus)r   ©Úconn© r   ú?/usr/lib/python3/dist-packages/jeepney/io/tests/test_asyncio.pyÚ
connection   s   €.ÿr   c                 Ã   s   �| j  d¡s	J ‚d S )Nú:)Úunique_nameÚ
startswith)r   r   r   r   Útest_connect    s   €r   c               	   C  sL   �t dd�4 I d H š} | V  W d   ƒI d H  d S 1 I d H sw   Y  d S r   )r   )Úrouterr   r   r   r   #   s   €.ÿr   c                 Ã   s8   �t tdƒ}tj|  |¡dd�I d H }|jdksJ ‚d S )NÚPingé   ©Útimeoutr   )r   Úbus_peerÚasyncioÚwait_forÚsend_and_get_replyÚbody)r   Ú	ping_callÚreplyr   r   r   Útest_send_and_get_reply(   s   €

ÿr(   c                 Ã   sN   �t t| ƒ}d}| |¡I d H }|dv sJ ‚| |¡I d H \}|du s%J ‚d S )Nz+io.gitlab.takluyver.jeepney.examples.Server>   ©r	   ©é   T)r   r   ÚRequestNameÚNameHasOwner)r   ÚproxyÚnameÚresÚ	has_ownerr   r   r   Ú
test_proxy/   s   €
r2   c                 Ã   sÀ   �t t| ƒ}d}tdtjtjdtjd�}| d|¡ | |¡I d H  |  |¡�/}| 	|¡I d H \}|dks7J ‚t
j| ¡ dd�I d H }|j|d	| jfksNJ ‚W d   ƒ d S 1 sYw   Y  d S )
Nz5io.gitlab.takluyver.jeepney.tests.asyncio_test_filterÚsignalÚNameOwnerChanged)ÚtypeÚsenderr   ÚmemberÚpathr   r	   g       @r   Ú )r   r   r   r   r   r   Úadd_arg_conditionÚAddMatchÚfilterr,   r"   r#   Úgetr%   r   )r   r   r/   Ú
match_ruleÚqueuer0   Ú
signal_msgr   r   r   Útest_filter8   s$   €
û"ûrA   c               
   Ã   sÄ   �t dd�I d H } zPt tj¡�. t d¡4 I d H š |  ¡ I d H  W d   ƒI d H  n1 I d H s2w   Y  W d   ƒ n1 sAw   Y  W |  ¡ I d H  d S W |  ¡ I d H  d S |  ¡ I d H  w )Nr   r   r   )	r   ÚpytestÚraisesr"   ÚTimeoutErrorÚasync_timeoutr    ÚreceiveÚcloser   r   r   r   Útest_recv_after_connectO   s   €(ÿ€ÿü"rH   )r"   rE   rB   Újeepneyr   r   Újeepney.bus_messagesr   r   Újeepney.io.asyncior   r   r   Úutilsr
   ÚmarkÚskipifÚ
pytestmarkr!   Úfixturer   r   r   r(   r2   rA   rH   r   r   r   r   Ú<module>   s4    ÿþý

	