[telepathy-gabble/master] create search_helper.py containing search test utility functions
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Wed Aug 26 09:22:00 PDT 2009
---
tests/twisted/Makefile.am | 1 +
tests/twisted/search/search_helper.py | 66 +++++++++++++++++++++++++++++++++
tests/twisted/search/unextended.py | 63 +------------------------------
3 files changed, 70 insertions(+), 60 deletions(-)
create mode 100644 tests/twisted/search/search_helper.py
diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am
index fb06244..b35941e 100644
--- a/tests/twisted/Makefile.am
+++ b/tests/twisted/Makefile.am
@@ -192,6 +192,7 @@ EXTRA_DIST = \
olpc/util.py \
tubes/muctubeutil.py \
tubes/tubetestutil.py \
+ search/search_helper.py \
file-transfer/file_transfer_helper.py
noinst_PROGRAMS = \
diff --git a/tests/twisted/search/search_helper.py b/tests/twisted/search/search_helper.py
new file mode 100644
index 0000000..7b6380d
--- /dev/null
+++ b/tests/twisted/search/search_helper.py
@@ -0,0 +1,66 @@
+import dbus
+from twisted.words.protocols.jabber.client import IQ
+
+from servicetest import call_async, EventPattern
+import constants as cs
+import ns
+
+def call_create(q, requests, server):
+ request = dbus.Dictionary(
+ {
+ cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_CONTACT_SEARCH,
+ }, signature='sv')
+
+ if server is not None:
+ request[cs.CONTACT_SEARCH_SERVER] = server
+
+ call_async(q, requests, 'CreateChannel', request)
+
+def answer_field_query(q, stream, server):
+ # Gabble asks the server what search fields it supports
+ iq_event = q.expect('stream-iq', to=server, query_ns=ns.SEARCH)
+ iq = iq_event.stanza
+
+ # The server says it supports all the fields in unextended XEP 0055
+ result = IQ(stream, "result")
+ result["id"] = iq["id"]
+ query = result.addElement((ns.SEARCH, 'query'))
+ query.addElement("instructions", content="cybar?")
+ for f in ["first", "last", "nick", "email"]:
+ query.addElement(f)
+ stream.send(result)
+
+ ret = q.expect('dbus-return', method='CreateChannel')
+ nc_sig = q.expect('dbus-signal', signal='NewChannels')
+
+ return (ret, nc_sig)
+
+def make_search(q, c_search, c_props, server):
+ terms = { 'x-n-family': 'Threepwood' }
+ call_async(q, c_search, 'Search', terms)
+
+ _, ssc_event, iq_event = q.expect_many(
+ EventPattern('dbus-return', method='Search'),
+ EventPattern('dbus-signal', signal='SearchStateChanged'),
+ EventPattern('stream-iq', to=server, query_ns=ns.SEARCH),
+ )
+
+ assert ssc_event.args[0] == cs.SEARCH_IN_PROGRESS
+
+ state = c_props.Get(cs.CHANNEL_TYPE_CONTACT_SEARCH, 'SearchState')
+ assert state == cs.SEARCH_IN_PROGRESS, state
+
+ return iq_event.stanza
+
+def send_results(stream, iq, results):
+ result = IQ(stream, 'result')
+ result['id'] = iq['id']
+ query = result.addElement((ns.SEARCH, 'query'))
+ for jid, first, last, nick in results:
+ item = query.addElement('item')
+ item['jid'] = jid
+ item.addElement('first', content=first)
+ item.addElement('last', content=last)
+ item.addElement('nick', content=nick)
+ item.addElement('email', content=jid)
+ stream.send(result)
diff --git a/tests/twisted/search/unextended.py b/tests/twisted/search/unextended.py
index 6f6930b..5b6fe7a 100644
--- a/tests/twisted/search/unextended.py
+++ b/tests/twisted/search/unextended.py
@@ -9,6 +9,7 @@ from twisted.words.protocols.jabber.client import IQ
from gabbletest import exec_test, sync_stream
from servicetest import call_async, unwrap, make_channel_proxy, EventPattern
+from search_helper import call_create, answer_field_query, make_search, send_results
from pprint import pformat
@@ -21,7 +22,6 @@ g_results = (g_jid, 'Guybrush', 'Threepwood', 'Fancy Pants')
f_results = (f_jid, 'Frederick', 'Threepwood', 'Freddie')
results = [g_results, f_results]
-
def test(q, bus, conn, stream):
conn.Connect()
q.expect('dbus-signal', signal='StatusChanged',
@@ -35,63 +35,6 @@ def test(q, bus, conn, stream):
conn.Disconnect()
q.expect('dbus-signal', signal='StatusChanged', args=[2, 1])
-def call_create(q, requests, server):
- request = dbus.Dictionary(
- {
- cs.CHANNEL_TYPE: cs.CHANNEL_TYPE_CONTACT_SEARCH,
- cs.CONTACT_SEARCH_SERVER: server,
- }, signature='sv')
- call_async(q, requests, 'CreateChannel', request)
-
-def answer_field_query(q, stream, server):
- # Gabble asks the server what search fields it supports
- iq_event = q.expect('stream-iq', to=server, query_ns=ns.SEARCH)
- iq = iq_event.stanza
-
- # The server says it supports all the fields in unextended XEP 0055
- result = IQ(stream, "result")
- result["id"] = iq["id"]
- query = result.addElement((ns.SEARCH, 'query'))
- query.addElement("instructions", content="cybar?")
- for f in ["first", "last", "nick", "email"]:
- query.addElement(f)
- stream.send(result)
-
- ret = q.expect('dbus-return', method='CreateChannel')
- nc_sig = q.expect('dbus-signal', signal='NewChannels')
-
- return (ret, nc_sig)
-
-def make_search(q, c_search, c_props, server):
- terms = { 'x-n-family': 'Threepwood' }
- call_async(q, c_search, 'Search', terms)
-
- _, ssc_event, iq_event = q.expect_many(
- EventPattern('dbus-return', method='Search'),
- EventPattern('dbus-signal', signal='SearchStateChanged'),
- EventPattern('stream-iq', to=server, query_ns=ns.SEARCH),
- )
-
- assert ssc_event.args[0] == cs.SEARCH_IN_PROGRESS
-
- state = c_props.Get(cs.CHANNEL_TYPE_CONTACT_SEARCH, 'SearchState')
- assert state == cs.SEARCH_IN_PROGRESS, state
-
- return iq_event.stanza
-
-def send_results(stream, iq):
- result = IQ(stream, 'result')
- result['id'] = iq['id']
- query = result.addElement((ns.SEARCH, 'query'))
- for jid, first, last, nick in results:
- item = query.addElement('item')
- item['jid'] = jid
- item.addElement('first', content=first)
- item.addElement('last', content=last)
- item.addElement('nick', content=nick)
- item.addElement('email', content=jid)
- stream.send(result)
-
def complete_search(q, bus, conn, requests, stream, server):
call_create(q, requests, server)
@@ -125,7 +68,7 @@ def complete_search(q, bus, conn, requests, stream, server):
assert i == 1, query
# Server sends the results of the search.
- send_results(stream, iq)
+ send_results(stream, iq, results)
r1 = q.expect('dbus-signal', signal='SearchResultReceived')
r2 = q.expect('dbus-signal', signal='SearchResultReceived')
@@ -197,7 +140,7 @@ def cancelled_while_in_progress(q, bus, conn, requests, stream, server):
search_result_received_event = EventPattern('dbus-signal', signal='SearchResultReceived')
q.forbid_events([search_result_received_event])
- send_results(stream, iq)
+ send_results(stream, iq, results)
# Make sure Gabble's received the results.
sync_stream(q, stream)
--
1.5.6.5
More information about the telepathy-commits
mailing list