mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
fix: add fallback and validation for report and cron timezones (#17338)
* add fallback and validation for report and cron timezones * add logging to exception catch * Run black Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
This commit is contained in:
committed by
GitHub
parent
bfc813dea2
commit
f10bc6d8fe
@@ -19,6 +19,8 @@
|
||||
from datetime import datetime
|
||||
import json
|
||||
|
||||
import pytz
|
||||
|
||||
import pytest
|
||||
import prison
|
||||
from sqlalchemy.sql import func
|
||||
@@ -706,6 +708,37 @@ class TestReportSchedulesApi(SupersetTestCase):
|
||||
data = json.loads(rv.data.decode("utf-8"))
|
||||
assert data == {"message": {"timezone": ["Field may not be null."]}}
|
||||
|
||||
# Test that report cannot be created with an invalid timezone
|
||||
report_schedule_data = {
|
||||
"type": ReportScheduleType.ALERT,
|
||||
"name": "new5",
|
||||
"description": "description",
|
||||
"creation_method": ReportCreationMethodType.ALERTS_REPORTS,
|
||||
"crontab": "0 9 * * *",
|
||||
"recipients": [
|
||||
{
|
||||
"type": ReportRecipientType.EMAIL,
|
||||
"recipient_config_json": {"target": "target@superset.org"},
|
||||
},
|
||||
{
|
||||
"type": ReportRecipientType.SLACK,
|
||||
"recipient_config_json": {"target": "channel"},
|
||||
},
|
||||
],
|
||||
"working_timeout": 3600,
|
||||
"timezone": "this is not a timezone",
|
||||
"dashboard": dashboard.id,
|
||||
"database": example_db.id,
|
||||
}
|
||||
rv = self.client.post(uri, json=report_schedule_data)
|
||||
assert rv.status_code == 400
|
||||
data = json.loads(rv.data.decode("utf-8"))
|
||||
assert data == {
|
||||
"message": {
|
||||
"timezone": [f"Must be one of: {', '.join(pytz.all_timezones)}."]
|
||||
}
|
||||
}
|
||||
|
||||
# Test that report should reflect the timezone value passed in
|
||||
report_schedule_data = {
|
||||
"type": ReportScheduleType.ALERT,
|
||||
|
||||
Reference in New Issue
Block a user