diff options
-rw-r--r-- | sleekxmpp/plugins/xep_0060/stanza/pubsub.py | 3 | ||||
-rw-r--r-- | tests/test_stream_xep_0060.py | 37 |
2 files changed, 37 insertions, 3 deletions
diff --git a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py index ed3e57d4..139992e3 100644 --- a/sleekxmpp/plugins/xep_0060/stanza/pubsub.py +++ b/sleekxmpp/plugins/xep_0060/stanza/pubsub.py @@ -92,7 +92,8 @@ class Item(ElementBase): plugin_tag_map = {} def setPayload(self, value): - self.xml.append(value) + del self['payload'] + self.append(value) def getPayload(self): childs = self.xml.getchildren() diff --git a/tests/test_stream_xep_0060.py b/tests/test_stream_xep_0060.py index e128eff5..048e41eb 100644 --- a/tests/test_stream_xep_0060.py +++ b/tests/test_stream_xep_0060.py @@ -3,6 +3,8 @@ import time import threading from sleekxmpp.test import * +from sleekxmpp.stanza.atom import AtomEntry +from sleekxmpp.xmlstream import register_stanza_plugin class TestStreamPubsub(SleekTest): @@ -381,12 +383,43 @@ class TestStreamPubsub(SleekTest): def testPublishSingle(self): """Test publishing a single item.""" - pass + payload = AtomEntry() + payload['title'] = 'Test' + + register_stanza_plugin(self.xmpp['xep_0060'].stanza.Item, AtomEntry) + + t = threading.Thread(name='publish_single', + target=self.xmpp['xep_0060'].publish, + args=('pubsub.example.com', 'somenode'), + kwargs={'item_id': 'ID42', + 'payload': payload}) + t.start() + + self.send(""" + <iq type="set" id="1" to="pubsub.example.com"> + <pubsub xmlns="http://jabber.org/protocol/pubsub"> + <publish node="somenode"> + <item id="ID42"> + <entry xmlns="http://www.w3.org/2005/Atom"> + <title>Test</title> + </entry> + </item> + </publish> + </pubsub> + </iq> + """) + + self.recv(""" + <iq type="result" id="1" + to="tester@localhost" from="pubsub.example.com" /> + """) + + t.join() + def testPublishSingleOptions(self): """Test publishing a single item, with options.""" - def testPublishMulti(self): """Test publishing multiple items.""" pass |