[telepathy-gabble/master] Move tests requiring mutable streams into their own function

Sjoerd Simons sjoerd.simons at collabora.co.uk
Thu Jun 25 09:59:47 PDT 2009


---
 tests/twisted/jingle/hold-av.py |  163 ++++++++++++++++++++-------------------
 1 files changed, 85 insertions(+), 78 deletions(-)

diff --git a/tests/twisted/jingle/hold-av.py b/tests/twisted/jingle/hold-av.py
index 062b0d8..8e7686c 100644
--- a/tests/twisted/jingle/hold-av.py
+++ b/tests/twisted/jingle/hold-av.py
@@ -12,6 +12,89 @@ import constants as cs
 
 from jingletest2 import JingleTest2, test_all_dialects
 
+def mutable_stream_tests(jp, jt, q, bus, conn, stream, media_iface,
+    hold_iface, handle):
+    # ---- Test 13: while the call's on hold, we add a new stream ---
+    # We shouldn't go off hold locally as a result, and the new StreamHandler
+    # should tell s-e to hold the stream.
+
+    pending_hold = [
+        EventPattern('dbus-signal', signal='HoldStateChanged',
+            predicate=lambda e: e.args[0] == cs.HS_PENDING_HOLD),
+        ]
+    q.forbid_events(pending_hold)
+
+    call_async(q, media_iface, 'RequestStreams', handle,
+        [cs.MEDIA_STREAM_TYPE_AUDIO])
+
+    e = q.expect('dbus-signal', signal='NewStreamHandler')
+    audio_stream_path = e.args[0]
+    audio_stream_handler = make_channel_proxy(conn, e.args[0],
+            'Media.StreamHandler')
+
+    # Syncing here to make sure SetStreamHeld happens after Ready...
+    sync_dbus(bus, q, conn)
+
+    audio_stream_handler.Ready(jt.get_audio_codecs_dbus())
+    audio_stream_handler.NewNativeCandidate("fake",
+            jt.get_remote_transports_dbus())
+    audio_stream_handler.StreamState(cs.MEDIA_STREAM_STATE_CONNECTED)
+
+    path_suffix = audio_stream_path[len(tp_path_prefix):]
+
+    q.expect_many(
+        EventPattern('dbus-signal', signal='SetStreamHeld', args=[True],
+            path=path_suffix),
+        EventPattern('dbus-signal', signal='SetStreamSending', args=[False],
+            path=path_suffix),
+        )
+
+    assertEquals(cs.HS_HELD, hold_iface.GetHoldState()[0])
+
+    sync_dbus(bus, q, conn)
+
+    # ---- Test 14: while the call's on hold, the peer adds a new stream ----
+    # Again, we shouldn't go off hold locally as a result, and the new
+    # StreamHandler should tell s-e to hold the stream.
+
+    node = jp.SetIq(jt.peer, jt.jid, [
+        jp.Jingle(jt.sid, jt.peer, 'content-add', [
+            jp.Content('videostream', 'initiator', 'both', [
+                jp.Description('video', [
+                    jp.PayloadType(name, str(rate), str(id)) for
+                        (name, id, rate) in jt.video_codecs ]),
+            jp.TransportGoogleP2P() ]) ]) ])
+    stream.send(jp.xml(node))
+
+    e = q.expect('dbus-signal', signal='NewStreamHandler')
+    video_stream_path = e.args[0]
+    video_stream_handler = make_channel_proxy(conn, e.args[0],
+            'Media.StreamHandler')
+
+    # Syncing here to make sure SetStreamHeld happens after Ready...
+    sync_dbus(bus, q, conn)
+
+    video_stream_handler.Ready(jt.get_video_codecs_dbus())
+    video_stream_handler.NewNativeCandidate("fake",
+            jt.get_remote_transports_dbus())
+    video_stream_handler.StreamState(cs.MEDIA_STREAM_STATE_CONNECTED)
+
+    path_suffix = video_stream_path[len(tp_path_prefix):]
+
+    q.expect_many(
+        EventPattern('dbus-signal', signal='SetStreamHeld', args=[True],
+            path=path_suffix),
+        EventPattern('dbus-signal', signal='SetStreamSending', args=[False],
+            path=path_suffix),
+        )
+
+    assertEquals(cs.HS_HELD, hold_iface.GetHoldState()[0])
+
+    sync_dbus(bus, q, conn)
+    q.unforbid_events(pending_hold)
+
+
+
 def test(jp, q, bus, conn, stream):
     jt = JingleTest2(jp, conn, q, stream, 'test at localhost', 'foo at bar.com/Foo')
 
