[Telepathy-commits] [telepathy-gabble/master] Port test-muc-ownership.py to the new API
Simon McVittie
simon.mcvittie at collabora.co.uk
Tue Aug 19 10:53:00 PDT 2008
20080526154949-53eee-81848e849407b185e46a174fa008adb5c73ef173.gz
---
tests/twisted/muc/test-muc-ownership.py | 105 +++++++++++++------------------
1 files changed, 43 insertions(+), 62 deletions(-)
diff --git a/tests/twisted/muc/test-muc-ownership.py b/tests/twisted/muc/test-muc-ownership.py
index 2eeb304..dffbd94 100644
--- a/tests/twisted/muc/test-muc-ownership.py
+++ b/tests/twisted/muc/test-muc-ownership.py
@@ -9,52 +9,41 @@ when presence is received that includes the MUC JID's owner JID.
import dbus
-from twisted.words.xish import domish
+from twisted.words.xish import domish, xpath
-from gabbletest import go, make_result_iq
-from servicetest import call_async, lazy, match
+from gabbletest import go, make_result_iq, exec_test
+from servicetest import call_async, lazy, match, tp_name_prefix, EventPattern
+
+def test(q, bus, conn, stream):
+ conn.Connect()
+
+ q.expect('dbus-signal', signal='StatusChanged', args=[0, 1])
- at match('dbus-signal', signal='StatusChanged', args=[0, 1])
-def expect_connected(event, data):
# Need to call this asynchronously as it involves Gabble sending us a
- # query.
- call_async(data['test'], data['conn_iface'], 'RequestHandles', 2,
- ['chat at conf.localhost'])
- return True
-
- at match('stream-iq', to='conf.localhost',
- query_ns='http://jabber.org/protocol/disco#info')
-def expect_disco(event, data):
- result = make_result_iq(data['stream'], event.stanza)
+ # query
+ call_async(q, conn, 'RequestHandles', 2, ['chat at conf.localhost'])
+
+ event = q.expect('stream-iq', to='conf.localhost',
+ query_ns='http://jabber.org/protocol/disco#info')
+ result = make_result_iq(stream, event.stanza)
feature = result.firstChildElement().addElement('feature')
feature['var'] = 'http://jabber.org/protocol/muc'
- data['stream'].send(result)
- return True
-
- at match('dbus-return', method='RequestHandles')
-def expect_request_handles_return(event, data):
- handles = event.value[0]
-
- call_async(data['test'], data['conn_iface'], 'RequestChannel',
- 'org.freedesktop.Telepathy.Channel.Type.Text', 2, handles[0], True)
- return True
+ stream.send(result)
- at match('stream-presence', to='chat at conf.localhost/test')
-def expect_presence(event, data):
- return True
+ event = q.expect('dbus-return', method='RequestHandles')
+ room_handle = event.value[0][0]
- at match('dbus-signal', signal='GroupFlagsChanged')
-def expect_group_flags_changed(event, data):
- assert event.args[1] == 0
- return True
+ call_async(q, conn, 'RequestChannel',
+ 'org.freedesktop.Telepathy.Channel.Type.Text', 2, room_handle, True)
- at match('dbus-signal', signal='MembersChanged',
- args=[u'', [], [], [], [2], 0, 0])
-def expect_members_changed1(event, data):
- return True
+ gfc, _, _ = q.expect_many(
+ EventPattern('dbus-signal', signal='GroupFlagsChanged'),
+ EventPattern('dbus-signal', signal='MembersChanged',
+ args=[u'', [], [], [], [2], 0, 0]),
+ EventPattern('stream-presence', to='chat at conf.localhost/test'))
+ assert gfc.args[1] == 0
- at match('dbus-signal', signal='GroupFlagsChanged')
-def expect_group_flags_changed2(event, data):
+ event = q.expect('dbus-signal', signal='GroupFlagsChanged')
assert event.args == [0, 1]
# Send presence for anonymous other member of room.
@@ -64,7 +53,7 @@ def expect_group_flags_changed2(event, data):
item = x.addElement('item')
item['affiliation'] = 'owner'
item['role'] = 'moderator'
- data['stream'].send(presence)
+ stream.send(presence)
# Send presence for nonymous other member of room.
presence = domish.Element((None, 'presence'))
@@ -74,7 +63,7 @@ def expect_group_flags_changed2(event, data):
item['affiliation'] = 'none'
item['role'] = 'participant'
item['jid'] = 'che at foo.com'
- data['stream'].send(presence)
+ stream.send(presence)
# Send presence for own membership of room.
presence = domish.Element((None, 'presence'))
@@ -83,44 +72,36 @@ def expect_group_flags_changed2(event, data):
item = x.addElement('item')
item['affiliation'] = 'none'
item['role'] = 'participant'
- data['stream'].send(presence)
- return True
+ stream.send(presence)
- at match('dbus-signal', signal='GroupFlagsChanged')
-def expect_group_flags_changed3(event, data):
+ event = q.expect('dbus-signal', signal='GroupFlagsChanged')
# Since we received MUC presence that contains an owner JID, the
# OWNERS_NOT_AVAILABLE flag should be removed.
assert event.args == [0, 1024]
- return True
- at match('dbus-signal', signal='MembersChanged',
- args=[u'', [2, 3, 4], [], [], [], 0, 0])
-def expect_members_changed2(event, data):
- assert data['conn_iface'].InspectHandles(1, [2]) == [
+ event = q.expect('dbus-signal', signal='MembersChanged',
+ args=[u'', [2, 3, 4], [], [], [], 0, 0])
+ assert conn.InspectHandles(1, [2]) == [
'chat at conf.localhost/test']
- assert data['conn_iface'].InspectHandles(1, [3]) == [
+ assert conn.InspectHandles(1, [3]) == [
'chat at conf.localhost/bob']
- assert data['conn_iface'].InspectHandles(1, [4]) == [
+ assert conn.InspectHandles(1, [4]) == [
'chat at conf.localhost/che']
- return True
- at match('dbus-return', method='RequestChannel')
-def expect_request_channel_return(event, data):
+ event = q.expect('dbus-return', method='RequestChannel')
# Check that GetHandleOwners works.
- bus = data['conn']._bus
- chan = bus.get_object(data['conn']._named_service, event.value[0])
+ # FIXME: using non-API!
+ bus = conn._bus
+ chan = bus.get_object(conn._named_service, event.value[0])
group = dbus.Interface(chan,
'org.freedesktop.Telepathy.Channel.Interface.Group')
assert group.GetHandleOwners([4]) == [5]
- assert data['conn_iface'].InspectHandles(1, [5]) == ['che at foo.com']
+ assert conn.InspectHandles(1, [5]) == ['che at foo.com']
- data['conn_iface'].Disconnect()
- return True
+ conn.Disconnect()
- at match('dbus-signal', signal='StatusChanged', args=[2, 1])
-def expect_disconnected(event, data):
- return True
+ q.expect('dbus-signal', signal='StatusChanged', args=[2, 1])
if __name__ == '__main__':
- go()
+ exec_test(test)
--
1.5.6.3
More information about the Telepathy-commits
mailing list