From 33a6951a96e4e2bdb0daf6473a4cf5f82515e20a Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Fri, 8 Jan 2016 20:46:49 +0200 Subject: [PATCH] server: don't crash after single exception --- trezor_agent/server.py | 2 ++ trezor_agent/tests/test_server.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/trezor_agent/server.py b/trezor_agent/server.py index 77af856..ba0ce41 100644 --- a/trezor_agent/server.py +++ b/trezor_agent/server.py @@ -46,6 +46,8 @@ def handle_connection(conn, handler): util.send(conn, reply) except EOFError: log.debug('goodbye agent') + except Exception as e: # pylint: disable=broad-except + log.warning('error: %s', e, exc_info=True) def retry(func, exception_type, quit_event): diff --git a/trezor_agent/tests/test_server.py b/trezor_agent/tests/test_server.py index 64616cc..9b4a159 100644 --- a/trezor_agent/tests/test_server.py +++ b/trezor_agent/tests/test_server.py @@ -4,6 +4,7 @@ import threading import os import io import pytest +import mock from .. import server from .. import protocol @@ -48,8 +49,9 @@ def test_handle(): server.handle_connection(conn, handler) assert conn.tx.getvalue() == b'\x00\x00\x00\x05\x0C\x00\x00\x00\x00' - with pytest.raises(AttributeError): - server.handle_connection(conn=None, handler=None) + conn_mock = mock.Mock(spec=FakeSocket) + conn_mock.recv.side_effect = [Exception, EOFError] + server.handle_connection(conn=conn_mock, handler=None) def test_server_thread():