telepathy-gabble: caps/jingle-caps.py: convert test_prefer_phones to Call1

Simon McVittie smcv at kemper.freedesktop.org
Thu Sep 12 03:33:10 PDT 2013


Module: telepathy-gabble
Branch: master
Commit: fe0154fbf172a1a64086b3e6542fb2671413cb4f
URL:    http://cgit.freedesktop.org/telepathy/telepathy-gabble/commit/?id=fe0154fbf172a1a64086b3e6542fb2671413cb4f

Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Wed Sep 11 19:04:46 2013 +0100

caps/jingle-caps.py: convert test_prefer_phones to Call1

Signed-off-by: Simon McVittie <simon.mcvittie at collabora.co.uk>
Reviewed-by: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69194

---

 tests/twisted/caps/jingle-caps.py   |   45 ++++++++++++++--------------------
 tests/twisted/jingle/call_helper.py |   10 +++++--
 tests/twisted/run-test.sh.in        |    4 ++-
 3 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/tests/twisted/caps/jingle-caps.py b/tests/twisted/caps/jingle-caps.py
index 8cbedb3..f57ec7c 100644
--- a/tests/twisted/caps/jingle-caps.py
+++ b/tests/twisted/caps/jingle-caps.py
@@ -15,6 +15,7 @@ import constants as cs
 import ns
 from caps_helper import presence_and_disco, compute_caps_hash, send_presence
 from jingle.jingletest2 import JingleTest2, JingleProtocol031
+from call_helper import CallTest
 
 from config import VOIP_ENABLED
 
@@ -131,6 +132,11 @@ def test(q, bus, conn, stream):
 def test_prefer_phones(q, bus, conn, stream, expect_disco):
     cat = 'cat at windowsill'
 
+    # This needs to be done once per connection
+    jp = JingleProtocol031()
+    JingleTest2(jp, conn, q, stream, 'test at localhost',
+            cat).prepare()
+
     def sign_in_a_cat(jid, identities, show=None):
         caps['ver'] = compute_caps_hash(identities, features, {})
 
@@ -140,32 +146,19 @@ def test_prefer_phones(q, bus, conn, stream, expect_disco):
         sync_stream(q, stream)
 
     def make_call(expected_recipient):
-        jp = JingleProtocol031()
-        jt = JingleTest2(jp, conn, q, stream, 'test at localhost', 'dummy')
-
-        conn.Requests.CreateChannel({
-            cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_STREAMED_MEDIA,
-            cs.TARGET_HANDLE_TYPE: cs.HT_CONTACT,
-            cs.TARGET_ID: cat,
-            cs.INITIAL_AUDIO: True,
-        })
-
-        e = q.expect('dbus-signal', signal='NewSessionHandler')
-        session = make_channel_proxy(conn, e.args[0], 'Media.SessionHandler')
-        session.Ready()
-
-        e = q.expect('dbus-signal', signal='NewStreamHandler')
-
-        stream_handler = make_channel_proxy(conn, e.args[0],
-            'Media.StreamHandler')
-        stream_handler.NewNativeCandidate("fake",
-            jt.get_remote_transports_dbus())
-        stream_handler.Ready(jt.get_audio_codecs_dbus())
-        stream_handler.StreamState(cs.MEDIA_STREAM_STATE_CONNECTED)
-
-        e = q.expect('stream-iq',
-            predicate=jp.action_predicate('session-initiate'))
-        assertEquals(expected_recipient, e.to)
+
+        class MyTest(CallTest):
+            PEER_JID = expected_recipient
+
+            def check_session_initiate_iq(self, e):
+                assertEquals(expected_recipient, e.to)
+
+            def prepare(self):
+                # Don't do the preparation step: we did that already
+                pass
+
+        test = MyTest(jp, q, bus, conn, stream, incoming=False, params={})
+        test.run()
 
     features = [ ns.JINGLE_RTP, ns.JINGLE_RTP_AUDIO, ns.JINGLE_RTP_VIDEO
                ] + all_transports
diff --git a/tests/twisted/jingle/call_helper.py b/tests/twisted/jingle/call_helper.py
index 402f1c9..7c1b85f 100644
--- a/tests/twisted/jingle/call_helper.py
+++ b/tests/twisted/jingle/call_helper.py
@@ -61,8 +61,7 @@ class CallTest(object):
         self.can_change_direction = (jp.dialect not in ['gtalk-v0.3',
                 'gtalk-v0.4'])
         self.self_handle = conn.GetSelfHandle()
-        self.peer_handle = conn.RequestHandles(1, ["foo at bar.com/Foo"])[0]
-
+        self.peer_handle = conn.RequestHandles(1, [self.PEER_JID])[0]
 
     def check_channel_state(self, state, wait = False):
         """Optionnally wait for channel state to be reached and check that the
@@ -460,8 +459,9 @@ class CallTest(object):
         ret = self.q.expect_many(*expected)
         # Check the first LocalCandidatesAdded signal (third in the array)
         assertEquals(candidates, ret[2].args[0])
-
         if not self.incoming:
+            self.check_session_initiate_iq(ret[-1])
+
             if expect_after_si is not None:
                 sync_stream(self.q, self.stream)
                 self.q.unforbid_events(expect_after_si)
@@ -607,6 +607,10 @@ class CallTest(object):
 
         self.check_channel_state(cs.CALL_STATE_INITIALISED)
 
+    def check_session_initiate_iq(self, e):
+        """e is the session-initiate stream-iq event."""
+        pass
+
     def connect(self, expect_after_si=None):
         """Negotiate all the codecs, bringing the channel to INITIALISED
            state"""
diff --git a/tests/twisted/run-test.sh.in b/tests/twisted/run-test.sh.in
index 8dd5fd6..5392397 100644
--- a/tests/twisted/run-test.sh.in
+++ b/tests/twisted/run-test.sh.in
@@ -11,7 +11,7 @@ if test "x$GABBLE_TEST_UNINSTALLED" = x; then
   test_build="@gabbletestsdir@"
   config_file="@gabbletestsdir@/twisted/tools/servicedir/tmp-session-bus.conf"
 
-  PYTHONPATH="@gabbletestsdir@/twisted"
+  PYTHONPATH="@gabbletestsdir@/twisted:@gabbletestsdir@/twisted/jingle"
   export PYTHONPATH
 
   GABBLE_TWISTED_PATH="@gabbletestsdir@/twisted"
@@ -31,6 +31,8 @@ else
   config_file="${test_build}/twisted/tools/servicedir-uninstalled/tmp-session-bus.conf"
 
   PYTHONPATH="${test_src}/twisted:${test_build}/twisted"
+  PYTHONPATH="$PYTHONPATH:${test_src}/twisted/jingle"
+  PYTHONPATH="$PYTHONPATH:${test_build}/twisted/jingle"
   export PYTHONPATH
 
   GABBLE_TWISTED_PATH="${test_src}/twisted"



More information about the telepathy-commits mailing list