48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
|
import unittest
|
||
|
from xml.etree import cElementTree as ET
|
||
|
from sleekxmpp.xmlstream.matcher.stanzapath import StanzaPath
|
||
|
from . import xmlcompare
|
||
|
|
||
|
import sleekxmpp.plugins.xep_0085 as cs
|
||
|
|
||
|
def stanzaPlugin(stanza, plugin):
|
||
|
stanza.plugin_attrib_map[plugin.plugin_attrib] = plugin
|
||
|
stanza.plugin_tag_map["{%s}%s" % (plugin.namespace, plugin.name)] = plugin
|
||
|
|
||
|
class testchatstates(unittest.TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
self.cs = cs
|
||
|
stanzaPlugin(self.cs.Message, self.cs.Active)
|
||
|
stanzaPlugin(self.cs.Message, self.cs.Composing)
|
||
|
stanzaPlugin(self.cs.Message, self.cs.Gone)
|
||
|
stanzaPlugin(self.cs.Message, self.cs.Inactive)
|
||
|
stanzaPlugin(self.cs.Message, self.cs.Paused)
|
||
|
|
||
|
def try2Methods(self, xmlstring, msg):
|
||
|
msg2 = self.cs.Message(None, self.cs.ET.fromstring(xmlstring))
|
||
|
self.failUnless(xmlstring == str(msg) == str(msg2),
|
||
|
"Two methods for creating stanza don't match")
|
||
|
|
||
|
def testCreateChatState(self):
|
||
|
"""Testing creating chat states."""
|
||
|
xmlstring = """<message><%s xmlns="http://jabber.org/protocol/chatstates" /></message>"""
|
||
|
|
||
|
msg = self.cs.Message()
|
||
|
msg['chat_state'].active()
|
||
|
self.try2Methods(xmlstring % 'active', msg)
|
||
|
|
||
|
msg['chat_state'].composing()
|
||
|
self.try2Methods(xmlstring % 'composing', msg)
|
||
|
|
||
|
msg['chat_state'].gone()
|
||
|
self.try2Methods(xmlstring % 'gone', msg)
|
||
|
|
||
|
msg['chat_state'].inactive()
|
||
|
self.try2Methods(xmlstring % 'inactive', msg)
|
||
|
|
||
|
msg['chat_state'].paused()
|
||
|
self.try2Methods(xmlstring % 'paused', msg)
|
||
|
|
||
|
suite = unittest.TestLoader().loadTestsFromTestCase(testchatstates)
|