diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-10-27 16:17:40 +0100 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-10-28 16:16:37 +0100 |
commit | 7f3b4e7c145fad099b45ad5536b804498584a723 (patch) | |
tree | 892d0af862fe71c7155cef95b47225187a5ca388 /tests | |
parent | a6c40254424f16d54c6c69a8edd2168a8ff4a4cf (diff) | |
download | telepathy-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.py | 22 |
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 |