"""Test main.""" from botocore.errorfactory import ClientError import main import pytest import sentry_sdk from video import config from video.logic import activity_task_worker_pool def test_main(mocker): """Test main.""" mocker.patch.object(activity_task_worker_pool, 'start', autospec=True) mocker.patch.object(sentry_sdk, 'init', autospec=True) mocker.patch.object(config, 'SENTRY_DSN', 'test_sentry_dsn') main.main() activity_task_worker_pool.start.assert_called_once_with() sentry_sdk.init.assert_called_once_with( config.SENTRY_DSN, before_send=main.before_send_exception_to_sentry) clienterror_timeout_code = ClientError( {'Error': {'Code': 'TaskTimedOut'}}, 'asdf') clienterror_no_code = ClientError({}, 'asdf') clienterror_non_timeout_code = ClientError( {'Error': {'Code': 'NotTaskTimedOutWhateves'}}, 'asdf') exception = Exception test_event = 'test_event' @pytest.mark.parametrize(('raised_exception', 'expected_return'), [ (clienterror_timeout_code, None), (clienterror_no_code, test_event), (clienterror_non_timeout_code, test_event), (exception, test_event) ]) def test_before_send_exception_to_sentry(raised_exception, expected_return): """Test before_send_exception_to_sentry.""" assert main.before_send_exception_to_sentry( 'test_event', {'exc_info': ('blah', raised_exception, 'blah blah')}, ) == expected_return