[Telepathy-commits] [telepathy-gabble/master] port test-caps-update.py to new test API

Dafydd Harries dafydd.harries at collabora.co.uk
Tue Aug 19 10:52:25 PDT 2008


20080507043843-c9803-4696871227c05cb35b364f56f67ab712ea9d6dc9.gz
---
 tests/twisted/test-caps-update.py |   59 +++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)
 create mode 100644 tests/twisted/test-caps-update.py

diff --git a/tests/twisted/test-caps-update.py b/tests/twisted/test-caps-update.py
new file mode 100644
index 0000000..df1c087
--- /dev/null
+++ b/tests/twisted/test-caps-update.py
@@ -0,0 +1,59 @@
+"""
+Test that CapabilitiesChanged signal is emitted only once after
+all the caps in the presence have been analyzed.
+"""
+
+import dbus
+
+from twisted.words.xish import domish
+
+from servicetest import match, unwrap, lazy
+from gabbletest import go, make_result_iq
+
+def make_presence(from_jid, type, status):
+    presence = domish.Element((None, 'presence'))
+
+    if from_jid is not None:
+        presence['from'] = from_jid
+
+    if type is not None:
+        presence['type'] = type
+
+    if status is not None:
+        presence.addElement('status', content=status)
+
+    return presence
+
+def caps_iface(proxy):
+    return dbus.Interface(proxy,
+        'org.freedesktop.Telepathy.Connection.Interface.Capabilities')
+
+ at match('dbus-signal', signal='StatusChanged', args=[0, 1])
+def expect_connected(event, data):
+    presence = make_presence('bob at foo.com/Foo', None, 'hello')
+    presence.addElement('priority', None, '0')
+    c = presence.addElement(('http://jabber.org/protocol/caps', 'c'))
+    c['node'] = 'http://telepathy.freedesktop.org/caps'
+    c['ver'] = '0.4.test-version'
+    c['ext'] = 'jingle-audio jingle-video'
+    data['stream'].send(presence)
+    return True
+
+ at lazy
+ at match('dbus-signal', signal='CapabilitiesChanged',
+    args=[[(2, u'org.freedesktop.Telepathy.Channel.Type.StreamedMedia', 0,
+        3, 0, 3)]])
+def expect_CapabilitiesChanged(event, data):
+    data['conn_iface'].Disconnect()
+    return True
+
+ at match('dbus-signal')
+def expect_disconnected(event, data):
+    assert event.signal != 'CapabilitiesChanged'
+    if event.signal == 'StatusChanged' and event.args == [2, 1]:
+        return True
+    return False
+
+if __name__ == '__main__':
+    go()
+
-- 
1.5.6.3




More information about the Telepathy-commits mailing list