@@ -379,84 +462,8 @@ def test(jp, q, bus, conn, stream):
     sync_stream(q, stream)
     q.unforbid_events(hold_event + active_event)
 
-    # ---- Test 13: while the call's on hold, we add a new stream ---
-    # We shouldn't go off hold locally as a result, and the new StreamHandler
-    # should tell s-e to hold the stream.
-
-    pending_hold = [
-        EventPattern('dbus-signal', signal='HoldStateChanged',
-            predicate=lambda e: e.args[0] == cs.HS_PENDING_HOLD),
-        ]
-    q.forbid_events(pending_hold)
-
-    call_async(q, media_iface, 'RequestStreams', handle,
-        [cs.MEDIA_STREAM_TYPE_AUDIO])
-
-    e = q.expect('dbus-signal', signal='NewStreamHandler')
-    audio_stream_path = e.args[0]
-    audio_stream_handler = make_channel_proxy(conn, e.args[0],
-            'Media.StreamHandler')
-
-    # Syncing here to make sure SetStreamHeld happens after Ready...
-    sync_dbus(bus, q, conn)
-
-    audio_stream_handler.Ready(jt.get_audio_codecs_dbus())
-    audio_stream_handler.NewNativeCandidate("fake",
-            jt.get_remote_transports_dbus())
-    audio_stream_handler.StreamState(cs.MEDIA_STREAM_STATE_CONNECTED)
-
-    path_suffix = audio_stream_path[len(tp_path_prefix):]
-
-    q.expect_many(
-        EventPattern('dbus-signal', signal='SetStreamHeld', args=[True],
-            path=path_suffix),
-        EventPattern('dbus-signal', signal='SetStreamSending', args=[False],
-            path=path_suffix),
-        )
-
-    assertEquals(cs.HS_HELD, hold_iface.GetHoldState()[0])
-
-    sync_dbus(bus, q, conn)
-
-    # ---- Test 14: while the call's on hold, the peer adds a new stream ----
-    # Again, we shouldn't go off hold locally as a result, and the new
-    # StreamHandler should tell s-e to hold the stream.
-
-    node = jp.SetIq(jt.peer, jt.jid, [
-        jp.Jingle(jt.sid, jt.peer, 'content-add', [
-            jp.Content('videostream', 'initiator', 'both', [
-                jp.Description('video', [
-                    jp.PayloadType(name, str(rate), str(id)) for
-                        (name, id, rate) in jt.video_codecs ]),
-            jp.TransportGoogleP2P() ]) ]) ])
-    stream.send(jp.xml(node))
-
-    e = q.expect('dbus-signal', signal='NewStreamHandler')
-    video_stream_path = e.args[0]
-    video_stream_handler = make_channel_proxy(conn, e.args[0],
-            'Media.StreamHandler')
-
-    # Syncing here to make sure SetStreamHeld happens after Ready...
-    sync_dbus(bus, q, conn)
-
-    video_stream_handler.Ready(jt.get_video_codecs_dbus())
-    video_stream_handler.NewNativeCandidate("fake",
-            jt.get_remote_transports_dbus())
-    video_stream_handler.StreamState(cs.MEDIA_STREAM_STATE_CONNECTED)
-
-    path_suffix = video_stream_path[len(tp_path_prefix):]
-
-    q.expect_many(
-        EventPattern('dbus-signal', signal='SetStreamHeld', args=[True],
-            path=path_suffix),
-        EventPattern('dbus-signal', signal='SetStreamSending', args=[False],
-            path=path_suffix),
-        )
-
-    assertEquals(cs.HS_HELD, hold_iface.GetHoldState()[0])
-
-    sync_dbus(bus, q, conn)
-    q.unforbid_events(pending_hold)
+    mutable_stream_tests(jp, jt, q, bus, conn, stream,
+            media_iface, hold_iface, handle)
 
     # ---- The end ----
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list