[telepathy-gabble/master] add test case for vCard get request failing during vCard update

Dafydd Harries dafydd.harries at collabora.co.uk
Mon Aug 17 08:42:08 PDT 2009


---
 tests/twisted/Makefile.am                |    1 +
 tests/twisted/vcard/update-get-failed.py |   40 ++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 0 deletions(-)
 create mode 100644 tests/twisted/vcard/update-get-failed.py

diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am
index f8e51e8..f185c28 100644
--- a/tests/twisted/Makefile.am
+++ b/tests/twisted/Makefile.am
@@ -83,6 +83,7 @@ TWISTED_TESTS = \
 	vcard/test-set-alias.py \
 	vcard/test-vcard-cache.py \
 	vcard/test-vcard-race.py \
+	vcard/update-get-failed.py \
 	vcard/update-rejected.py \
 	jingle/accept-extra-stream.py \
 	jingle/call-state.py \
diff --git a/tests/twisted/vcard/update-get-failed.py b/tests/twisted/vcard/update-get-failed.py
new file mode 100644
index 0000000..8ef681d
--- /dev/null
+++ b/tests/twisted/vcard/update-get-failed.py
@@ -0,0 +1,40 @@
+
+"""
+Test the case where the vCard get made prior to a vCard set fails.
+"""
+
+from servicetest import call_async, EventPattern
+from gabbletest import (
+    acknowledge_iq, elem, exec_test, make_result_iq, sync_stream)
+import constants as cs
+import ns
+
+def test(q, bus, conn, stream):
+    conn.Connect()
+    _, event = q.expect_many(
+        EventPattern('dbus-signal', signal='StatusChanged',
+            args=[cs.CONN_STATUS_CONNECTED, cs.CSR_REQUESTED]),
+        EventPattern('stream-iq', to=None, query_ns='vcard-temp',
+            query_name='vCard'))
+
+    acknowledge_iq(stream, event.stanza)
+    # Force Gabble to process the vCard before calling any methods.
+    sync_stream(q, stream)
+
+    handle = conn.GetSelfHandle()
+    call_async(q, conn.Avatars, 'SetAvatar', 'william shatner',
+        'image/x-actor-name')
+
+    event = q.expect('stream-iq', iq_type='get', to=None,
+        query_ns='vcard-temp', query_name='vCard')
+    reply = make_result_iq(stream, event.stanza)
+    reply['type'] = 'error'
+    reply.addChild(elem('error')(
+        elem(ns.STANZA, 'forbidden')(),
+        elem(ns.STANZA, 'text')(u'zomg whoops')))
+    stream.send(reply)
+
+    event = q.expect('dbus-error', method='SetAvatar', name=cs.NOT_AVAILABLE)
+
+if __name__ == '__main__':
+    exec_test(test)
-- 
1.5.6.5




More information about the telepathy-commits mailing list