summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/plugins/xep_0060/pubsub.py1
-rw-r--r--sleekxmpp/plugins/xep_0060/stanza/pubsub.py3
-rw-r--r--tests/test_stream_xep_0060.py58
3 files changed, 58 insertions, 4 deletions
diff --git a/sleekxmpp/plugins/xep_0060/pubsub.py b/sleekxmpp/plugins/xep_0060/pubsub.py
index 627ad37a..c0038cee 100644
--- a/sleekxmpp/plugins/xep_0060/pubsub.py
+++ b/sleekxmpp/plugins/xep_0060/pubsub.py
@@ -334,6 +334,7 @@ class xep_0060(base_plugin):
iq = self.xmpp.Iq(sto=jid, sfrom=ifrom, stype='get')
item = self.stanza.Item()
item['id'] = item_id
+ iq['pubsub']['items']['node'] = node
iq['pubsub']['items'].append(item)
return iq.send(block=block, callback=callback, timeout=timeout)
diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
index 9f3fbe22..d62fc661 100644
--- a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
+++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py
@@ -113,6 +113,9 @@ class Items(ElementBase):
plugin_tag_map = {}
subitem = (Item,)
+ def set_max_items(self, value):
+ self._set_attr('max_items', str(value))
+
registerStanzaPlugin(Pubsub, Items)
class Create(ElementBase):
diff --git a/tests/test_stream_xep_0060.py b/tests/test_stream_xep_0060.py
index 4e2dca6d..0ac7d9fc 100644
--- a/tests/test_stream_xep_0060.py
+++ b/tests/test_stream_xep_0060.py
@@ -478,19 +478,69 @@ class TestStreamPubsub(SleekTest):
def testGetItem(self):
"""Test retrieving a single item."""
- pass
+ self.xmpp['xep_0060'].get_item(
+ 'pubsub.example.com',
+ 'somenode',
+ 'id42',
+ block=False)
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub">
+ <items node="somenode">
+ <item id="id42" />
+ </items>
+ </pubsub>
+ </iq>
+ """)
def testGetLatestItems(self):
"""Test retrieving the most recent N items."""
- pass
+ self.xmpp['xep_0060'].get_items(
+ 'pubsub.example.com',
+ 'somenode',
+ max_items=3,
+ block=False)
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub">
+ <items node="somenode" max_items="3" />
+ </pubsub>
+ </iq>
+ """)
def testGetAllItems(self):
"""Test retrieving all items."""
- pass
+ self.xmpp['xep_0060'].get_items(
+ 'pubsub.example.com',
+ 'somenode',
+ block=False)
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub">
+ <items node="somenode" />
+ </pubsub>
+ </iq>
+ """)
def testGetSpecificItems(self):
"""Test retrieving a specific set of items."""
- pass
+ self.xmpp['xep_0060'].get_items(
+ 'pubsub.example.com',
+ 'somenode',
+ item_ids=['A', 'B', 'C'],
+ block=False)
+ self.send("""
+ <iq type="get" id="1" to="pubsub.example.com">
+ <pubsub xmlns="http://jabber.org/protocol/pubsub">
+ <items node="somenode">
+ <item id="A" />
+ <item id="B" />
+ <item id="C" />
+ </items>
+ </pubsub>
+ </iq>
+ """)
+
suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamPubsub)