[Telepathy-commits] [telepathy-gabble/master] jingle/test-incoming-call.py: make sure call is not autoaccepted

Senko Rasic senko.rasic at collabora.co.uk
Fri Dec 5 12:44:08 PST 2008


---
 tests/twisted/jingle/test-incoming-call.py |   39 +++++++++++++++-------------
 1 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/tests/twisted/jingle/test-incoming-call.py b/tests/twisted/jingle/test-incoming-call.py
index e3f700a..29ae126 100644
--- a/tests/twisted/jingle/test-incoming-call.py
+++ b/tests/twisted/jingle/test-incoming-call.py
@@ -4,7 +4,7 @@ Test incoming call handling.
 
 from gabbletest import exec_test, make_result_iq, sync_stream
 from servicetest import make_channel_proxy, unwrap, tp_path_prefix, \
-        EventPattern
+        EventPattern, sync_dbus
 import jingletest
 import gabbletest
 import dbus
@@ -79,21 +79,13 @@ def test(q, bus, conn, stream):
     assert channel_props['InitiatorHandle'] == remote_handle
     assert channel_props['Requested'] == False
 
-    media_chan.AddMembers([dbus.UInt32(1)], 'accepted')
-
-    # We are now in members too
-    e = q.expect('dbus-signal', signal='MembersChanged',
-             args=[u'', [1L], [], [], [], 0, 0])
-
-    # we are now both in members
-    members = media_chan.GetMembers()
-    assert set(members) == set([1L, remote_handle]), members
-
+    # Connectivity checks happen before we have accepted the call
     stream_handler.NewNativeCandidate("fake", jt.get_remote_transports_dbus())
     stream_handler.Ready(jt.get_audio_codecs_dbus())
     stream_handler.StreamState(2)
+    stream_handler.SupportedCodecs(jt.get_audio_codecs_dbus())
 
-    # First one is transport-info
+    # peer gets the transport
     e = q.expect('stream-iq')
     assert e.query.name == 'jingle'
     assert e.query['action'] == 'transport-info'
@@ -101,13 +93,24 @@ def test(q, bus, conn, stream):
 
     stream.send(gabbletest.make_result_iq(stream, e.stanza))
 
-    # S-E sets supported codecs, gabble can accept
-    stream_handler.SupportedCodecs(jt.get_audio_codecs_dbus())
+    # Make sure everything's processed
+    sync_stream(q, stream)
+    sync_dbus(bus, q, conn)
 
-    # Second one is session-accept
-    e = q.expect('stream-iq')
-    assert e.query.name == 'jingle'
-    assert e.query['action'] == 'session-accept'
+    # At last, accept the call
+    media_chan.AddMembers([dbus.UInt32(1)], 'accepted')
+
+    # Call is accepted and we're in members too
+    memb, acc = q.expect_many(
+        EventPattern('dbus-signal', signal='MembersChanged', args=[u'', [1L],
+            [], [], [], 0, 0]),
+        EventPattern('stream-iq',
+            predicate=lambda e: (e.query.name == 'jingle' and
+                e.query['action'] == 'session-accept')))
+
+    # we are now both in members
+    members = media_chan.GetMembers()
+    assert set(members) == set([1L, remote_handle]), members
 
     stream.send(gabbletest.make_result_iq(stream, e.stanza))
 
-- 
1.5.6.5



More information about the Telepathy-commits mailing list