Merge pull request #375 from meejah/lost-connection

Check for transport in onLeave
This commit is contained in:
Tobias Oberstein 2015-04-04 22:49:10 +02:00
commit df5d3ba6e4
3 changed files with 16 additions and 9 deletions

View File

@ -961,7 +961,9 @@ class ApplicationSession(BaseSession):
"""
Implements :func:`autobahn.wamp.interfaces.ISession.onLeave`
"""
self.disconnect()
if self._transport:
self.disconnect()
# do we ever call onLeave with a valid transport?
def leave(self, reason=None, log_message=None):
"""

View File

@ -154,6 +154,15 @@ if os.environ.get('USE_TWISTED', False):
def abort(self):
pass
class TestClose(unittest.TestCase):
def test_server_abort(self):
handler = ApplicationSession()
MockTransport(handler)
# this should not raise an exception, but did when this
# test-case was written
handler.onClose(False)
class TestPublisher(unittest.TestCase):
@inlineCallbacks

View File

@ -333,10 +333,8 @@ if os.environ.get('USE_TWISTED', False):
# autobahn.wamp.websocket.WampWebSocketProtocol
session.onClose(False)
self.assertEqual(2, len(session.errors))
# might want to re-think this?
self.assertEqual("No transport, but disconnect() called.", str(session.errors[0][0]))
self.assertEqual(exception, session.errors[1][0])
self.assertEqual(1, len(session.errors))
self.assertEqual(exception, session.errors[0][0])
def test_on_disconnect_with_session_deferred(self):
session = MockApplicationSession()
@ -351,10 +349,8 @@ if os.environ.get('USE_TWISTED', False):
# autobahn.wamp.websocket.WampWebSocketProtocol
session.onClose(False)
self.assertEqual(2, len(session.errors))
# might want to re-think this?
self.assertEqual("No transport, but disconnect() called.", str(session.errors[0][0]))
self.assertEqual(exception, session.errors[1][0])
self.assertEqual(1, len(session.errors))
self.assertEqual(exception, session.errors[0][0])
def test_on_connect(self):
session = MockApplicationSession()