]> code.delx.au - pymsnt/commitdiff
Fixed tests to work with rev152+ fix.
authorjamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>
Sun, 14 May 2006 10:08:01 +0000 (10:08 +0000)
committerjamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>
Sun, 14 May 2006 10:08:01 +0000 (10:08 +0000)
git-svn-id: http://delx.cjb.net/svn/pymsnt/trunk@155 55fbd22a-6204-0410-b2f0-b6c764c7e90a

committer: jamesbunton <jamesbunton@55fbd22a-6204-0410-b2f0-b6c764c7e90a>

src/tlib/msn/msn.py
src/tlib/msn/msnw.py
src/tlib/msn/test_msn.py
src/xmlconfig.py

index 14f1a0182839a45aa28d3f741219b461d3f7e162..3486e001d7d3a5125dcd335bfdb48215193fc2a2 100644 (file)
@@ -2179,15 +2179,15 @@ class SwitchboardClient(MSNEventBase):
         """
         cTypes = [s.lstrip() for s in message.getHeader('Content-Type').split(';')]
         if self._checkTyping(message, cTypes): return 0
         """
         cTypes = [s.lstrip() for s in message.getHeader('Content-Type').split(';')]
         if self._checkTyping(message, cTypes): return 0
-        if 'text/x-msmsgsinvite' in cTypes:
+#        if 'text/x-msmsgsinvite' in cTypes:
             # header like info is sent as part of the message body.
             # header like info is sent as part of the message body.
-            info = {}
-            for line in message.message.split('\r\n'):
-                try:
-                    key, val = line.split(':')
-                    info[key] = val.lstrip()
-                except ValueError: continue
-            if self._checkFileInvitation(message, info): return 0
+#            info = {}
+#            for line in message.message.split('\r\n'):
+#                try:
+#                    key, val = line.split(':')
+#                    info[key] = val.lstrip()
+#                except ValueError: continue
+#            if self._checkFileInvitation(message, info): return 0
         elif 'application/x-msnmsgrp2p' in cTypes:
             self._handleP2PMessage(message)
             return 0
         elif 'application/x-msnmsgrp2p' in cTypes:
             self._handleP2PMessage(message)
             return 0
index 2241c22aab20b3c885233d305f26a95e7d0e04e0..7355d32c1159ec3657fb989b3fbf3361b8b81e49 100644 (file)
@@ -360,6 +360,10 @@ class DispatchClient(msn.DispatchClient):
 
 
 class NotificationClient(msn.NotificationClient):
 
 
 class NotificationClient(msn.NotificationClient):
+       def doDisconnect(self):
+               if hasattr(self, "transport") and self.transport:
+                       self.transport.loseConnection()
+
        def loginFailure(self, message):
                self.factory.msncon.loginFailed(message)
        
        def loginFailure(self, message):
                self.factory.msncon.loginFailed(message)
        
@@ -373,9 +377,13 @@ class NotificationClient(msn.NotificationClient):
        
        def logOut(self):
                msn.NotificationClient.logOut(self)
        
        def logOut(self):
                msn.NotificationClient.logOut(self)
+               # If we explicitly log out, then all of these events
+               # are now redundant
+               self.loginFailure = self.doDisconnect
+               self.loggedIn = self.doDisconnect
+               self.connectionLost = self.doDisconnect
        
        def connectionLost(self, reason):
        
        def connectionLost(self, reason):
-               if not self.factory.msncon: return # If we called logOut
                def wait():
                        LogEvent(INFO, self.factory.msncon.ident)
                        msn.NotificationClient.connectionLost(self, reason)
                def wait():
                        LogEvent(INFO, self.factory.msncon.ident)
                        msn.NotificationClient.connectionLost(self, reason)
@@ -461,11 +469,13 @@ class SwitchboardSessionBase(msn.SwitchboardClient):
                self.ready = False
 
        def __del__(self):
                self.ready = False
 
        def __del__(self):
+               self.ready = False
                LogEvent(INFO, self.ident)
                del self.msncon
                self.transport.disconnect()
        
        def connectionLost(self, reason):
                LogEvent(INFO, self.ident)
                del self.msncon
                self.transport.disconnect()
        
        def connectionLost(self, reason):
+               self.ready = False
                self.msncon = None
                self.msnobj = None
                self.ident = (self.ident[0], self.ident[1] + " Disconnected!")
                self.msncon = None
                self.msnobj = None
                self.ident = (self.ident[0], self.ident[1] + " Disconnected!")
