def test_filter(session_conn): bus = Proxy(message_bus, session_conn) name = "io.gitlab.takluyver.jeepney.tests.blocking_test_filter" match_rule = MatchRule( type="signal", sender=message_bus.bus_name, interface=message_bus.interface, member="NameOwnerChanged", path=message_bus.object_path, ) match_rule.add_arg_condition(0, name) # Ask the message bus to subscribe us to this signal bus.AddMatch(match_rule) with session_conn.filter(match_rule) as matches: res, = bus.RequestName(name) assert res == 1 # 1: got the name for _ in range(5): if len(matches): break session_conn.recv_messages(timeout=1.0) else: raise AssertionError("Expected signal message not received") signal_msg = matches.popleft() assert signal_msg.body == (name, '', session_conn.unique_name)
def test_filter(session_conn): bus = Proxy(message_bus, session_conn) name = "io.gitlab.takluyver.jeepney.tests.blocking_test_filter" match_rule = MatchRule( type="signal", sender=message_bus.bus_name, interface=message_bus.interface, member="NameOwnerChanged", path=message_bus.object_path, ) match_rule.add_arg_condition(0, name) # Ask the message bus to subscribe us to this signal bus.AddMatch(match_rule) with session_conn.filter(match_rule) as matches: res, = bus.RequestName(name) assert res == 1 # 1: got the name signal_msg = session_conn.recv_until_filtered(matches, timeout=2) assert signal_msg.body == (name, '', session_conn.unique_name)