[telepathy-gabble/telepathy-gabble-0.8] test-avatar-async.py: Add avatar test when the server reply busy

Alban Crequy alban.crequy at collabora.co.uk
Thu Sep 24 04:59:11 PDT 2009


---
 tests/twisted/vcard/test-avatar-async.py |   31 ++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/tests/twisted/vcard/test-avatar-async.py b/tests/twisted/vcard/test-avatar-async.py
index 2794da6..40619ec 100644
--- a/tests/twisted/vcard/test-avatar-async.py
+++ b/tests/twisted/vcard/test-avatar-async.py
@@ -6,9 +6,12 @@ Test support for retrieving avatars asynchronously using RequestAvatars.
 import base64
 import hashlib
 
-from servicetest import EventPattern
-from gabbletest import exec_test, acknowledge_iq, make_result_iq
+from twisted.words.xish import domish
+from servicetest import EventPattern, sync_dbus
+from gabbletest import (exec_test, acknowledge_iq, make_result_iq, 
+    sync_stream, send_error_reply)
 import constants as cs
+import ns
 
 def test(q, bus, conn, stream):
     conn.Connect()
@@ -47,5 +50,29 @@ def test(q, bus, conn, stream):
     assert event.args[2] == 'hello'
     assert event.args[3] == 'image/png'
 
+    # Request another vCard and get resource-constraint
+    handle = conn.RequestHandles(1, ['jean at busy-server.com'])[0]
+    conn.Avatars.RequestAvatars([handle])
+
+    iq_event = q.expect('stream-iq', to='jean at busy-server.com', query_ns='vcard-temp',
+        query_name='vCard')
+    iq = iq_event.stanza
+    error = domish.Element((None, 'error'))
+    error['code'] = '500'
+    error['type'] = 'wait'
+    error.addElement((ns.STANZA, 'resource-constraint'))
+    send_error_reply(stream, iq, error)
+
+    avatar_retrieved_event = EventPattern('dbus-signal',
+            signal='AvatarRetrieved')
+    avatar_request_event = EventPattern('stream-iq', query_ns='vcard-temp')
+    q.forbid_events([avatar_retrieved_event, avatar_request_event])
+
+    # Request the same vCard again during the delay
+    conn.Avatars.RequestAvatars([handle])
+    sync_stream(q, stream)
+    sync_dbus(bus, q, conn)
+    q.unforbid_events([avatar_retrieved_event, avatar_request_event])
+    
 if __name__ == '__main__':
     exec_test(test)
-- 
1.5.6.5




More information about the telepathy-commits mailing list