97a63b9f25
- add an iterate() method that makes this plugin more practical - add a get_fields method to retrieve the available search fields - add a get_archive_metadata method. This is a big chunk because git refused to split it further.
81 lines
2.7 KiB
Python
81 lines
2.7 KiB
Python
import unittest
|
|
from slixmpp import JID, Iq, Message
|
|
from slixmpp.test import SlixTest
|
|
from slixmpp.plugins.xep_0313 import stanza
|
|
from slixmpp.plugins.xep_0004.stanza import Form
|
|
from slixmpp.plugins.xep_0297 import stanza as fstanza
|
|
from slixmpp.plugins.xep_0059 import stanza as rstanza
|
|
from slixmpp.xmlstream import register_stanza_plugin
|
|
|
|
|
|
class TestMAM(SlixTest):
|
|
|
|
def setUp(self):
|
|
register_stanza_plugin(stanza.MAM, Form)
|
|
register_stanza_plugin(Iq, stanza.MAM)
|
|
register_stanza_plugin(Message, stanza.Result)
|
|
register_stanza_plugin(Iq, stanza.Fin)
|
|
register_stanza_plugin(
|
|
stanza.Result,
|
|
fstanza.Forwarded
|
|
)
|
|
register_stanza_plugin(stanza.MAM, rstanza.Set)
|
|
register_stanza_plugin(stanza.Fin, rstanza.Set)
|
|
|
|
def testMAMQuery(self):
|
|
"""Test that we can build a simple MAM query."""
|
|
iq = Iq()
|
|
iq['type'] = 'set'
|
|
iq['mam']['queryid'] = 'f27'
|
|
|
|
self.check(iq, """
|
|
<iq type='set'>
|
|
<query xmlns='urn:xmpp:mam:2' queryid='f27'/>
|
|
</iq>
|
|
""")
|
|
|
|
def testMAMQueryOptions(self):
|
|
"""Test that we can build a mam query with all options."""
|
|
iq = Iq()
|
|
iq['type'] = 'set'
|
|
iq['mam']['with'] = JID('juliet@capulet.lit')
|
|
iq['mam']['start'] = '2010-06-07T00:00:00Z'
|
|
iq['mam']['end'] = '2010-07-07T13:23:54Z'
|
|
iq['mam']['after_id'] = 'id1'
|
|
iq['mam']['before_id'] = 'id2'
|
|
iq['mam']['ids'] = ['a', 'b', 'c']
|
|
|
|
self.check(iq, """
|
|
<iq type='set'>
|
|
<query xmlns='urn:xmpp:mam:2'>
|
|
<x xmlns='jabber:x:data' type='submit'>
|
|
<field var='FORM_TYPE' type='hidden'>
|
|
<value>urn:xmpp:mam:2</value>
|
|
</field>
|
|
<field var='with'>
|
|
<value>juliet@capulet.lit</value>
|
|
</field>
|
|
<field var='start'>
|
|
<value>2010-06-07T00:00:00Z</value>
|
|
</field>
|
|
<field var='end'>
|
|
<value>2010-07-07T13:23:54Z</value>
|
|
</field>
|
|
<field var='after-id'>
|
|
<value>id1</value>
|
|
</field>
|
|
<field var='before-id'>
|
|
<value>id2</value>
|
|
</field>
|
|
<field var='ids'>
|
|
<value>a</value>
|
|
<value>b</value>
|
|
<value>c</value>
|
|
</field>
|
|
</x>
|
|
</query>
|
|
</iq>
|
|
""", use_values=False)
|
|
|
|
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestMAM)
|