summaryrefslogtreecommitdiff
path: root/tests
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
commit7f3b4e7c145fad099b45ad5536b804498584a723 (patch)
tree892d0af862fe71c7155cef95b47225187a5ca388 /tests
parenta6c40254424f16d54c6c69a8edd2168a8ff4a4cf (diff)
downloadtelepathy-salut-7f3b4e7c145fad099b45ad5536b804498584a723.tar.gz
caps-helper: add extract_data_forms function
Stolen right from gabble. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'tests')
-rw-r--r--tests/twisted/caps_helper.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/twisted/caps_helper.py b/tests/twisted/caps_helper.py
index ab5f0c28..3ec62ef4 100644
--- a/tests/twisted/caps_helper.py
+++ b/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