
    +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_connection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    @/usr/lib/python3/dist-packages/jeepney/io/tests/test_blocking.pysession_connr      s)     	)	, 
  s   )	)&)c                 >    | j                   j                  d      sJ y )N:)unique_name
startswith)r   s    r   test_connectr      s    ##..s333    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 t        t        d      }| j                  |dd      }|dk(  sJ y )NPing   timeout T)r    unwrap)r   bus_peersend_and_get_replyheadermessage_typer   method_returnbody)r   	ping_callreply
reply_bodys       r   test_send_and_get_replyr,      s    &1I++Iq+AE<<$$(A(AAAA::&1I00Ad0SJ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_proxyr9   %   sX    +|Q7E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)
Nz6io.gitlab.takluyver.jeepney.tests.blocking_test_filtersignalNameOwnerChanged)typesenderr   memberpathr   r
   r0   r    )r	   r   r   r   r   r   add_arg_conditionAddMatchfilterr3   recv_until_filteredr(   r   )r   r   r6   
match_rulematchesr7   
signal_msgs          r   test_filterrI   .   s    
\
*CCD##''!$$J   D) LL			Z	( GGt$axx!55gq5I
4\-E-E"FFFFG G G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_fdrT   G   s     ':J	)	= ?''
A'>? <<$$(A(AAAA	A		t	$ $vvx8###$ $	? ?$ $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   TrL   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]   Q   s    ,OIt!,#	|LK	)	= @''Q'?@ <<$$(A(AAAA::a=D   	@ @s   A;;B)pytestjeepneyr   r   r   jeepney.bus_messagesr   r   jeepney.io.blockingr   r	   utilsr   markskipif
pytestmarkfixturer   r   r#   r,   r9   rI   rT   r]   r!   r   r   <module>rg      s     = = 7 ; #[[!A   
  
4 #')G2$!r   