[telepathy-gabble/master] test ConnectionClosed signal with ConnectionLost

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Wed May 20 06:58:44 PDT 2009


---
 tests/twisted/tubes/accept-muc-stream-tube.py     |    4 ++++
 tests/twisted/tubes/accept-private-stream-tube.py |   16 ++++++++++------
 tests/twisted/tubes/offer-muc-stream-tube.py      |   20 ++++++++++++++------
 tests/twisted/tubes/offer-private-stream-tube.py  |    6 +++++-
 4 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/tests/twisted/tubes/accept-muc-stream-tube.py b/tests/twisted/tubes/accept-muc-stream-tube.py
index 5bf2ea0..f6e999c 100644
--- a/tests/twisted/tubes/accept-muc-stream-tube.py
+++ b/tests/twisted/tubes/accept-muc-stream-tube.py
@@ -224,6 +224,10 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     q.expect('socket-data', protocol=protocol, data="hi joiner!")
 
+    # peer closes the bytestream
+    bytestream.close()
+    q.expect('dbus-signal', signal='ConnectionClosed', args=[conn_id, cs.CONNECTION_LOST])
+
     # OK, we're done
     conn.Disconnect()
 
diff --git a/tests/twisted/tubes/accept-private-stream-tube.py b/tests/twisted/tubes/accept-private-stream-tube.py
index a2adc1b..e8f11a4 100644
--- a/tests/twisted/tubes/accept-private-stream-tube.py
+++ b/tests/twisted/tubes/accept-private-stream-tube.py
@@ -108,7 +108,7 @@ def expect_tube_activity(q, bus, conn, stream, bytestream_cls, address_type,
     e = q.expect('socket-data')
     assert e.data == 'hello joiner'
 
-    return bytestream
+    return bytestream, conn_id
 
 def test(q, bus, conn, stream, bytestream_cls,
         address_type, access_control, access_control_param):
@@ -189,7 +189,7 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     socket_address = accept_return_event.value[0]
 
-    bytestream = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
+    bytestream, conn_id = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
         address_type, socket_address, access_control, access_control_param)
 
     tubes_chan.Close()
@@ -210,7 +210,7 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     socket_address = accept_return_event.value[0]
 
-    bytestream = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
+    bytestream, conn_id = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
         address_type, socket_address, access_control, access_control_param)
     tubes_chan.Close()
     bytestream.wait_bytestream_closed()
@@ -230,7 +230,7 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     socket_address = accept_return_event.value[0]
 
-    bytestream = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
+    bytestream, conn_id = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
         address_type, socket_address, access_control, access_control_param)
     tubes_chan.Close()
     bytestream.wait_bytestream_closed()
@@ -250,10 +250,14 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     socket_address = accept_return_event.value[0]
 
-    bytestream = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
+    bytestream, conn_id = expect_tube_activity(q, bus, conn, stream, bytestream_cls,
         address_type, socket_address, access_control, access_control_param)
+
+    # peer closes the bytestream
+    bytestream.close()
+    q.expect('dbus-signal', signal='ConnectionClosed', args=[conn_id, cs.CONNECTION_LOST])
+
     tubes_chan.Close()
-    bytestream.wait_bytestream_closed()
 
     # Receive a tube offer from Bob
     (tubes_chan, tubes_iface, new_tube_chan, new_tube_iface) = \
diff --git a/tests/twisted/tubes/offer-muc-stream-tube.py b/tests/twisted/tubes/offer-muc-stream-tube.py
index f0cd2b0..f109698 100644
--- a/tests/twisted/tubes/offer-muc-stream-tube.py
+++ b/tests/twisted/tubes/offer-muc-stream-tube.py
@@ -39,7 +39,7 @@ def connect_to_tube(stream, q, bytestream_cls, muc, stream_tube_id):
 
     return bytestream
 
-def use_tube(q, bytestream, protocol):
+def use_tube(q, bytestream, protocol, conn_id):
     # have the fake client open the stream
     bytestream.open_bytestream()
 
