summaryrefslogtreecommitdiff
path: root/salut
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2011-10-27 16:17:40 +0100
committerJonny Lamb <jonny.lamb@collabora.co.uk>2011-10-28 16:16:37 +0100
commitd76e50297c393a504de3110cae8ac41ea1ebb42a (patch)
tree181d678bc980af469efd9fd74ce8d604871e4ae0 /salut
parentaaa5c9202b43ab963ee518d85dcd4ac836254d53 (diff)
caps-helper: add extract_data_forms function
Stolen right from gabble. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'salut')
-rw-r--r--salut/tests/twisted/caps_helper.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/salut/tests/twisted/caps_helper.py b/salut/tests/twisted/caps_helper.py
index ab5f0c280..3ec62ef48 100644
--- a/salut/tests/twisted/caps_helper.py
+++ b/salut/tests/twisted/caps_helper.py
@@ -223,6 +223,28 @@ def receive_presence_and_ask_caps(q, stream, expect_dbus=True):
return disco_caps(q, stream, presence) + (signaled_caps,)
+def extract_data_forms(x_nodes):
+ dataforms = {}
+
+ if not x_nodes:
+ return dataforms
+
+ for form in x_nodes:
+ name = None
+ fields = {}
+ for field in xpath.queryForNodes('/x/field', form):
+ if field['var'] == 'FORM_TYPE':
+ name = str(field.firstChildElement())
+ else:
+ values = [str(x) for x in xpath.queryForNodes('/field/value', field)]
+
+ fields[field['var']] = values
+
+ if name is not None:
+ dataforms[name] = fields
+
+ return dataforms
+
def disco_caps(q, stream, presence):
c_nodes = xpath.queryForNodes('/presence/c', presence.stanza)
assert c_nodes is not None