From 9b7ed73f95145f88887d6fc3daa1bd2a9596b943 Mon Sep 17 00:00:00 2001
From: Lance Stout <lancestout@gmail.com>
Date: Thu, 11 Aug 2011 21:59:55 -0700
Subject: Reorganize XEP-0004.

Changes:
    May now use underscored method names
    form.field is replaced by form['fields']
    form.get_fields no longer accepts use_dict parameter, it always
        returns an OrderedDict now
    form.set_fields will accept either an OrderedDict, or a list
        of (var, dict) tuples as before.
    Setting the form type to 'submit' will remove extra meta data
        from the form fields, leaving just the 'var' and 'value'
    Setting the form type to 'cancel' will remove all fields.
---
 tests/test_stanza_xep_0004.py | 41 +++++++++++++++++++++++------------------
 tests/test_stanza_xep_0060.py | 34 +++++++++++++++++-----------------
 2 files changed, 40 insertions(+), 35 deletions(-)

(limited to 'tests')

diff --git a/tests/test_stanza_xep_0004.py b/tests/test_stanza_xep_0004.py
index bdc4a878..22f8b77d 100644
--- a/tests/test_stanza_xep_0004.py
+++ b/tests/test_stanza_xep_0004.py
@@ -1,4 +1,6 @@
 from sleekxmpp.test import *
+from sleekxmpp.thirdparty import OrderedDict
+
 import sleekxmpp.plugins.xep_0004 as xep_0004
 
 
@@ -47,21 +49,25 @@ class TestDataForms(SleekTest):
           </message>
         """)
 
-        form['fields'] = [('f1', {'type': 'text-single',
-                                  'label': 'Username',
-                                  'required': True}),
-                          ('f2', {'type': 'text-private',
-                                  'label': 'Password',
-                                  'required': True}),
-                          ('f3', {'type': 'text-multi',
-                                  'label': 'Message',
-                                  'value': 'Enter message.\nA long one even.'}),
-                          ('f4', {'type': 'list-single',
-                                  'label': 'Message Type',
-                                  'options': [{'label': 'Cool!',
-                                               'value': 'cool'},
-                                              {'label': 'Urgh!',
-                                               'value': 'urgh'}]})]
+        fields = OrderedDict()
+        fields['f1'] = {'type': 'text-single',
+                        'label': 'Username',
+                        'required': True}
+        fields['f2'] = {'type': 'text-private',
+                        'label': 'Password',
+                        'required': True}
+        fields['f3'] = {'type': 'text-multi',
+                        'label': 'Message',
+                        'value': 'Enter message.\nA long one even.'}
+        fields['f4'] = {'type': 'list-single',
+                        'label': 'Message Type',
+                        'options': [{'label': 'Cool!',
+                                     'value': 'cool'},
+                                    {'label': 'Urgh!',
+                                     'value': 'urgh'}]}
+        form['fields'] = fields
+
+
         self.check(msg, """
           <message>
             <x xmlns="jabber:x:data" type="form">
@@ -92,9 +98,8 @@ class TestDataForms(SleekTest):
 
         msg = self.Message()
         form = msg['form']
-        form.setFields([
-                ('foo', {'type': 'text-single'}),
-                ('bar', {'type': 'list-multi'})])
+        form.add_field(var='foo', ftype='text-single')
+        form.add_field(var='bar', ftype='list-multi')
 
         form.setValues({'foo': 'Foo!',
                         'bar': ['a', 'b']})
diff --git a/tests/test_stanza_xep_0060.py b/tests/test_stanza_xep_0060.py
index d42c11bd..2427b787 100644
--- a/tests/test_stanza_xep_0060.py
+++ b/tests/test_stanza_xep_0060.py
@@ -182,7 +182,7 @@ class TestPubsubStanzas(SleekTest):
             <subscribe node="cheese" jid="fritzy@netflint.net/sleekxmpp">
               <options node="cheese" jid="fritzy@netflint.net/sleekxmpp">
                 <x xmlns="jabber:x:data" type="submit">
-                  <field var="pubsub#title" type="text-single">
+                  <field var="pubsub#title">
                     <value>this thing is awesome</value>
                   </field>
                 </x>
@@ -306,42 +306,42 @@ class TestPubsubStanzas(SleekTest):
               <create node="testnode2" />
               <configure>
                 <x xmlns="jabber:x:data" type="submit">
-                  <field var="FORM_TYPE" type="hidden">
+                  <field var="FORM_TYPE">
                     <value>http://jabber.org/protocol/pubsub#node_config</value>
                   </field>
-                  <field var="pubsub#node_type" type="list-single" label="Select the node type">
+                  <field var="pubsub#node_type">
                     <value>leaf</value>
                   </field>
-                  <field var="pubsub#title" type="text-single" label="A friendly name for the node" />
-                  <field var="pubsub#deliver_notifications" type="boolean" label="Deliver event notifications">
+                  <field var="pubsub#title" />
+                  <field var="pubsub#deliver_notifications">
                     <value>1</value>
                   </field>
-                  <field var="pubsub#deliver_payloads" type="boolean" label="Deliver payloads with event notifications">
+                  <field var="pubsub#deliver_payloads">
                     <value>1</value>
                   </field>
-                  <field var="pubsub#notify_config" type="boolean" label="Notify subscribers when the node configuration changes" />
-                  <field var="pubsub#notify_delete" type="boolean" label="Notify subscribers when the node is deleted" />
-                  <field var="pubsub#notify_retract" type="boolean" label="Notify subscribers when items are removed from the node">
+                  <field var="pubsub#notify_config" />
+                  <field var="pubsub#notify_delete" />
+                  <field var="pubsub#notify_retract">
                     <value>1</value>
                   </field>
-                  <field var="pubsub#notify_sub" type="boolean" label="Notify owners about new subscribers and unsubscribes" />
-                  <field var="pubsub#persist_items" type="boolean" label="Persist items in storage" />
-                  <field var="pubsub#max_items" type="text-single" label="Max # of items to persist">
+                  <field var="pubsub#notify_sub" />
+                  <field var="pubsub#persist_items" />
+                  <field var="pubsub#max_items">
                     <value>10</value>
                   </field>
-                  <field var="pubsub#subscribe" type="boolean" label="Whether to allow subscriptions">
+                  <field var="pubsub#subscribe">
                     <value>1</value>
                   </field>
-                  <field var="pubsub#access_model" type="list-single" label="Specify the subscriber model">
+                  <field var="pubsub#access_model">
                     <value>open</value>
                   </field>
-                  <field var="pubsub#publish_model" type="list-single" label="Specify the publisher model">
+                  <field var="pubsub#publish_model">
                     <value>publishers</value>
                   </field>
-                  <field var="pubsub#send_last_published_item" type="list-single" label="Send last published item">
+                  <field var="pubsub#send_last_published_item">
                     <value>never</value>
                   </field>
-                  <field var="pubsub#presence_based_delivery" type="boolean" label="Deliver notification only to available users" />
+                  <field var="pubsub#presence_based_delivery" />
                 </x>
               </configure>
             </pubsub>
-- 
cgit v1.2.3