summaryrefslogtreecommitdiff
path: root/tests/test_presencestanzas.py
blob: 23eb911e56ccb2c14a2d534a51b61212f0764625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import unittest

class testpresencestanzas(unittest.TestCase):

	def setUp(self):
		import sleekxmpp.stanza.presence as p
		self.p = p
	
	def testPresenceShowRegression(self):
		"Regression check presence['type'] = 'dnd' show value working"
		p = self.p.Presence()
		p['type'] = 'dnd'
		self.failUnless(str(p) == "<presence><show>dnd</show></presence>")
	
	def testPresenceUnsolicitedOffline(self):
		"Unsolicted offline presence does not spawn changed_status or update roster"
		p = self.p.Presence()
		p['type'] = 'unavailable'
		p['from'] = 'bill@chadmore.com/gmail15af'
		import sleekxmpp
		c = sleekxmpp.ClientXMPP('crap@wherever', 'password')
		happened = []
		def handlechangedpresence(event):
			happened.append(True)
		c.add_event_handler("changed_status", handlechangedpresence)
		c._handlePresence(p)
		self.failUnless(happened == [], "changed_status event triggered for superfulous unavailable presence")
		self.failUnless(c.roster == {}, "Roster updated for superfulous unavailable presence")
        

suite = unittest.TestLoader().loadTestsFromTestCase(testpresencestanzas)