summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2011-08-31 10:43:33 -0700
committerLance Stout <lancestout@gmail.com>2011-08-31 10:43:33 -0700
commit2500a0649ba10c0109a1ed021a051284c104391f (patch)
treebc7378a2b410a869afaa816701d2fcbd4f7ac160
parent5ec4e4a026a5f3a3ec9c2cb6efd3dc1a4ccf580f (diff)
downloadslixmpp-2500a0649ba10c0109a1ed021a051284c104391f.tar.gz
slixmpp-2500a0649ba10c0109a1ed021a051284c104391f.tar.bz2
slixmpp-2500a0649ba10c0109a1ed021a051284c104391f.tar.xz
slixmpp-2500a0649ba10c0109a1ed021a051284c104391f.zip
Fix requesting pubsub node configuration, and add tests.
- <default /> doesn't have a type attribute in the XEP - <configure /> isn't used anymore for requesting default configuration
-rw-r--r--sleekxmpp/plugins/xep_0060/pubsub.py6
-rw-r--r--sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py9
-rw-r--r--tests/test_stanza_xep_0060.py3
-rw-r--r--tests/test_stream_xep_0060.py44
4 files changed, 48 insertions, 14 deletions
diff --git a/sleekxmpp/plugins/xep_0060/pubsub.py b/sleekxmpp/plugins/xep_0060/pubsub.py
index 9ce643d9..5a17dd56 100644
--- a/sleekxmpp/plugins/xep_0060/pubsub.py
+++ b/sleekxmpp/plugins/xep_0060/pubsub.py
@@ -206,11 +206,7 @@ class xep_0060(base_plugin):
be executed when a reply stanza is received.
"""
iq = self.xmpp.Iq(sto=jid, sfrom=ifrom, stype='get')
-
- if node is None:
- iq['pubsub_owner']['default']
- else:
- iq['pubsub_owner']['configure']['node'] = node
+ iq['pubsub_owner']['default']['node'] = node
return iq.send(block=block, callback=callback, timeout=timeout)
def get_node_subscriptions(self, jid, node, ifrom=None, block=True,
diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py
index 201dc909..55dd59d1 100644
--- a/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py
+++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub_owner.py
@@ -22,18 +22,13 @@ class DefaultConfig(ElementBase):
namespace = 'http://jabber.org/protocol/pubsub#owner'
name = 'default'
plugin_attrib = 'default'
- interfaces = set(('node', 'type', 'config'))
+ interfaces = set(('node', 'config'))
plugin_attrib_map = {}
plugin_tag_map = {}
def __init__(self, *args, **kwargs):
ElementBase.__init__(self, *args, **kwargs)
- def getType(self):
- t = self._getAttr('type')
- if not t: t = 'leaf'
- return t
-
def getConfig(self):
return self['form']
@@ -71,7 +66,7 @@ class OwnerConfigure(Configure):
interfaces = set(('node', 'config'))
plugin_attrib_map = {}
plugin_tag_map = {}
-
+
def getConfig(self):
return self['form']
diff --git a/tests/test_stanza_xep_0060.py b/tests/test_stanza_xep_0060.py
index 5d5c843a..34556608 100644
--- a/tests/test_stanza_xep_0060.py
+++ b/tests/test_stanza_xep_0060.py
@@ -148,14 +148,13 @@ class TestPubsubStanzas(SleekTest):
iq = self.Iq()
iq['pubsub_owner']['default']
iq['pubsub_owner']['default']['node'] = 'mynode'
- iq['pubsub_owner']['default']['type'] = 'leaf'
iq['pubsub_owner']['default']['form'].addField('pubsub#title',
ftype='text-single',
value='This thing is awesome')
self.check(iq, """
<iq id="0">
<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
- <default node="mynode" type="leaf">
+ <default node="mynode">
<x xmlns="jabber:x:data" type="form">
<field var="pubsub#title" type="text-single">
<value>This thing is awesome</value>
diff --git a/tests/test_stream_xep_0060.py b/tests/test_stream_xep_0060.py
index 634bcd4a..15ed06ce 100644
--- a/tests/test_stream_xep_0060.py
+++ b/tests/test_stream_xep_0060.py
@@ -275,5 +275,49 @@ class TestStreamPubsub(SleekTest):
to="foo@comp.example.com/bar" from="pubsub.example.com" />
""")
+ def testGetDefaultConfig(self):
+ """Test retrieving the default node configuration."""
+ t = threading.Thread(name='default_config',
+ target=self.xmpp['xep_0060'].get_node_config,
+ args=('pubsub.example.com',))
+ t.start()
+
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
+ <default />
+ </pubsub>
+ </iq>
+ """, use_values=False)
+
+ self.recv("""
+ <iq type="result" id="1"
+ to="foo@comp.example.com/bar" from="pubsub.example.com" />
+ """)
+
+ t.join()
+
+ def testGetDefaultNodeConfig(self):
+ """Tes t retrieving the default config for a given node."""
+ t = threading.Thread(name='default_config',
+ target=self.xmpp['xep_0060'].get_node_config,
+ args=('pubsub.example.com', 'somenode'))
+ t.start()
+
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
+ <default node="somenode" />
+ </pubsub>
+ </iq>
+ """, use_values=False)
+
+ self.recv("""
+ <iq type="result" id="1"
+ to="foo@comp.example.com/bar" from="pubsub.example.com" />
+ """)
+
+ t.join()
+
suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamPubsub)