4 from slixmpp
.test
import SlixTest
5 from slixmpp
.xmlstream
import register_stanza_plugin
6 from slixmpp
.plugins
.xep_0030
import DiscoItems
7 from slixmpp
.plugins
.xep_0059
import ResultIterator
, Set
10 class TestStreamSet(SlixTest
):
13 register_stanza_plugin(DiscoItems
, Set
)
18 def iter(self
, rev
=False):
21 it
= ResultIterator(q
, 'disco_items', amount
='1', reverse
=rev
)
23 for j
in i
['disco_items']['items']:
24 self
.items
.append(j
[0])
26 def testResultIterator(self
):
28 self
.stream_start(mode
='client')
29 t
= threading
.Thread(target
=self
.iter)
32 <iq type="get" id="2">
33 <query xmlns="http://jabber.org/protocol/disco#items">
34 <set xmlns="http://jabber.org/protocol/rsm">
41 <iq type="result" id="2">
42 <query xmlns="http://jabber.org/protocol/disco#items">
44 <set xmlns="http://jabber.org/protocol/rsm">
51 <iq type="get" id="3">
52 <query xmlns="http://jabber.org/protocol/disco#items">
53 <set xmlns="http://jabber.org/protocol/rsm">
61 <iq type="result" id="3">
62 <query xmlns="http://jabber.org/protocol/disco#items">
64 <set xmlns="http://jabber.org/protocol/rsm">
71 <iq type="get" id="4">
72 <query xmlns="http://jabber.org/protocol/disco#items">
73 <set xmlns="http://jabber.org/protocol/rsm">
81 <iq type="result" id="4">
82 <query xmlns="http://jabber.org/protocol/disco#items">
84 <set xmlns="http://jabber.org/protocol/rsm">
90 self
.failUnless(self
.items
== ['item1', 'item2'])
92 def testResultIteratorReverse(self
):
94 self
.stream_start(mode
='client')
96 t
= threading
.Thread(target
=self
.iter, args
=(True,))
100 <iq type="get" id="2">
101 <query xmlns="http://jabber.org/protocol/disco#items">
102 <set xmlns="http://jabber.org/protocol/rsm">
110 <iq type="result" id="2">
111 <query xmlns="http://jabber.org/protocol/disco#items">
113 <set xmlns="http://jabber.org/protocol/rsm">
120 <iq type="get" id="3">
121 <query xmlns="http://jabber.org/protocol/disco#items">
122 <set xmlns="http://jabber.org/protocol/rsm">
124 <before>item2</before>
130 <iq type="result" id="3">
131 <query xmlns="http://jabber.org/protocol/disco#items">
133 <set xmlns="http://jabber.org/protocol/rsm">
140 <iq type="get" id="4">
141 <query xmlns="http://jabber.org/protocol/disco#items">
142 <set xmlns="http://jabber.org/protocol/rsm">
144 <before>item1</before>
150 <iq type="result" id="4">
151 <query xmlns="http://jabber.org/protocol/disco#items">
153 <set xmlns="http://jabber.org/protocol/rsm">
160 self
.failUnless(self
.items
== ['item2', 'item1'])
163 suite
= unittest
.TestLoader().loadTestsFromTestCase(TestStreamSet
)