[Pkg-telepathy-commits] [telepathy-mission-control-6] 67/280: SimulatedConnection: simulate Telepathy 1 a bit better
Simon McVittie
smcv at debian.org
Thu Mar 27 20:07:06 UTC 2014
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch debian
in repository telepathy-mission-control-6.
commit b55dd219c248a19624a24bed9e413459cca78e1d
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date: Thu Oct 3 18:04:19 2013 +0100
SimulatedConnection: simulate Telepathy 1 a bit better
- the Requests interface is mandatory
- GetSelfHandle, GetStatus, GetInterfaces, RequestHandles,
InspectHandles, HoldHandles, ListChannels have gone away
- so have GetPresences, GetAliasFlags, GetAliases, GetAvatarRequirements
- SelfHandleChanged is now SelfContactChanged
- SelfID exists now
I haven't implemented Get(ALIASING, "AliasFlags") because MC doesn't
actually use or need it.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54879
Reviewed-by: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
---
tests/twisted/mctest.py | 176 +++++++-----------------------------------------
1 file changed, 23 insertions(+), 153 deletions(-)
diff --git a/tests/twisted/mctest.py b/tests/twisted/mctest.py
index 8964a6c..3704eef 100644
--- a/tests/twisted/mctest.py
+++ b/tests/twisted/mctest.py
@@ -222,7 +222,7 @@ class SimulatedConnection(object):
def __init__(self, q, bus, cmname, protocol, account_part, self_ident,
self_alias=None,
- implement_get_channels=True, has_requests=True,
+ implement_get_channels=True,
has_presence=False, has_aliasing=False, has_avatars=False,
avatars_persist=True, extra_interfaces=[], has_hidden=False,
implement_get_aliases=True, initial_avatar=None,
@@ -247,7 +247,6 @@ class SimulatedConnection(object):
self.self_alias = self_alias
self.self_handle = self.ensure_handle(cs.HT_CONTACT, self_ident)
self.channels = []
- self.has_requests = has_requests
self.has_presence = has_presence
self.has_aliasing = has_aliasing
self.has_avatars = has_avatars
@@ -257,9 +256,8 @@ class SimulatedConnection(object):
self.interfaces = []
self.interfaces.append(cs.CONN_IFACE_CONTACTS)
+ self.interfaces.append(cs.CONN_IFACE_REQUESTS)
- if self.has_requests:
- self.interfaces.append(cs.CONN_IFACE_REQUESTS)
if self.has_aliasing:
self.interfaces.append(cs.CONN_IFACE_ALIASING)
if self.has_avatars:
@@ -281,35 +279,17 @@ class SimulatedConnection(object):
path=self.object_path, interface=cs.CONN, method='Connect')
q.add_dbus_method_impl(self.Disconnect,
path=self.object_path, interface=cs.CONN, method='Disconnect')
- q.add_dbus_method_impl(self.GetSelfHandle,
- path=self.object_path,
- interface=cs.CONN, method='GetSelfHandle')
- q.add_dbus_method_impl(self.GetStatus,
- path=self.object_path, interface=cs.CONN, method='GetStatus')
q.add_dbus_method_impl(self.GetAll_Connection,
path=self.object_path,
interface=cs.PROPERTIES_IFACE, method='GetAll',
args=[cs.CONN])
- q.add_dbus_method_impl(self.GetInterfaces,
- path=self.object_path, interface=cs.CONN,
- method='GetInterfaces')
q.add_dbus_method_impl(self.Get_Interfaces,
path=self.object_path, interface=cs.PROPERTIES_IFACE,
method='Get', args=[cs.CONN, 'Interfaces'])
- q.add_dbus_method_impl(self.RequestHandles,
- path=self.object_path, interface=cs.CONN,
- method='RequestHandles')
- q.add_dbus_method_impl(self.InspectHandles,
- path=self.object_path, interface=cs.CONN,
- method='InspectHandles')
- q.add_dbus_method_impl(self.HoldHandles,
- path=self.object_path, interface=cs.CONN,
- method='HoldHandles')
-
- if implement_get_channels and has_requests:
+ if implement_get_channels:
q.add_dbus_method_impl(self.GetAll_Requests,
path=self.object_path,
interface=cs.PROPERTIES_IFACE, method='GetAll',
@@ -330,18 +310,10 @@ class SimulatedConnection(object):
interface=cs.PROPERTIES_IFACE, method='GetAll',
args=[cs.CONN_IFACE_CONTACTS])
- if not has_requests:
- q.add_dbus_method_impl(self.ListChannels,
- path=self.object_path, interface=cs.CONN,
- method='ListChannels')
-
if has_presence:
q.add_dbus_method_impl(self.SetPresence, path=self.object_path,
interface=cs.CONN_IFACE_PRESENCE,
method='SetPresence')
- q.add_dbus_method_impl(self.GetPresences, path=self.object_path,
- interface=cs.CONN_IFACE_PRESENCE,
- method='GetPresences')
q.add_dbus_method_impl(self.Get_PresenceStatuses,
path=self.object_path, interface=cs.PROPERTIES_IFACE,
method='Get',
@@ -351,21 +323,7 @@ class SimulatedConnection(object):
method='GetAll',
args=[cs.CONN_IFACE_PRESENCE])
- if has_aliasing:
- q.add_dbus_method_impl(self.GetAliasFlags,
- path=self.object_path, interface=cs.CONN_IFACE_ALIASING,
- method='GetAliasFlags',
- args=[])
-
- if implement_get_aliases:
- q.add_dbus_method_impl(self.GetAliases,
- path=self.object_path,
- interface=cs.CONN_IFACE_ALIASING, method='GetAliases')
-
if has_avatars:
- q.add_dbus_method_impl(self.GetAvatarRequirements,
- path=self.object_path, interface=cs.CONN_IFACE_AVATARS,
- method='GetAvatarRequirements', args=[])
q.add_dbus_method_impl(self.GetAll_Avatars,
path=self.object_path, interface=cs.PROPERTIES_IFACE,
method='GetAll', args=[cs.CONN_IFACE_AVATARS])
@@ -398,8 +356,8 @@ class SimulatedConnection(object):
def change_self_ident(self, ident):
self.self_ident = ident
self.self_handle = self.ensure_handle(cs.HT_CONTACT, ident)
- self.q.dbus_emit(self.object_path, cs.CONN, 'SelfHandleChanged',
- self.self_handle, signature='u')
+ self.q.dbus_emit(self.object_path, cs.CONN, 'SelfContactChanged',
+ self.self_handle, ident, signature='us')
def change_self_alias(self, alias):
self.self_alias = alias
@@ -414,6 +372,7 @@ class SimulatedConnection(object):
self.q.dbus_return(e.message, {
'Interfaces': dbus.Array(self.interfaces, signature='s'),
'SelfHandle': dbus.UInt32(self.self_handle),
+ 'SelfID': self.self_ident,
'Status': dbus.UInt32(self.status),
'HasImmortalHandles': dbus.Boolean(True),
}, signature='a{sv}')
@@ -422,22 +381,6 @@ class SimulatedConnection(object):
self.avatar = (dbus.ByteArray(''), '')
self.avatar_delayed = False
- # not actually very relevant for MC so hard-code 0 for now
- def GetAliasFlags(self, e):
- self.q.dbus_return(e.message, 0, signature='u')
-
- def GetAliases(self, e):
- ret = dbus.Dictionary(signature='us')
- if self.self_handle in e.args[0]:
- ret[self.self_handle] = self.self_alias
-
- self.q.dbus_return(e.message, ret, signature='a{us}')
-
- # mostly for the UI's benefit; for now hard-code the requirements from XMPP
- def GetAvatarRequirements(self, e):
- self.q.dbus_return(e.message, ['image/jpeg'], 0, 0, 96, 96, 8192,
- signature='asqqqqu')
-
def GetAll_Avatars(self, e):
self.q.dbus_return(e.message, {
'SupportedAvatarMIMETypes': ['image/jpeg'],
@@ -490,19 +433,6 @@ class SimulatedConnection(object):
'AvatarRetrieved', self.self_handle, str(self.avatar[0]),
self.avatar[0], self.avatar[1], signature='usays')
- def GetPresences(self, e):
- ret = dbus.Dictionary(signature='u(uss)')
- contacts = e.args[0]
- for contact in contacts:
- if contact == self.self_handle:
- ret[contact] = self.presence
- else:
- # stub - MC doesn't care
- ret[contact] = dbus.Struct(
- (cs.PRESENCE_UNKNOWN, 'unknown', ''),
- signature='uss')
- self.q.dbus_return(e.message, ret, signature='a{u(uss)}')
-
def SetPresence(self, e):
if e.args[0] in self.statuses:
# "dbus.UInt32" to work around
@@ -531,9 +461,6 @@ class SimulatedConnection(object):
self.q.dbus_return(e.message,
{'Statuses': self.statuses}, signature='a{sv}')
- def GetInterfaces(self, e):
- self.q.dbus_return(e.message, self.interfaces, signature='as')
-
def Get_Interfaces(self, e):
self.q.dbus_return(e.message,
dbus.Array(self.interfaces, signature='s'),
@@ -562,24 +489,6 @@ class SimulatedConnection(object):
return ret
- def InspectHandles(self, e):
- htype, hs = e.args
-
- try:
- ret = self.inspect_handles(hs, htype)
- self.q.dbus_return(e.message, ret, signature='as')
- except e:
- self.q.dbus_raise(e.message, INVALID_HANDLE, str(e.args[0]))
-
- def RequestHandles(self, e):
- htype, idents = e.args
- self.q.dbus_return(e.message,
- [self.ensure_handle(htype, i) for i in idents],
- signature='au')
-
- def GetStatus(self, e):
- self.q.dbus_return(e.message, self.status, signature='u')
-
def ConnectionError(self, error, details):
self.q.dbus_emit(self.object_path, cs.CONN, 'ConnectionError',
error, details, signature='sa{sv}')
@@ -601,37 +510,14 @@ class SimulatedConnection(object):
{ self.self_handle : self.presence },
signature='a{u(uss)}')
- def ListChannels(self, e):
- arr = dbus.Array(signature='(osuu)')
-
- for c in self.channels:
- arr.append(dbus.Struct(
- (c.object_path,
- c.immutable[cs.CHANNEL + '.ChannelType'],
- c.immutable.get(cs.CHANNEL + '.TargetHandleType', 0),
- c.immutable.get(cs.CHANNEL + '.TargetHandle', 0)
- ), signature='osuu'))
-
- self.q.dbus_return(e.message, arr, signature='a(osuu)')
-
def get_channel_details(self):
return dbus.Array([(c.object_path, c.immutable)
for c in self.channels], signature='(oa{sv})')
def GetAll_Requests(self, e):
- if self.has_requests:
- self.q.dbus_return(e.message, {
- 'Channels': self.get_channel_details(),
- }, signature='a{sv}')
- else:
- self.q.dbus_raise(e.message, cs.NOT_IMPLEMENTED, 'no Requests')
-
- def GetSelfHandle(self, e):
- self.q.dbus_return(e.message, self.self_handle, signature='u')
-
- def HoldHandles(self, e):
- # do nothing
- self.q.dbus_return(e.message, signature='')
+ self.q.dbus_return(e.message, {
+ 'Channels': self.get_channel_details(),
+ }, signature='a{sv}')
def NewChannels(self, channels):
for channel in channels:
@@ -639,21 +525,11 @@ class SimulatedConnection(object):
channel.announced = True
self.channels.append(channel)
- self.q.dbus_emit(self.object_path, cs.CONN,
- 'NewChannel',
- channel.object_path,
- channel.immutable[cs.CHANNEL + '.ChannelType'],
- channel.immutable.get(cs.CHANNEL + '.TargetHandleType', 0),
- channel.immutable.get(cs.CHANNEL + '.TargetHandle', 0),
- channel.immutable.get(cs.CHANNEL + '.Requested', False),
- signature='osuub')
-
- if self.has_requests:
- self.q.dbus_emit(self.object_path, cs.CONN_IFACE_REQUESTS,
- 'NewChannels',
- [(channel.object_path, channel.immutable)
- for channel in channels],
- signature='a(oa{sv})')
+ self.q.dbus_emit(self.object_path, cs.CONN_IFACE_REQUESTS,
+ 'NewChannels',
+ [(channel.object_path, channel.immutable)
+ for channel in channels],
+ signature='a(oa{sv})')
def get_contact_attributes(self, h, ifaces):
id = self.inspect_handles([h])[0]
@@ -1099,7 +975,7 @@ def enable_fakecm_account(q, bus, mc, account, expected_params, **kwargs):
return expect_fakecm_connection(q, bus, mc, account, expected_params, **kwargs)
def expect_fakecm_connection(q, bus, mc, account, expected_params,
- has_requests=True, has_presence=False, has_aliasing=False,
+ has_presence=False, has_aliasing=False,
has_avatars=False, avatars_persist=True,
extra_interfaces=[],
expect_before_connect=(), expect_after_connect=(),
@@ -1118,26 +994,20 @@ def expect_fakecm_connection(q, bus, mc, account, expected_params,
conn = SimulatedConnection(q, bus, 'fakecm', 'fakeprotocol',
account.object_path.split('/')[-1],
- self_ident, has_requests=has_requests, has_presence=has_presence,
+ self_ident, has_presence=has_presence,
has_aliasing=has_aliasing, has_avatars=has_avatars,
avatars_persist=avatars_persist, extra_interfaces=extra_interfaces,
has_hidden=has_hidden)
q.dbus_return(e.message, conn.bus_name, conn.object_path, signature='so')
- if has_requests:
- expect_before_connect.append(
- servicetest.EventPattern('dbus-method-call',
- interface=cs.PROPERTIES_IFACE, method='GetAll',
- args=[cs.CONN_IFACE_REQUESTS],
- path=conn.object_path, handled=True))
-
- if expect_before_connect:
- events = list(q.expect_many(*expect_before_connect))
- if has_requests:
- del events[-1]
- else:
- events = []
+ expect_before_connect.append(
+ servicetest.EventPattern('dbus-method-call',
+ interface=cs.PROPERTIES_IFACE, method='GetAll',
+ args=[cs.CONN_IFACE_REQUESTS],
+ path=conn.object_path, handled=True))
+ events = list(q.expect_many(*expect_before_connect))
+ del events[-1]
q.expect('dbus-method-call', method='Connect',
path=conn.object_path, handled=True)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-telepathy/telepathy-mission-control-6.git
More information about the Pkg-telepathy-commits
mailing list