summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-12-28 15:37:02 -0500
committerLance Stout <lancestout@gmail.com>2010-12-28 15:43:00 -0500
commit8749f5e09bcc13c6b40e98025329b23194277803 (patch)
tree03daf5332eb686bdd4d7a8abe56935e465ed44d0
parentb3353183f308b5ec43a6d69e637a3b87b7d7fcb2 (diff)
downloadslixmpp-8749f5e09bcc13c6b40e98025329b23194277803.tar.gz
slixmpp-8749f5e09bcc13c6b40e98025329b23194277803.tar.bz2
slixmpp-8749f5e09bcc13c6b40e98025329b23194277803.tar.xz
slixmpp-8749f5e09bcc13c6b40e98025329b23194277803.zip
Make the new XEP-30 plugin retain older API signatures.
-rw-r--r--sleekxmpp/plugins/xep_0030/disco.py40
-rw-r--r--tests/test_stream_xep_0030.py12
2 files changed, 33 insertions, 19 deletions
diff --git a/sleekxmpp/plugins/xep_0030/disco.py b/sleekxmpp/plugins/xep_0030/disco.py
index 92ee5ec6..2e993e28 100644
--- a/sleekxmpp/plugins/xep_0030/disco.py
+++ b/sleekxmpp/plugins/xep_0030/disco.py
@@ -90,6 +90,10 @@ class xep_0030(base_plugin):
self.description = 'Service Discovery'
self.stanza = sleekxmpp.plugins.xep_0030.stanza
+ # Retain some backwards compatibility
+ self.getInfo = self.get_info
+ self.getItems = self.get_items
+
self.xmpp.register_handler(
Callback('Disco Info',
StanzaPath('iq/disco_info'),
@@ -248,7 +252,8 @@ class xep_0030(base_plugin):
return self._fix_default_info(info)
iq = self.xmpp.Iq()
- iq['from'] = kwargs.get('ifrom', '')
+ # Check dfrom parameter for backwards compatibility
+ iq['from'] = kwargs.get('ifrom', kwargs.get('dfrom', ''))
iq['to'] = jid
iq['type'] = 'get'
iq['disco_info']['node'] = node if node else ''
@@ -285,7 +290,8 @@ class xep_0030(base_plugin):
return self._run_node_handler('get_items', jid, node, kwargs)
iq = self.xmpp.Iq()
- iq['from'] = kwargs.get('ifrom', '')
+ # Check dfrom parameter for backwards compatibility
+ iq['from'] = kwargs.get('ifrom', kwargs.get('dfrom', ''))
iq['to'] = jid
iq['type'] = 'get'
iq['disco_items']['node'] = node if node else ''
@@ -317,7 +323,7 @@ class xep_0030(base_plugin):
"""
self._run_node_handler('del_items', jid, node, kwargs)
- def add_item(self, jid=None, node=None, **kwargs):
+ def add_item(self, jid=None, name='', node=None, subnode='', ijid=None):
"""
Add a new item element to the given JID/node combination.
@@ -325,12 +331,15 @@ class xep_0030(base_plugin):
a node value to reference non-addressable entities.
Arguments:
- jid -- The JID to modify.
- node -- The node to modify.
- ijid -- The JID for the item.
- inode -- Optional node for the item.
+ jid -- The JID for the item.
name -- Optional name for the item.
+ node -- The node to modify.
+ subnode -- Optional node for the item.
+ ijid -- The JID to modify.
"""
+ kwargs = {'ijid': jid,
+ 'name': name,
+ 'inode': subnode}
self._run_node_handler('add_item', jid, node, kwargs)
def del_item(self, jid=None, node=None, **kwargs):
@@ -345,7 +354,7 @@ class xep_0030(base_plugin):
"""
self._run_node_handler('del_item', jid, node, kwargs)
- def add_identity(self, jid=None, node=None, **kwargs):
+ def add_identity(self, category='', itype='', name='', node=None, jid=None, lang=None):
"""
Add a new identity to the given JID/node combination.
@@ -358,24 +367,29 @@ class xep_0030(base_plugin):
names are different. A category and type is always required.
Arguments:
- jid -- The JID to modify.
- node -- The node to modify.
category -- The identity's category.
itype -- The identity's type.
name -- Optional name for the identity.
lang -- Optional two-letter language code.
+ node -- The node to modify.
+ jid -- The JID to modify.
"""
+ kwargs = {'category': category,
+ 'itype': itype,
+ 'name': name,
+ 'lang': lang}
self._run_node_handler('add_identity', jid, node, kwargs)
- def add_feature(self, jid=None, node=None, **kwargs):
+ def add_feature(self, feature, node=None, jid=None):
"""
Add a feature to a JID/node combination.
Arguments:
- jid -- The JID to modify.
- node -- The node to modify.
feature -- The namespace of the supported feature.
+ node -- The node to modify.
+ jid -- The JID to modify.
"""
+ kwargs = {'feature': feature}
self._run_node_handler('add_feature', jid, node, kwargs)
def del_identity(self, jid=None, node=None, **kwargs):
diff --git a/tests/test_stream_xep_0030.py b/tests/test_stream_xep_0030.py
index 1f989745..25a41027 100644
--- a/tests/test_stream_xep_0030.py
+++ b/tests/test_stream_xep_0030.py
@@ -406,10 +406,10 @@ class TestStreamDisco(SleekTest):
self.xmpp['xep_0030'].make_static(jid='tester@localhost',
node='testing')
- self.xmpp['xep_0030'].add_item(jid='tester@localhost',
+ self.xmpp['xep_0030'].add_item(ijid='tester@localhost',
node='testing',
- ijid='tester@localhost',
- inode='foo',
+ jid='tester@localhost',
+ subnode='foo',
name='Test')
self.recv("""
@@ -446,10 +446,10 @@ class TestStreamDisco(SleekTest):
self.xmpp['xep_0030'].make_static(jid='user@tester.localhost',
node='testing')
- self.xmpp['xep_0030'].add_item(jid='user@tester.localhost',
+ self.xmpp['xep_0030'].add_item(ijid='user@tester.localhost',
node='testing',
- ijid='user@tester.localhost',
- inode='foo',
+ jid='user@tester.localhost',
+ subnode='foo',
name='Test')
self.recv("""