Merge branch 'develop' into roster
Conflicts: setup.py sleekxmpp/clientxmpp.py
This commit is contained in:
@@ -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']})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -90,7 +90,10 @@ class TestHandlers(SleekTest):
|
||||
iq['id'] = 'test2'
|
||||
iq['type'] = 'set'
|
||||
iq['query'] = 'test2'
|
||||
reply = iq.send(block=True, timeout=0)
|
||||
try:
|
||||
reply = iq.send(block=True, timeout=0)
|
||||
except IqTimeout:
|
||||
pass
|
||||
|
||||
self.xmpp.add_event_handler('message', waiter_handler, threaded=True)
|
||||
|
||||
|
||||
@@ -107,19 +107,12 @@ class TestStreamRoster(SleekTest):
|
||||
def testRosterTimeout(self):
|
||||
"""Test handling a timed out roster request."""
|
||||
self.stream_start()
|
||||
events = []
|
||||
|
||||
def roster_timeout(event):
|
||||
events.append('roster_timeout')
|
||||
def do_test():
|
||||
self.xmpp.get_roster(timeout=0)
|
||||
time.sleep(.1)
|
||||
|
||||
self.xmpp.add_event_handler('roster_timeout', roster_timeout)
|
||||
self.xmpp.get_roster(timeout=0)
|
||||
|
||||
# Give the event queue time to process.
|
||||
time.sleep(.1)
|
||||
|
||||
self.failUnless(events == ['roster_timeout'],
|
||||
"Roster timeout event not triggered: %s." % events)
|
||||
self.assertRaises(IqTimeout, do_test)
|
||||
|
||||
def testRosterCallback(self):
|
||||
"""Test handling a roster request callback."""
|
||||
|
||||
Reference in New Issue
Block a user