Updated the XEP-0085 plugin.

Can now be used as so:

>>> msg['chat_state']
''
>>> msg
<message />

>>> msg['chat_state'] = 'paused'
>>> msg
<message>
  <paused xmlns="http://jabber.org/protocol/chatstates" />
</message>

>>> msg['chat_state']
'paused'

>>> del msg['chat_state']
>>> msg
<message />
This commit is contained in:
Lance Stout
2011-02-24 12:10:29 -05:00
parent 4df3aa569b
commit 77251452c1
6 changed files with 149 additions and 124 deletions

View File

@@ -4,11 +4,7 @@ import sleekxmpp.plugins.xep_0085 as xep_0085
class TestChatStates(SleekTest):
def setUp(self):
register_stanza_plugin(Message, xep_0085.Active)
register_stanza_plugin(Message, xep_0085.Composing)
register_stanza_plugin(Message, xep_0085.Gone)
register_stanza_plugin(Message, xep_0085.Inactive)
register_stanza_plugin(Message, xep_0085.Paused)
register_stanza_plugin(Message, xep_0085.ChatState)
def testCreateChatState(self):
"""Testing creating chat states."""
@@ -20,25 +16,26 @@ class TestChatStates(SleekTest):
"""
msg = self.Message()
msg['chat_state'].active()
self.check(msg, xmlstring % 'active',
use_values=False)
msg['chat_state'].composing()
self.check(msg, xmlstring % 'composing',
use_values=False)
self.assertEqual(msg['chat_state'], '')
self.check(msg, "<message />", use_values=False)
msg['chat_state'] = 'active'
self.check(msg, xmlstring % 'active', use_values=False)
msg['chat_state'].gone()
self.check(msg, xmlstring % 'gone',
use_values=False)
msg['chat_state'] = 'composing'
self.check(msg, xmlstring % 'composing', use_values=False)
msg['chat_state'].inactive()
self.check(msg, xmlstring % 'inactive',
use_values=False)
msg['chat_state'] = 'gone'
self.check(msg, xmlstring % 'gone', use_values=False)
msg['chat_state'].paused()
self.check(msg, xmlstring % 'paused',
use_values=False)
msg['chat_state'] = 'inactive'
self.check(msg, xmlstring % 'inactive', use_values=False)
msg['chat_state'] = 'paused'
self.check(msg, xmlstring % 'paused', use_values=False)
del msg['chat_state']
self.check(msg, "<message />")
suite = unittest.TestLoader().loadTestsFromTestCase(TestChatStates)