from unittest.mock import Mock from unittest.mock import patch import pytest import uuid from fpsweeper.connector import logger def test_handler_creation(): """Test the creation of the handler. """ dsn = 'dsn value' handler = logger.DSNHandler(dsn) assert handler.dsn == dsn def test_get_full_message(): """Test getting a full message. """ record = Mock() message = 'Message' record.msg = message record.exc_info = None handler = logger.DSNHandler('dsn') assert handler.get_full_message(record) == message @patch('traceback.format_exception') def test_get_full_message_with_exception(trace): """Test getting message from exception """ record = Mock() record.exc_info = ['one', 'two'] trace.return_value = ['trace', 'two'] handler = logger.DSNHandler('dsn') assert handler.get_full_message(record) trace.assert_called_once_with('one', 'two') @patch('fpsweeper.connector.logger.session') def test_emit_message(session): """Test emiting a message """ record = Mock() message = 'Message' correlation_id = uuid.uuid1() record.msg = message record.exc_info = None record.correlation_id = correlation_id handler = logger.DSNHandler('dsn') handler.emit(record) assert session.post.called @patch('fpsweeper.connector.logger.session') def test_emit_message_with_system_exit(session): """Test emiting a message with system exit """ session.post = Mock(side_effect=SystemExit()) record = Mock() record.msg = 'Message' record.exc_info = None record.correlation_id = uuid.uuid1() handler = logger.DSNHandler('dsn') with pytest.raises(SystemExit): handler.emit(record) @patch('fpsweeper.connector.logger.session') def test_get_full_message_with_except(session): """Test emiting a message with an exception """ session.post = Mock(side_effect=Exception()) record = Mock() record.msg = 'Message' record.exc_info = None record.correlation_id = uuid.uuid1() handler = logger.DSNHandler('dsn') handler.handleError = Mock() handler.emit(record) handler.handleError.assert_called_with(record)