mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
fix: Bad date type in email text report for table chart (#20119)
* fix bad date type in email text report for table chart * fix test, pylint issue * add test case for date type
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
# under the License.
|
||||
import json
|
||||
from contextlib import contextmanager
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from typing import Any, Dict, List, Optional
|
||||
from unittest.mock import Mock, patch
|
||||
from uuid import uuid4
|
||||
@@ -960,6 +960,8 @@ def test_email_chart_report_schedule_with_text(
|
||||
mock_open.return_value = response
|
||||
mock_urlopen.return_value = response
|
||||
mock_urlopen.return_value.getcode.return_value = 200
|
||||
|
||||
# test without date type.
|
||||
response.read.return_value = json.dumps(
|
||||
{
|
||||
"result": [
|
||||
@@ -971,6 +973,7 @@ def test_email_chart_report_schedule_with_text(
|
||||
},
|
||||
"colnames": [("t1",), ("t2",), ("t3__sum",)],
|
||||
"indexnames": [(0,), (1,)],
|
||||
"coltypes": [1, 1],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -1011,6 +1014,59 @@ def test_email_chart_report_schedule_with_text(
|
||||
# Assert logs are correct
|
||||
assert_log(ReportState.SUCCESS)
|
||||
|
||||
# test with date type.
|
||||
dt = datetime(2022, 1, 1).replace(tzinfo=timezone.utc)
|
||||
ts = datetime.timestamp(dt) * 1000
|
||||
response.read.return_value = json.dumps(
|
||||
{
|
||||
"result": [
|
||||
{
|
||||
"data": {
|
||||
"t1": {0: "c11", 1: "c21"},
|
||||
"t2__date": {0: ts, 1: ts},
|
||||
"t3__sum": {0: "c13", 1: "c23"},
|
||||
},
|
||||
"colnames": [("t1",), ("t2__date",), ("t3__sum",)],
|
||||
"indexnames": [(0,), (1,)],
|
||||
"coltypes": [1, 2],
|
||||
},
|
||||
],
|
||||
}
|
||||
).encode("utf-8")
|
||||
|
||||
with freeze_time("2020-01-01T00:00:00Z"):
|
||||
AsyncExecuteReportScheduleCommand(
|
||||
TEST_ID, create_report_email_chart_with_text.id, datetime.utcnow()
|
||||
).run()
|
||||
|
||||
# assert that the data is embedded correctly
|
||||
table_html = """<table border="1" class="dataframe">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>t1</th>
|
||||
<th>t2__date</th>
|
||||
<th>t3__sum</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>0</th>
|
||||
<td>c11</td>
|
||||
<td>2022-01-01</td>
|
||||
<td>c13</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<td>c21</td>
|
||||
<td>2022-01-01</td>
|
||||
<td>c23</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>"""
|
||||
|
||||
assert table_html in email_mock.call_args[0][2]
|
||||
|
||||
|
||||
@pytest.mark.usefixtures(
|
||||
"load_birth_names_dashboard_with_slices", "create_report_email_dashboard"
|
||||
|
||||
Reference in New Issue
Block a user