XEP-0060 v1.13 dictates publishing/retracting one item at a time.
This commit is contained in:
@@ -359,6 +359,20 @@ class TestStreamPubsub(SleekTest):
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testPublishNoItems(self):
|
||||
"""Test publishing no items (in order to generate events)"""
|
||||
self.xmpp['xep_0060'].publish(
|
||||
'pubsub.example.com',
|
||||
'somenode',
|
||||
block=False)
|
||||
self.send("""
|
||||
<iq type="set" id="1" to="pubsub.example.com">
|
||||
<pubsub xmlns="http://jabber.org/protocol/pubsub">
|
||||
<publish node="somenode" />
|
||||
</pubsub>
|
||||
</iq>
|
||||
""")
|
||||
|
||||
def testPublishSingle(self):
|
||||
"""Test publishing a single item."""
|
||||
payload = AtomEntry()
|
||||
@@ -369,14 +383,14 @@ class TestStreamPubsub(SleekTest):
|
||||
self.xmpp['xep_0060'].publish(
|
||||
'pubsub.example.com',
|
||||
'somenode',
|
||||
item_id='ID42',
|
||||
id='id42',
|
||||
payload=payload,
|
||||
block=False)
|
||||
self.send("""
|
||||
<iq type="set" id="1" to="pubsub.example.com">
|
||||
<pubsub xmlns="http://jabber.org/protocol/pubsub">
|
||||
<publish node="somenode">
|
||||
<item id="ID42">
|
||||
<item id="id42">
|
||||
<entry xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Test</title>
|
||||
</entry>
|
||||
@@ -403,7 +417,7 @@ class TestStreamPubsub(SleekTest):
|
||||
self.xmpp['xep_0060'].publish(
|
||||
'pubsub.example.com',
|
||||
'somenode',
|
||||
item_id='ID42',
|
||||
id='ID42',
|
||||
payload=payload,
|
||||
options=options,
|
||||
block=False)
|
||||
@@ -431,94 +445,6 @@ class TestStreamPubsub(SleekTest):
|
||||
</iq>
|
||||
""", use_values=False)
|
||||
|
||||
def testPublishMulti(self):
|
||||
"""Test publishing multiple items."""
|
||||
payload1 = AtomEntry()
|
||||
payload1['title'] = 'Test 1'
|
||||
|
||||
payload2 = AtomEntry()
|
||||
payload2['title'] = 'Test 2'
|
||||
|
||||
register_stanza_plugin(self.xmpp['xep_0060'].stanza.Item, AtomEntry)
|
||||
|
||||
self.xmpp['xep_0060'].publish(
|
||||
'pubsub.example.com',
|
||||
'somenode',
|
||||
items=[('ID1', payload1),
|
||||
('ID2', payload2)],
|
||||
block=False)
|
||||
self.send("""
|
||||
<iq type="set" id="1" to="pubsub.example.com">
|
||||
<pubsub xmlns="http://jabber.org/protocol/pubsub">
|
||||
<publish node="somenode">
|
||||
<item id="ID1">
|
||||
<entry xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Test 1</title>
|
||||
</entry>
|
||||
</item>
|
||||
<item id="ID2">
|
||||
<entry xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Test 2</title>
|
||||
</entry>
|
||||
</item>
|
||||
</publish>
|
||||
</pubsub>
|
||||
</iq>
|
||||
""", use_values=False)
|
||||
|
||||
def testPublishMultiOptions(self):
|
||||
"""Test publishing multiple items, with options."""
|
||||
payload1 = AtomEntry()
|
||||
payload1['title'] = 'Test 1'
|
||||
|
||||
payload2 = AtomEntry()
|
||||
payload2['title'] = 'Test 2'
|
||||
|
||||
register_stanza_plugin(self.xmpp['xep_0060'].stanza.Item, AtomEntry)
|
||||
|
||||
options = self.xmpp['xep_0004'].make_form()
|
||||
options.add_field(var='FORM_TYPE', ftype='hidden',
|
||||
value='http://jabber.org/protocol/pubsub#publish-options')
|
||||
options.add_field(var='pubsub#access_model', ftype='text-single',
|
||||
value='presence')
|
||||
options['type'] = 'submit'
|
||||
|
||||
self.xmpp['xep_0060'].publish(
|
||||
'pubsub.example.com',
|
||||
'somenode',
|
||||
items=[('ID1', payload1),
|
||||
('ID2', payload2)],
|
||||
options=options,
|
||||
block=False)
|
||||
self.send("""
|
||||
<iq type="set" id="1" to="pubsub.example.com">
|
||||
<pubsub xmlns="http://jabber.org/protocol/pubsub">
|
||||
<publish node="somenode">
|
||||
<item id="ID1">
|
||||
<entry xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Test 1</title>
|
||||
</entry>
|
||||
</item>
|
||||
<item id="ID2">
|
||||
<entry xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Test 2</title>
|
||||
</entry>
|
||||
</item>
|
||||
</publish>
|
||||
<publish-options>
|
||||
<x xmlns="jabber:x:data" type="submit">
|
||||
<field var="FORM_TYPE">
|
||||
<value>http://jabber.org/protocol/pubsub#publish-options</value>
|
||||
</field>
|
||||
<field var="pubsub#access_model">
|
||||
<value>presence</value>
|
||||
</field>
|
||||
</x>
|
||||
</publish-options>
|
||||
</pubsub>
|
||||
</iq>
|
||||
""", use_values=False)
|
||||
|
||||
def testRetract(self):
|
||||
"""Test deleting an item."""
|
||||
self.xmpp['xep_0060'].retract(
|
||||
|
||||
Reference in New Issue
Block a user