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)