summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/plugins/xep_0060/stanza/pubsub.py3
-rw-r--r--tests/test_stream_xep_0060.py37
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