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 | d76e50297c393a504de3110cae8ac41ea1ebb42a (patch) | |
tree | 181d678bc980af469efd9fd74ce8d604871e4ae0 /salut | |
parent | aaa5c9202b43ab963ee518d85dcd4ac836254d53 (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.py | 22 |
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 |