Skip to content

Commit

Permalink
fix: pass in slack error messages properly (#22727)
Browse files Browse the repository at this point in the history
  • Loading branch information
eschutho authored Jan 17, 2023
1 parent 0807875 commit c58dbf8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
14 changes: 9 additions & 5 deletions superset/reports/notifications/slack.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,14 @@ def send(self) -> None:
SlackRequestError,
SlackClientConfigurationError,
) as ex:
raise NotificationParamException from ex
raise NotificationParamException(str(ex)) from ex
except SlackObjectFormationError as ex:
raise NotificationMalformedException from ex
raise NotificationMalformedException(str(ex)) from ex
except SlackTokenRotationError as ex:
raise NotificationAuthorizationException from ex
except (SlackClientNotConnectedError, SlackClientError, SlackApiError) as ex:
raise NotificationUnprocessableException from ex
raise NotificationAuthorizationException(str(ex)) from ex
except (SlackClientNotConnectedError, SlackApiError) as ex:
raise NotificationUnprocessableException(str(ex)) from ex
except SlackClientError as ex:
# this is the base class for all slack client errors
# keep it last so that it doesn't interfere with @backoff
raise NotificationUnprocessableException(str(ex)) from ex
17 changes: 15 additions & 2 deletions tests/integration_tests/reports/commands_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1208,8 +1208,21 @@ def test_slack_chart_report_schedule_with_errors(
).run()

db.session.commit()
# Assert errors are being logged)
assert get_error_logs_query(create_report_slack_chart).count() == (idx + 1) * 2

# Assert errors are being logged

# Only one notification log is sent because it's in grace period
# for the rest of the reports
notification_logs_count = get_notification_error_sent_count(
create_report_slack_chart
)
error_logs = get_error_logs_query(create_report_slack_chart)

# check that we have two logs for each error
assert error_logs.count() == (len(slack_errors) + notification_logs_count) * 2

# check that each error has a message
assert len([log.error_message for log in error_logs]) == error_logs.count()


@pytest.mark.usefixtures(
Expand Down

0 comments on commit c58dbf8

Please sign in to comment.