[Telepathy-commits] [telepathy-gabble/master] Port roster/test-google-roster.py to new API
Simon McVittie
simon.mcvittie at collabora.co.uk
Tue Aug 19 10:53:33 PDT 2008
20080722111322-53eee-3b77fc63cf7a15a5290dec06ad5dd220569dc46d.gz
---
tests/twisted/roster/test-google-roster.py | 145 ++++++++++++++--------------
1 files changed, 71 insertions(+), 74 deletions(-)
diff --git a/tests/twisted/roster/test-google-roster.py b/tests/twisted/roster/test-google-roster.py
index f31f59b..2fb87ab 100644
--- a/tests/twisted/roster/test-google-roster.py
+++ b/tests/twisted/roster/test-google-roster.py
@@ -8,8 +8,8 @@ import sys
from twisted.words.xish import domish
-from servicetest import lazy, match
-from gabbletest import go, acknowledge_iq
+from servicetest import EventPattern
+from gabbletest import acknowledge_iq, exec_test
from twisted.words.protocols.jabber.client import IQ
@@ -24,122 +24,119 @@ def make_set_roster_iq(stream, user, contact, state, ask):
return iq
- at match('stream-iq', query_ns='jabber:iq:roster')
-def expect_roster_iq(event, data):
+def test(q, bus, conn, stream):
+ conn.Connect()
+
+ event = q.expect('stream-iq', query_ns='jabber:iq:roster')
# send back empty roster
event.stanza['type'] = 'result'
- data['stream'].send(event.stanza)
- return True
+ stream.send(event.stanza)
- at match('dbus-signal', signal='NewChannel')
-def expect_new_channel(event, data):
- path, type, handle_type, handle, suppress_handler = event.args
+ while 1:
+ event = q.expect('dbus-signal', signal='NewChannel')
+ path, type, handle_type, handle, suppress_handler = event.args
- if type != u'org.freedesktop.Telepathy.Channel.Type.ContactList':
- return False
+ if type != u'org.freedesktop.Telepathy.Channel.Type.ContactList':
+ continue
- chan_name = data['conn_iface'].InspectHandles(handle_type, [handle])[0]
+ chan_name = conn.InspectHandles(handle_type, [handle])[0]
- if chan_name != 'subscribe':
- return False
+ if chan_name == 'subscribe':
+ break
# request subscription
- chan = data['conn']._bus.get_object(data['conn'].bus_name, path)
+ chan = bus.get_object(conn.bus_name, path)
group_iface = dbus.Interface(chan,
u'org.freedesktop.Telepathy.Channel.Interface.Group')
assert group_iface.GetMembers() == []
- handle = data['conn_iface'].RequestHandles(1, ['bob at foo.com'])[0]
+ handle = conn.RequestHandles(1, ['bob at foo.com'])[0]
group_iface.AddMembers([handle], '')
- return True
- at match('stream-iq', iq_type='set', query_ns='jabber:iq:roster')
-def expect_roster_set_iq(event, data):
+ event = q.expect('stream-iq', iq_type='set', query_ns='jabber:iq:roster')
item = event.query.firstChildElement()
assert item["jid"] == 'bob at foo.com'
- acknowledge_iq(data['stream'], event.stanza)
+ acknowledge_iq(stream, event.stanza)
# send empty roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', item["jid"], "none", False)
- data['stream'].send(iq)
- return True
-
- at match('stream-presence')
-def expect_presence(event, data):
- if event.stanza['type'] != 'subscribe':
- return False
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource',
+ item["jid"], "none", False)
+ stream.send(iq)
+ while 1:
+ event = q.expect('stream-presence')
+ if event.stanza['type'] == 'subscribe':
+ break
# send pending roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "none", True)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "none", True)
+ stream.send(iq)
# First error point, resetting from none+ask:subscribe to none, and back
- # In the real world this triggers bogus 'subscribe authorization rejected' messages
+ # In the real world this triggers bogus 'subscribe authorization rejected'
+ # messages
# send pending roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "none", False)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "none", False)
+ stream.send(iq)
# send pending roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "none", True)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "none", True)
+ stream.send(iq)
# send accepted roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "to", False)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "to", False)
+ stream.send(iq)
presence = domish.Element(('jabber:client', 'presence'))
presence['from'] = 'bob at foo.com'
presence['type'] = 'subscribed'
- data['stream'].send(presence)
+ stream.send(presence)
# Second error point, demoting from to to none+ask:subscribe, and back
- # In the real world this triggers multiple bogus 'subscribe authorization granted' messages
- # instead of just one
+ # In the real world this triggers multiple bogus 'subscribe authorization
+ # granted' messages instead of just one
# send pending roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "none", True)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "none", True)
+ stream.send(iq)
# send accepted roster item
- iq = make_set_roster_iq(data['stream'], 'test at localhost/Resource', event.to, "to", False)
- data['stream'].send(iq)
+ iq = make_set_roster_iq(stream, 'test at localhost/Resource', event.to,
+ "to", False)
+ stream.send(iq)
- return True
-
- at match('dbus-signal', signal='MembersChanged',
- args=['', [2], [], [], [], 0, 0])
-def expect_members_changed1(event, data):
+ event = q.expect('dbus-signal', signal='MembersChanged',
+ args=['', [2], [], [], [], 0, 0])
assert(event.path.endswith('/known'))
- return True
- at match('dbus-signal', signal='MembersChanged',
- args=['', [], [], [], [2], 0, 0])
-def expect_members_changed2(event, data):
+ event = q.expect('dbus-signal', signal='MembersChanged',
+ args=['', [], [], [], [2], 0, 0])
assert(event.path.endswith('/subscribe'))
- return True
- at match('dbus-signal', signal='MembersChanged',
- args=['', [2], [], [], [], 0, 0])
-def expect_members_changed3(event, data):
+ event = q.expect('dbus-signal', signal='MembersChanged',
+ args=['', [2], [], [], [], 0, 0])
assert(event.path.endswith('/subscribe'))
- data['conn_iface'].Disconnect()
- return True
-
- at lazy
- at match('dbus-signal', signal='StatusChanged', args=[2, 1])
-def expect_disconnected(event, data):
- sys.exit(0)
- return True
-
-# If there's an assertion here, that means we've got a few MembersChanged
-# signals too many (either from the first, or second point of error).
- at match('dbus-signal', signal='MembersChanged')
-def expect_members_changed_evil(event, data):
- assert(False)
- return True
-if __name__ == '__main__':
- go()
+ conn.Disconnect()
+ while 1:
+ event = q.expect('dbus-signal')
+
+ if event.signal == 'StatusChanged' and event.args == [2, 1]:
+ # that's what we wanted
+ break
+
+ if event.signal == 'MembersChanged':
+ raise AssertionError("""
+If there's an assertion here, that means we've got a few MembersChanged
+signals too many (either from the first, or second point of error).
+""")
+
+if __name__ == '__main__':
+ exec_test(test)
--
1.5.6.3
More information about the Telepathy-commits
mailing list