index 9f54c8b09d4b33f1d004d6dd6ec53375a1bdc647..bec12e6d31b8341d54eb56ab7fa17ebaa5966b5b 100644 (file)
@@ -43,8 +43,11 @@ class LoopbackCon:
         self.con2 = con2
         self.con1ToCon2 = loopback.LoopbackRelay(con1)
         self.con2ToCon1 = loopback.LoopbackRelay(con2)
         self.con2 = con2
         self.con1ToCon2 = loopback.LoopbackRelay(con1)
         self.con2ToCon1 = loopback.LoopbackRelay(con2)
-        con2.makeConnection(self.con1ToCon2)
-        con1.makeConnection(self.con2ToCon1)
+        self.reconnect()
+
+    def reconnect(self):
+        self.con2.makeConnection(self.con1ToCon2)
+        self.con1.makeConnection(self.con2ToCon1)
         self.connected = True
 
     def doSteps(self, steps=1):
         self.connected = True
 
     def doSteps(self, steps=1):
@@ -225,6 +228,7 @@ class NotificationTests(unittest.TestCase):
     def setUp(self):
         self.client = DummyNotificationClient()
         self.client.factory = msn.NotificationFactory()
     def setUp(self):
         self.client = DummyNotificationClient()
         self.client.factory = msn.NotificationFactory()
+        msn.MSNEventBase.connectionMade(self.client)
         self.client.state = 'START'
 
     def tearDown(self):
         self.client.state = 'START'
 
     def tearDown(self):
@@ -707,6 +711,7 @@ class NotificationChallengeTests(unittest.TestCase):
                       ('93662730714769834295', 'd619dfbb1414004d34d0628766636568'),
                       ('31154116582196216093', '95e96c4f8cfdba6f065c8869b5e984e9')]
         for challenge, response in challenges:
                       ('93662730714769834295', 'd619dfbb1414004d34d0628766636568'),
                       ('31154116582196216093', '95e96c4f8cfdba6f065c8869b5e984e9')]
         for challenge, response in challenges:
+            self.loop.reconnect()
             self.server.doChallenge(challenge, response)
             self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
             self.failUnless((self.server.state == 'PASS'), 'Incorrect challenge response.')
             self.server.doChallenge(challenge, response)
             self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
             self.failUnless((self.server.state == 'PASS'), 'Incorrect challenge response.')
@@ -723,6 +728,7 @@ class DummyPingNotificationServer(LineReceiver):
 
 class DummyPingNotificationClient(msn.NotificationClient):
     def connectionMade(self):
 
 class DummyPingNotificationClient(msn.NotificationClient):
     def connectionMade(self):
+        msn.MSNEventBase.connectionMade(self)
         self.pingCheckerStart()
 
     def sendLine(self, line):
         self.pingCheckerStart()
 
     def sendLine(self, line):
@@ -903,13 +909,11 @@ class SwitchboardBasicTests(unittest.TestCase):
         self.failUnless((self.client.state == 'GOTMESSAGE'), 'Failed to detect message')
 
     def testInviteUser(self):
         self.failUnless((self.client.state == 'GOTMESSAGE'), 'Failed to detect message')
 
     def testInviteUser(self):
-        self.client.connectionMade = lambda: None
         self.client.doSendInvite()
         self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
         self.failUnless((self.client.state == 'INVITESUCCESS'), 'Failed to invite user')
 
     def testSendMessage(self):
         self.client.doSendInvite()
         self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
         self.failUnless((self.client.state == 'INVITESUCCESS'), 'Failed to invite user')
 
     def testSendMessage(self):
-        self.client.connectionMade = lambda: None
         self.client.doSendMessage()
         self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
         self.failUnless((self.client.state == 'MESSAGESUCCESS'), 'Failed to send message')
         self.client.doSendMessage()
         self.failUnless(self.loop.doSteps(10), 'Failed to disconnect')
         self.failUnless((self.client.state == 'MESSAGESUCCESS'), 'Failed to send message')
index ea3065520af91794143e9c6bccc8cf14823ad42a..11eab8fe232ed350a3b2c5c1cca8ef610f8a6f2a 100644 (file)
@@ -59,7 +59,7 @@ def importFile(configFile):
 def importOptions(options):
        for o in options:
                if hasattr(config, o):
 def importOptions(options):
        for o in options:
                if hasattr(config, o):
-                       setattr(config, o, options[0])
+                       setattr(config, o, options[o])
                else:
                        print "Option %s is not a defined option. Ignoring!" % (o)
 
                else:
                        print "Option %s is not a defined option. Ignoring!" % (o)