import mock
import Queue
import run_test_server
+import StringIO
import tempfile
import threading
import time
run_test_server.authorize_with('active')
events = Queue.Queue(100)
- log_file = tempfile.NamedTemporaryFile(suffix='log.out', delete=True)
+ logstream = StringIO.StringIO()
rootLogger = logging.getLogger()
- fileHandler = logging.FileHandler(log_file.name)
- rootLogger.addHandler(fileHandler)
+ streamHandler = logging.StreamHandler(logstream)
+ rootLogger.addHandler(streamHandler)
filters = [['object_uuid', 'is_a', 'arvados#human']]
filters.append(['created_at', '>=', self.localiso(self.TIME_PAST)])
self.assertEqual(events.get(True, 2), None)
# verify log message to ensure that an (un)expected close
- log_messages = log_file.read()
+ log_messages = logstream.getvalue()
closeLogFound = log_messages.find("Unexpected close. Reconnecting.")
retryLogFound = log_messages.find("Error during websocket reconnect. Will retry")
if close_unexpected:
self.assertNotEqual(closeLogFound, -1)
else:
self.assertEqual(closeLogFound, -1)
- rootLogger.removeHandler(fileHandler)
+ rootLogger.removeHandler(streamHandler)
def test_websocket_reconnect_on_unexpected_close(self):
self._test_websocket_reconnect(True)
def test_websocket_reconnect_retry(self, event_client_connect):
event_client_connect.side_effect = [None, Exception('EventClient.connect error'), None]
- log_file = tempfile.NamedTemporaryFile(suffix='log.out', delete=True)
+ logstream = StringIO.StringIO()
rootLogger = logging.getLogger()
- fileHandler = logging.FileHandler(log_file.name)
- rootLogger.addHandler(fileHandler)
+ streamHandler = logging.StreamHandler(logstream)
+ rootLogger.addHandler(streamHandler)
run_test_server.authorize_with('active')
events = Queue.Queue(100)
self.ws.on_closed()
# verify log messages to ensure retry happened
- log_messages = log_file.read()
+ log_messages = logstream.getvalue()
found = log_messages.find("Error 'EventClient.connect error' during websocket reconnect. Will retry")
self.assertNotEqual(found, -1)
- rootLogger.removeHandler(fileHandler)
+ rootLogger.removeHandler(streamHandler)