@@ -55,6 +55,9 @@ def use_tube(q, bytestream, protocol):
     binary = bytestream.get_data(len(data))
     assert binary == data, binary
 
+    # peer closes the bytestream
+    bytestream.close()
+    q.expect('dbus-signal', signal='ConnectionClosed', args=[conn_id, cs.CONNECTION_LOST])
 
 def test(q, bus, conn, stream, bytestream_cls,
        address_type, access_control, access_control_param):
@@ -179,11 +182,13 @@ def test(q, bus, conn, stream, bytestream_cls,
 
     bytestream = connect_to_tube(stream, q, bytestream_cls, 'chat at conf.localhost', stream_tube_id)
 
-    iq_event, socket_event, _ = q.expect_many(
+    iq_event, socket_event, _, conn_event = q.expect_many(
         EventPattern('stream-iq', iq_type='result'),
         EventPattern('socket-connected'),
         EventPattern('dbus-signal', signal='StreamTubeNewConnection',
-            args=[stream_tube_id, bob_handle], interface=cs.CHANNEL_TYPE_TUBES))
+            args=[stream_tube_id, bob_handle], interface=cs.CHANNEL_TYPE_TUBES),
+        EventPattern('dbus-signal', signal='NewRemoteConnection',
+            interface=cs.CHANNEL_TYPE_STREAM_TUBE))
 
     protocol = socket_event.protocol
 
@@ -192,7 +197,10 @@ def test(q, bus, conn, stream, bytestream_cls,
     tube = xpath.queryForNodes('/iq//si/tube[@xmlns="%s"]' % ns.TUBES, iq_event.stanza)
     assert len(tube) == 1
 
-    use_tube(q, bytestream, protocol)
+    handle, access, conn_id = conn_event.args
+    assert handle == bob_handle
+
+    use_tube(q, bytestream, protocol, conn_id)
 
     # offer a stream tube to another room (new API)
     address = t.create_server(q, address_type, block_reading=True)
@@ -322,7 +330,7 @@ def test(q, bus, conn, stream, bytestream_cls,
         EventPattern('dbus-signal', signal='NewRemoteConnection',
             interface=cs.CHANNEL_TYPE_STREAM_TUBE))
 
-    handle, access, id = conn_event.args
+    handle, access, conn_id = conn_event.args
     assert handle == bob_handle
 
     protocol = socket_event.protocol
@@ -335,7 +343,7 @@ def test(q, bus, conn, stream, bytestream_cls,
     tube = xpath.queryForNodes('/iq//si/tube[@xmlns="%s"]' % ns.TUBES, iq_event.stanza)
     assert len(tube) == 1
 
-    use_tube(q, bytestream, protocol)
+    use_tube(q, bytestream, protocol, conn_id)
 
     chan_iface.Close()
     q.expect_many(
diff --git a/tests/twisted/tubes/offer-private-stream-tube.py b/tests/twisted/tubes/offer-private-stream-tube.py
index 21718d8..1c41b88 100644
--- a/tests/twisted/tubes/offer-private-stream-tube.py
+++ b/tests/twisted/tubes/offer-private-stream-tube.py
@@ -378,7 +378,7 @@ def test(q, bus, conn, stream, bytestream_cls,
         si_reply_event.stanza)
     assert len(tube) == 1
 
-    handle, access, id = new_conn_event.args
+    handle, access, conn_id = new_conn_event.args
     assert handle == bob_handle
     protocol = socket_event.protocol
     # we don't want to echo the access control byte
@@ -413,6 +413,10 @@ def test(q, bus, conn, stream, bytestream_cls,
     binary = bytestream2.get_data(len(data))
     assert binary == data, binary
 
+    # peer closes the bytestream
+    bytestream2.close()
+    q.expect('dbus-signal', signal='ConnectionClosed', args=[conn_id, cs.CONNECTION_LOST])
+
     # OK, we're done
     conn.Disconnect()
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list