
    +c
                         d dl Z d dlmZmZmZ d dlmZmZ d dlm	Z	m
Z
 ddlmZ e j                  j                  e d      Ze j                   d	        Zd
 Z eddd      Zd Zd Zd Zd Zd Zy)    N)new_method_callMessageTypeDBusAddress)message_bus	MatchRule)open_dbus_routerProxy   )have_session_buszTests require DBus session bus)reasonc               #   V   K   t        d      5 } |  d d d        y # 1 sw Y   y xY ww)NSESSION)bus)r   )conns    A/usr/lib/python3/dist-packages/jeepney/io/tests/test_threading.pyrouterr      s)     	i	( D
  s   )	)&)c                 >    | j                   j                  d      sJ y )N:)unique_name
startswith)r   s    r   test_connectr      s    ((---    zorg.freedesktop.DBusz/org/freedesktop/DBuszorg.freedesktop.DBus.Peer)bus_nameobject_path	interfacec                     t        t        d      }| j                  |d      }|j                  j                  t
        j                  k(  sJ |j                  dk(  sJ y )NPing   timeout )r   bus_peersend_and_get_replyheadermessage_typer   method_returnbody)r   	ping_callreplys      r   test_send_and_get_replyr*      sS    &1I%%i%;E<<$$(A(AAAA::r   c                     t        t        | d      }d}|j                  |      }|dv sJ |j                  |d      \  }|du sJ y )Nr   r   z+io.gitlab.takluyver.jeepney.examples.Server>   r
         )_timeoutT)r	   r   RequestNameNameHasOwner)r   proxynameres	has_owners        r   
test_proxyr7   !   sX    +vq1E8D


D
!C,##D1#5JIr   c                    t        t        |       }d}t        dt        j                  t        j                  dt        j
                        }|j                  d|       |j                  |       | j                  |      5 }|j                  |      \  }|dk(  sJ |j                  d      }|j                  |d	| j                  fk(  sJ 	 d d d        y # 1 sw Y   y xY w)
Nz7io.gitlab.takluyver.jeepney.tests.threading_test_filtersignalNameOwnerChanged)typesenderr   memberpathr   r
   g       @r    )r	   r   r   r   r   r   add_arg_conditionAddMatchfilterr1   getr'   r   )r   r   r4   
match_rulequeuer5   
signal_msgs          r   test_filterrG   *   s    
V
$CDD##''!$$J   D) LL	z	" Aet$axxYYsY+
4V-?-?"@@@@A A As   ACCc                 h   t        | d      }t        dd      5 }|j                  |d      }d d d        j                  j                  t
        j                  u sJ |j                  d   j                  d      5 }|j                         d	k(  sJ 	 d d d        y # 1 sw Y   oxY w# 1 sw Y   y xY w)
NGetFDr   Tr   
enable_fdsr   r   r   zw+readme)
r   r   r#   r$   r%   r   r&   r'   to_fileread)respond_with_fd
getfd_callr   r)   fs        r   test_recv_fdrR   B   s     ':J	iD	9 AV))*a)@A <<$$(A(AAAA	A		t	$ $vvx8###$ $	A A$ $s   B<B(B%(B1c                    | \  }}t        |dd|f      }t        dd      5 }|j                  |d      }d d d        j                  j                  t
        j                  u sJ |j                  d   |k(  sJ y # 1 sw Y   FxY w)	NReadFDhr   TrJ   r   r   r   )r   r   r#   r$   r%   r   r&   r'   )temp_file_and_contentsread_from_fd	temp_filedatareadfd_callr   r)   s          r   test_send_fdr[   L   s    ,OIt!,#	|LK	iD	9 BV))+q)AB <<$$(A(AAAA::a=D   	B Bs   A;;B)pytestjeepneyr   r   r   jeepney.bus_messagesr   r   jeepney.io.threadingr   r	   utilsr   markskipif
pytestmarkfixturer   r   r"   r*   r7   rG   rR   r[   r!   r   r   <module>re      s     = = 7 8 #[[!A   
  
. #')A0$!r   