Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 47 additions & 2 deletions tests/integration_tests/reports/scheduler_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# under the License.

from random import randint
from unittest.mock import patch
from unittest.mock import MagicMock, patch

import pytest
from flask_appbuilder.security.sqla.models import User
Expand All @@ -25,7 +25,7 @@

from superset.extensions import db
from superset.reports.models import ReportScheduleType
from superset.tasks.scheduler import execute, scheduler
from superset.tasks.scheduler import execute, log_task_failure, scheduler
from tests.integration_tests.reports.utils import insert_report_schedule
from tests.integration_tests.test_app import app

Expand Down Expand Up @@ -201,3 +201,48 @@ def test_execute_task_with_command_exception(

db.session.delete(report_schedule)
db.session.commit()


@patch("superset.tasks.scheduler.logger")
def test_log_task_failure_with_sender(logger_mock):
"""
Test that log_task_failure logs correctly when sender is provided
"""
mock_task = MagicMock()
mock_task.name = "test.task.name"
mock_exception = Exception("Test error")
mock_einfo = MagicMock()

log_task_failure(
sender=mock_task,
task_id="test-task-id",
exception=mock_exception,
einfo=mock_einfo,
)

logger_mock.exception.assert_called_once_with(
"Celery task %s failed: %s",
"test.task.name",
mock_exception,
exc_info=mock_einfo,
)


@patch("superset.tasks.scheduler.logger")
def test_log_task_failure_without_sender(logger_mock):
"""
Test that log_task_failure logs correctly when sender is None
"""
mock_exception = Exception("Test error")
mock_einfo = MagicMock()

log_task_failure(
sender=None,
task_id="test-task-id",
exception=mock_exception,
einfo=mock_einfo,
)

logger_mock.exception.assert_called_once_with(
"Celery task %s failed: %s", "Unknown", mock_exception, exc_info=mock_einfo
)
Loading