[Telepathy-commits] [telepathy-salut/master] test-two-muc-stream-tubes.py: wait for the TubeStateChanged and StreamTubeNewConnection signals
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Tue Dec 2 03:00:28 PST 2008
---
tests/twisted/avahi/test-two-muc-stream-tubes.py | 38 ++++++++++++++++++----
1 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/tests/twisted/avahi/test-two-muc-stream-tubes.py b/tests/twisted/avahi/test-two-muc-stream-tubes.py
index b2ef270..694b5fc 100644
--- a/tests/twisted/avahi/test-two-muc-stream-tubes.py
+++ b/tests/twisted/avahi/test-two-muc-stream-tubes.py
@@ -24,6 +24,10 @@ SOCKET_ADDRESS_TYPE_UNIX = dbus.UInt32(0)
SOCKET_ADDRESS_TYPE_IPV4 = dbus.UInt32(2)
SOCKET_ACCESS_CONTROL_LOCALHOST = dbus.UInt32(0)
+TUBE_STATE_LOCAL_PENDING = 0
+TUBE_STATE_REMOTE_PENDING = 1
+TUBE_STATE_OPEN = 2
+
sample_parameters = dbus.Dictionary({
's': 'hello',
'ay': dbus.ByteArray('hello'),
@@ -187,29 +191,38 @@ def test(q, bus, conn):
args=['', [conn2_self_handle], [], [], [], conn2_self_handle, 0])
# first connection: offer a muc stream tube
- t = conn.RequestChannel(CHANNEL_TYPE_TUBES, HT_ROOM, muc_handle1, True)
- contact1_tubes_channel = make_channel_proxy(conn, t, "Channel.Type.Tubes")
+ tubes1_path = conn.RequestChannel(CHANNEL_TYPE_TUBES, HT_ROOM, muc_handle1, True)
+ contact1_tubes_channel = make_channel_proxy(conn, tubes1_path, "Channel.Type.Tubes")
q.expect('dbus-signal', signal='NewChannel',
- args=[t, CHANNEL_TYPE_TUBES, HT_ROOM, muc_handle1, True])
+ args=[tubes1_path, CHANNEL_TYPE_TUBES, HT_ROOM, muc_handle1, True])
- tube_id = contact1_tubes_channel.OfferStreamTube("http", sample_parameters,
+ conn1_tube_id = contact1_tubes_channel.OfferStreamTube("http", sample_parameters,
SOCKET_ADDRESS_TYPE_UNIX, dbus.ByteArray(server_socket_address),
SOCKET_ACCESS_CONTROL_LOCALHOST, "")
+ e = q.expect('dbus-signal', signal='NewTube', path=tubes1_path)
+ tube = e.args
+ assert tube[1] == conn1_self_handle # initiator
+ assert tube[2] == 1 # type = stream tube
+ assert tube[3] == 'http' # service
+ assert tube[4] == sample_parameters # paramaters
+ assert tube[5] == TUBE_STATE_OPEN
+
contact2_channeltype = None
while contact2_channeltype == None:
e = q.expect('dbus-signal', signal='NewChannel')
if (e.args[1] == CHANNEL_TYPE_TUBES) and (e.path.endswith("testsuite2") == True):
- contact2_objpath = e.args[0]
+ tubes2_path = e.args[0]
contact2_channeltype = e.args[1]
- contact2_tubes_channel = make_channel_proxy(conn2, contact2_objpath, "Channel.Type.Tubes")
+ contact2_tubes_channel = make_channel_proxy(conn2, tubes2_path, "Channel.Type.Tubes")
contact2_tubes = contact2_tubes_channel.ListTubes()
assert len(contact2_tubes) == 1
contact2_tube = contact2_tubes[0]
assert contact2_tube[0] is not None # tube id
+ conn2_tube_id = contact2_tube[0]
assert contact2_tube[1] is not None # initiator
assert contact2_tube[2] == 1 # type = stream tube
assert contact2_tube[3] == 'http' # service = http
@@ -220,11 +233,22 @@ def test(q, bus, conn):
unix_socket_adr = contact2_tubes_channel.AcceptStreamTube(
contact2_tube[0], 0, 0, '', byte_arrays=True)
+ e = q.expect('dbus-signal', signal='TubeStateChanged', path=tubes2_path)
+ id, state = e.args
+ assert id == conn2_tube_id
+ assert state == TUBE_STATE_OPEN
+
client = ClientCreator(reactor, ClientGreeter)
client.connectUNIX(unix_socket_adr).addCallback(client_connected_cb)
e = q.expect('client-connected')
client_transport = e.transport
+
+ e = q.expect('dbus-signal', signal='StreamTubeNewConnection', path=tubes1_path)
+ id, handle = e.args
+ assert id == conn1_tube_id
+ assert handle == contact2_handle_on_conn1
+
client_transport.write(test_string)
e = q.expect('server-data-received')
@@ -234,7 +258,7 @@ def test(q, bus, conn):
assert e.data == string.swapcase(test_string)
# Close the tube propertly
- contact1_tubes_channel.CloseTube(tube_id)
+ contact1_tubes_channel.CloseTube(conn1_tube_id)
conn.Disconnect()
conn2.Disconnect()
--
1.5.6.5
More information about the Telepathy-commits
mailing list