[Telepathy-commits] [telepathy-gabble/master] muc/test-muc-invitation.py: port to new test API

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Aug 19 10:53:32 PDT 2008


20080721174258-53eee-30c366b8b74f1b6a916120c14bbafc92b036a066.gz
---
 tests/twisted/muc/test-muc-invitation.py |  104 +++++++++++------------------
 1 files changed, 40 insertions(+), 64 deletions(-)

diff --git a/tests/twisted/muc/test-muc-invitation.py b/tests/twisted/muc/test-muc-invitation.py
index 56fe119..a1854e5 100644
--- a/tests/twisted/muc/test-muc-invitation.py
+++ b/tests/twisted/muc/test-muc-invitation.py
@@ -6,11 +6,13 @@ import dbus
 
 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, EventPattern
 
- at match('dbus-signal', signal='StatusChanged', args=[0, 1])
-def expect_connected(event, data):
+def test(q, bus, conn, stream):
+    conn.Connect()
+
+    q.expect('dbus-signal', signal='StatusChanged', args=[0, 1])
 
     # Bob has invited us to an activity.
     message = domish.Element((None, 'message'))
@@ -22,50 +24,47 @@ def expect_connected(event, data):
     reason = invite.addElement((None, 'reason'))
     reason.addContent('No good reason')
 
-    data['stream'].send(message)
-
-    return True
+    stream.send(message)
 
- at match('dbus-signal', signal='NewChannel')
-def expect_text_channel(event, data):
-    if event.args[1] != 'org.freedesktop.Telepathy.Channel.Type.Text':
-        return False
+    event = q.expect('dbus-signal', signal='NewChannel')
+    assert event.args[1] == 'org.freedesktop.Telepathy.Channel.Type.Text'
 
     assert event.args[2] == 2   # handle type
     assert event.args[3] == 1   # handle
-    data['room_handle'] = 1
+    room_handle = 1
 
-    bus = data['conn']._bus
-    data['text_chan'] = bus.get_object(
-        data['conn'].bus_name, event.args[0])
-    data['group_iface'] = dbus.Interface(data['text_chan'],
+    text_chan = bus.get_object(conn.bus_name, event.args[0])
+    group_iface = dbus.Interface(text_chan,
         'org.freedesktop.Telepathy.Channel.Interface.Group')
 
-    members = data['group_iface'].GetAllMembers()[0]
-    local_pending = data['group_iface'].GetAllMembers()[1]
-    remote_pending = data['group_iface'].GetAllMembers()[2]
+    members = group_iface.GetMembers()
+    local_pending = group_iface.GetLocalPendingMembers()
+    remote_pending = group_iface.GetRemotePendingMembers()
 
     assert len(members) == 1
-    assert data['conn_iface'].InspectHandles(1, members)[0] == 'bob at localhost'
-    data['bob_handle'] = members[0]
+    assert conn.InspectHandles(1, members)[0] == 'bob at localhost'
+    bob_handle = members[0]
     assert len(local_pending) == 1
     # FIXME: the username-part-is-nickname assumption
-    assert data['conn_iface'].InspectHandles(1, local_pending)[0] == \
+    assert conn.InspectHandles(1, local_pending)[0] == \
             'chat at conf.localhost/test'
     assert len(remote_pending) == 0
 
-    data['room_self_handle'] = data['group_iface'].GetSelfHandle()
-    assert data['room_self_handle'] == local_pending[0]
+    room_self_handle = group_iface.GetSelfHandle()
+    assert room_self_handle == local_pending[0]
 
     # accept the invitation
-    call_async(data['test'], data['group_iface'], 'AddMembers',
-        [data['room_self_handle']], 'Oh, OK then')
+    call_async(q, group_iface, 'AddMembers', [room_self_handle], 'Oh, OK then')
 
-    return True
+    _, event, _ = q.expect_many(
+            EventPattern('stream-presence', to='chat at conf.localhost/test'),
+            EventPattern('dbus-signal', signal='MembersChanged'),
+            EventPattern('dbus-return', method='AddMembers')
+            )
+
+    assert event.args == ['', [], [bob_handle], [],
+            [room_self_handle], 0, room_self_handle]
 
- at lazy
- at match('stream-presence', to='chat at conf.localhost/test')
-def expect_presence(event, data):
     # Send presence for own membership of room.
     presence = domish.Element((None, 'presence'))
     presence['from'] = 'chat at conf.localhost/test'
@@ -73,37 +72,18 @@ def expect_presence(event, data):
     item = x.addElement('item')
     item['affiliation'] = 'owner'
     item['role'] = 'moderator'
-    data['stream'].send(presence)
-    return True
-
- at match('dbus-signal', signal='MembersChanged')
-def expect_add_myself_into_remote_pending(event, data):
-    assert event.args == ['', [], [data['bob_handle']], [],
-            [data['room_self_handle']], 0,
-            data['room_self_handle']]
-    return True
+    stream.send(presence)
 
- at match('dbus-return', method='AddMembers')
-def expect_add_myself_success(event, data):
-    return True
-
- at match('dbus-signal', signal='MembersChanged')
-def expect_members_changed2(event, data):
-    assert event.args == ['', [data['room_self_handle']], [], [],
-            [], 0, 0]
+    event = q.expect('dbus-signal', signal='MembersChanged')
+    assert event.args == ['', [room_self_handle], [], [], [], 0, 0]
 
     # Test sending an invitation
-    data['alice_handle'] = data['conn_iface'].RequestHandles(1,
-        ['alice at localhost'])[0]
-    call_async(data['test'], data['group_iface'], 'AddMembers',
-        [data['alice_handle']], 'I want to test invitations')
-    return True
-
- at match('stream-message')
-def expect_invitation(event, data):
+    alice_handle = conn.RequestHandles(1, ['alice at localhost'])[0]
+    call_async(q, group_iface, 'AddMembers', [alice_handle],
+            'I want to test invitations')
+
+    event = q.expect('stream-message', to='chat at conf.localhost')
     message = event.stanza
-    if message['to'] != 'chat at conf.localhost':
-        return False
 
     x = xpath.queryForNodes('/message/x', message)
     assert (x is not None and len(x) == 1), repr(x)
@@ -117,13 +97,9 @@ def expect_invitation(event, data):
     assert (reasons is not None and len(reasons) == 1), repr(reasons)
     assert str(reasons[0]) == 'I want to test invitations'
 
-    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