[telepathy-mission-control-5.12] telepathy-mission-control: Modernize dispatcher/redispatch-channels.py a little
Jonny Lamb
jonny at kemper.freedesktop.org
Mon Jul 9 10:13:45 PDT 2012
Module: telepathy-mission-control
Branch: telepathy-mission-control-5.12
Commit: 3d35096f9ccc69b8c3067ed85102694eda4a2855
URL: http://cgit.freedesktop.org/telepathy/telepathy-mission-control/commit/?id=3d35096f9ccc69b8c3067ed85102694eda4a2855
Author: Will Thompson <will.thompson at collabora.co.uk>
Date: Thu Apr 5 16:56:35 2012 +0100
Modernize dispatcher/redispatch-channels.py a little
---
tests/twisted/dispatcher/redispatch-channels.py | 43 ++++++++++------------
tests/twisted/mctest.py | 10 +++++
2 files changed, 30 insertions(+), 23 deletions(-)
diff --git a/tests/twisted/dispatcher/redispatch-channels.py b/tests/twisted/dispatcher/redispatch-channels.py
index d86c966..5d9a030 100644
--- a/tests/twisted/dispatcher/redispatch-channels.py
+++ b/tests/twisted/dispatcher/redispatch-channels.py
@@ -22,17 +22,17 @@ import dbus
import dbus.service
from servicetest import call_async, assertEquals
-from mctest import exec_test, SimulatedClient, \
- create_fakecm_account, enable_fakecm_account, SimulatedChannel, \
- expect_client_setup
+from mctest import (
+ exec_test, SimulatedClient,
+ create_fakecm_account, enable_fakecm_account, SimulatedChannel,
+ expect_client_setup,
+ ChannelDispatcher, ChannelDispatchOperation, ChannelRequest)
import constants as cs
def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
# Now gnome-shell wants to give the channel to another handle
- gs_cd = bus.get_object(cs.CD, cs.CD_PATH)
- gs_cd_iface = dbus.Interface(gs_cd, cs.CD)
-
- call_async(q, gs_cd_iface, 'DelegateChannels',
+ gs_cd = ChannelDispatcher(bus)
+ call_async(q, gs_cd, 'DelegateChannels',
[chan.object_path], 0, "")
# Empathy is asked to handle the channel and accept
@@ -47,10 +47,8 @@ def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
assertEquals(([chan.object_path], {}), e.value)
# Let's play ping-pong channel! Empathy give the channel back to GS
- emp_cd = empathy_bus.get_object(cs.CD, cs.CD_PATH)
- emp_cd_iface = dbus.Interface(emp_cd, cs.CD)
-
- call_async(q, emp_cd_iface, 'DelegateChannels',
+ emp_cd = ChannelDispatcher(empathy_bus)
+ call_async(q, emp_cd, 'DelegateChannels',
[chan.object_path], 0, "")
# gnome-shell is asked to handle the channel and accept
@@ -65,7 +63,7 @@ def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
assertEquals(([chan.object_path], {}), e.value)
# gnome-shell wants to give it back, again
- call_async(q, gs_cd_iface, 'DelegateChannels',
+ call_async(q, gs_cd, 'DelegateChannels',
[chan.object_path], 0, "")
# Empathy is asked to handle the channel but refuses
@@ -81,13 +79,13 @@ def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
assertEquals(([], {chan.object_path: (cs.NOT_AVAILABLE, 'No thanks')}), e.value)
# Empathy doesn't handle the channel atm but tries to delegates it
- call_async(q, emp_cd_iface, 'DelegateChannels',
+ call_async(q, emp_cd, 'DelegateChannels',
[chan.object_path], 0, "")
q.expect('dbus-error', method='DelegateChannels', name=cs.NOT_YOURS)
# gnome-shell which is handling the channel asks to re-ensure it
- call_async(q, gs_cd_iface, 'PresentChannel',
+ call_async(q, gs_cd, 'PresentChannel',
chan.object_path, 0)
# gnome-shell is asked to re-handle the channel
@@ -101,7 +99,7 @@ def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
q.expect('dbus-return', method='PresentChannel')
# empathy which is not handling the channel asks to re-ensure it
- call_async(q, emp_cd_iface, 'PresentChannel',
+ call_async(q, emp_cd, 'PresentChannel',
chan.object_path, 0)
# gnome-shell is asked to re-handle the channel
@@ -124,7 +122,7 @@ def test_delegate_channel(q, bus, mc, account, chan, empathy, empathy_bus, gs):
)
# gnome-shell wants to delegate, but there is no other handler
- call_async(q, gs_cd_iface, 'DelegateChannels',
+ call_async(q, gs_cd, 'DelegateChannels',
[chan.object_path], 0, "")
e = q.expect('dbus-return', method='DelegateChannels')
@@ -160,7 +158,7 @@ def test(q, bus, mc):
# wait for MC to download the properties
expect_client_setup(q, [empathy, gs])
- cd = bus.get_object(cs.CD, cs.CD_PATH)
+ cd = ChannelDispatcher(bus)
# incoming text channel
channel_properties = dbus.Dictionary(text_fixed_properties,
@@ -184,13 +182,12 @@ def test(q, bus, mc):
channels, cdo_path,props = e.args
- cdo = bus.get_object(cs.CD, cdo_path)
- cdo_iface = dbus.Interface(cdo, cs.CDO)
+ cdo = ChannelDispatchOperation(bus, cdo_path)
q.dbus_return(e.message, signature='')
# gnome-shell handles the channel itself first
- call_async(q, cdo_iface, 'HandleWith',
+ call_async(q, cdo, 'HandleWith',
cs.tp_name_prefix + '.Client.GnomeShell')
e = q.expect('dbus-method-call',
@@ -219,11 +216,11 @@ def test(q, bus, mc):
call_async(q, cd, 'CreateChannelWithHints',
account.object_path, request, 0,
cs.tp_name_prefix + '.Client.GnomeShell',
- {}, dbus_interface=cs.CD)
+ {})
e = q.expect('dbus-return', method='CreateChannelWithHints')
- cr = bus.get_object(cs.AM, e.value[0])
- cr.Proceed(dbus_interface=cs.CR)
+ cr = ChannelRequest(bus, e.value[0])
+ cr.Proceed()
e = q.expect('dbus-method-call', interface=cs.CONN_IFACE_REQUESTS,
method='CreateChannel',
diff --git a/tests/twisted/mctest.py b/tests/twisted/mctest.py
index cd1a853..48d98c0 100644
--- a/tests/twisted/mctest.py
+++ b/tests/twisted/mctest.py
@@ -1087,6 +1087,16 @@ class ChannelDispatcher(servicetest.ProxyWrapper):
servicetest.ProxyWrapper.__init__(self, bare_cd, cs.CD, {})
+class ChannelDispatchOperation(servicetest.ProxyWrapper):
+ def __init__(self, bus, path):
+ bare_cdo = bus.get_object(cs.CD, path)
+ servicetest.ProxyWrapper.__init__(self, bare_cdo, cs.CDO, {})
+
+class ChannelRequest(servicetest.ProxyWrapper):
+ def __init__(self, bus, path):
+ bare_cr = bus.get_object(cs.CD, path)
+ servicetest.ProxyWrapper.__init__(self, bare_cr, cs.CR, {})
+
def connect_to_mc(q, bus, mc):
account_manager = AccountManager(bus)
More information about the telepathy-commits
mailing list