diff options
-rw-r--r-- | sleekxmpp/plugins/xep_0060/pubsub.py | 1 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0060/stanza/pubsub.py | 3 | ||||
-rw-r--r-- | tests/test_stream_xep_0060.py | 58 |
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) |