mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
test: birth names (#12226)
* add birth names fixture * fix birth names related tests * fix test_import_v0_dataset_cli_export columns order * fix celery tests drop table * fix mysql datetime type * fix mysql typo in charts/api_tests * refactor * add licence * fix use fixture for presto * fix presto, hive query * fix flaky metadata * fix mysql bigint type * fix run query * fix hive datatype in metadata * fix slice owner for cypress * refactor num_boys num_girls * fix is_dttm column * debug logging * fix query offset * fix presto ds type in metadata * fix presto ds type * clean up debug logging
This commit is contained in:
@@ -23,6 +23,7 @@ import string
|
||||
import time
|
||||
import unittest.mock as mock
|
||||
from typing import Optional
|
||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -160,6 +161,7 @@ def test_run_sync_query_dont_exist(setup_sqllab, ctas_method):
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@pytest.mark.parametrize("ctas_method", [CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
def test_run_sync_query_cta(setup_sqllab, ctas_method):
|
||||
tmp_table_name = f"{TEST_SYNC}_{ctas_method.lower()}"
|
||||
@@ -173,7 +175,10 @@ def test_run_sync_query_cta(setup_sqllab, ctas_method):
|
||||
assert QueryStatus.SUCCESS == results["status"], results
|
||||
assert len(results["data"]) > 0
|
||||
|
||||
delete_tmp_view_or_table(tmp_table_name, ctas_method)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
def test_run_sync_query_cta_no_data(setup_sqllab):
|
||||
sql_empty_result = "SELECT * FROM birth_names WHERE name='random'"
|
||||
result = run_sql(sql_empty_result)
|
||||
@@ -184,6 +189,7 @@ def test_run_sync_query_cta_no_data(setup_sqllab):
|
||||
assert QueryStatus.SUCCESS == query.status
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@pytest.mark.parametrize("ctas_method", [CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
@mock.patch(
|
||||
"superset.views.core.get_cta_schema_name", lambda d, u, s, sql: CTAS_SCHEMA_NAME
|
||||
@@ -208,7 +214,10 @@ def test_run_sync_query_cta_config(setup_sqllab, ctas_method):
|
||||
results = run_sql(query.select_sql)
|
||||
assert QueryStatus.SUCCESS == results["status"], result
|
||||
|
||||
delete_tmp_view_or_table(f"{CTAS_SCHEMA_NAME}.{tmp_table_name}", ctas_method)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@pytest.mark.parametrize("ctas_method", [CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
@mock.patch(
|
||||
"superset.views.core.get_cta_schema_name", lambda d, u, s, sql: CTAS_SCHEMA_NAME
|
||||
@@ -232,7 +241,10 @@ def test_run_async_query_cta_config(setup_sqllab, ctas_method):
|
||||
== query.executed_sql
|
||||
)
|
||||
|
||||
delete_tmp_view_or_table(f"{CTAS_SCHEMA_NAME}.{tmp_table_name}", ctas_method)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@pytest.mark.parametrize("ctas_method", [CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
def test_run_async_cta_query(setup_sqllab, ctas_method):
|
||||
table_name = f"{TEST_ASYNC_CTA}_{ctas_method.lower()}"
|
||||
@@ -252,7 +264,10 @@ def test_run_async_cta_query(setup_sqllab, ctas_method):
|
||||
assert query.select_as_cta
|
||||
assert query.select_as_cta_used
|
||||
|
||||
delete_tmp_view_or_table(table_name, ctas_method)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@pytest.mark.parametrize("ctas_method", [CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
def test_run_async_cta_query_with_lower_limit(setup_sqllab, ctas_method):
|
||||
tmp_table = f"{TEST_ASYNC_LOWER_LIMIT}_{ctas_method.lower()}"
|
||||
@@ -272,6 +287,8 @@ def test_run_async_cta_query_with_lower_limit(setup_sqllab, ctas_method):
|
||||
assert query.select_as_cta
|
||||
assert query.select_as_cta_used
|
||||
|
||||
delete_tmp_view_or_table(tmp_table, ctas_method)
|
||||
|
||||
|
||||
SERIALIZATION_DATA = [("a", 4, 4.0, datetime.datetime(2019, 8, 18, 16, 39, 16, 660000))]
|
||||
CURSOR_DESCR = (
|
||||
@@ -306,6 +323,7 @@ def test_new_data_serialization():
|
||||
assert isinstance(data[0], bytes)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
def test_default_payload_serialization():
|
||||
use_new_deserialization = False
|
||||
db_engine_spec = BaseEngineSpec()
|
||||
@@ -338,6 +356,7 @@ def test_default_payload_serialization():
|
||||
assert isinstance(serialized, str)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
def test_msgpack_payload_serialization():
|
||||
use_new_deserialization = True
|
||||
db_engine_spec = BaseEngineSpec()
|
||||
@@ -406,3 +425,7 @@ def test_in_app_context():
|
||||
my_task()
|
||||
finally:
|
||||
flask._app_ctx_stack.push(popped_app)
|
||||
|
||||
|
||||
def delete_tmp_view_or_table(name: str, db_object_type: str):
|
||||
db.get_engine().execute(f"DROP {db_object_type} IF EXISTS {name}")
|
||||
|
||||
Reference in New Issue
Block a user