[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