This is an automated email from the ASF dual-hosted git repository. beto pushed a commit to branch slack_files_upload_v2 in repository https://gitbox.apache.org/repos/asf/superset.git
commit a4b106ee87d926ca3c16ecaf5cc37050966a7848 Author: Beto Dealmeida <[email protected]> AuthorDate: Wed Apr 19 17:17:19 2023 -0700 chore(slack): use recommended method for file upload --- superset/reports/notifications/slack.py | 14 +++++--------- superset/tasks/slack_util.py | 7 +++++-- tests/integration_tests/reports/commands_tests.py | 7 +++++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/superset/reports/notifications/slack.py b/superset/reports/notifications/slack.py index b89a700ef9..b74d63eecc 100644 --- a/superset/reports/notifications/slack.py +++ b/superset/reports/notifications/slack.py @@ -162,7 +162,6 @@ Error: %(text)s title = self._content.name channel = self._get_channel() body = self._get_body() - file_type = "csv" if self._content.csv else "png" try: token = app.config["SLACK_API_TOKEN"] if callable(token): @@ -170,14 +169,11 @@ Error: %(text)s client = WebClient(token=token, proxy=app.config["SLACK_PROXY"]) # files_upload returns SlackResponse as we run it in sync mode. if files: - for file in files: - client.files_upload( - channels=channel, - file=file, - initial_comment=body, - title=title, - filetype=file_type, - ) + client.files_upload_v2( + file_uploads=[{"file": file, "title": title} for file in files], + channels=channel, + initial_comment=body, + ) else: client.chat_postMessage(channel=channel, text=body) logger.info("Report sent to slack") diff --git a/superset/tasks/slack_util.py b/superset/tasks/slack_util.py index 652fd89b6f..16035e3ac7 100644 --- a/superset/tasks/slack_util.py +++ b/superset/tasks/slack_util.py @@ -47,8 +47,11 @@ def deliver_slack_msg( if file: response = cast( SlackResponse, - client.files_upload( - channels=slack_channel, file=file, initial_comment=body, title=subject + client.files_upload_v2( + channels=slack_channel, + file=file, + initial_comment=body, + title=subject, ), ) assert response["file"], str(response) # the uploaded file diff --git a/tests/integration_tests/reports/commands_tests.py b/tests/integration_tests/reports/commands_tests.py index cad6a75a5d..9feb2169a5 100644 --- a/tests/integration_tests/reports/commands_tests.py +++ b/tests/integration_tests/reports/commands_tests.py @@ -1123,7 +1123,7 @@ def test_email_dashboard_report_schedule_force_screenshot( @pytest.mark.usefixtures( "load_birth_names_dashboard_with_slices", "create_report_slack_chart" ) -@patch("superset.reports.notifications.slack.WebClient.files_upload") +@patch("superset.reports.notifications.slack.WebClient.files_upload_v2") @patch("superset.utils.screenshots.ChartScreenshot.get_screenshot") def test_slack_chart_report_schedule( screenshot_mock, @@ -1147,7 +1147,10 @@ def test_slack_chart_report_schedule( ) assert file_upload_mock.call_args[1]["channels"] == notification_targets[0] - assert file_upload_mock.call_args[1]["file"] == SCREENSHOT_FILE + assert ( + file_upload_mock.call_args[1]["file_uploads"][0]["file"] + == SCREENSHOT_FILE + ) # Assert logs are correct assert_log(ReportState.SUCCESS)
