mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
feat: saved queries with execution info (#11391)
* feat: add rows and last_run info to saved queries * feat: add rows to saved query * refactor and tests * lint * fix tests
This commit is contained in:
committed by
GitHub
parent
604a519d8b
commit
144b279aa2
@@ -168,8 +168,10 @@ class TestSavedQueryApi(SupersetTestCase):
|
||||
"""
|
||||
admin = self.get_user("admin")
|
||||
saved_queries = (
|
||||
db.session.query(SavedQuery).filter(SavedQuery.created_by == admin).all()
|
||||
)
|
||||
db.session.query(SavedQuery)
|
||||
.filter(SavedQuery.created_by == admin)
|
||||
.order_by(SavedQuery.schema.asc())
|
||||
).all()
|
||||
self.login(username="admin")
|
||||
query_string = {"order_column": "schema", "order_direction": "asc"}
|
||||
uri = f"api/v1/saved_query/?q={prison.dumps(query_string)}"
|
||||
|
||||
@@ -28,7 +28,7 @@ import tests.test_app
|
||||
from superset import db, security_manager
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.db_engine_specs import BaseEngineSpec
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.models.sql_lab import Query, SavedQuery
|
||||
from superset.result_set import SupersetResultSet
|
||||
from superset.sql_parse import CtasMethod
|
||||
from superset.utils.core import (
|
||||
@@ -71,6 +71,36 @@ class TestSqlLab(SupersetTestCase):
|
||||
data = self.run_sql("SELECT * FROM unexistant_table", "2")
|
||||
self.assertLess(0, len(data["error"]))
|
||||
|
||||
def test_sql_json_to_saved_query_info(self):
|
||||
"""
|
||||
SQLLab: Test SQLLab query execution info propagation to saved queries
|
||||
"""
|
||||
from freezegun import freeze_time
|
||||
|
||||
self.login("admin")
|
||||
|
||||
sql_statement = "SELECT * FROM birth_names LIMIT 10"
|
||||
examples_db_id = get_example_database().id
|
||||
saved_query = SavedQuery(db_id=examples_db_id, sql=sql_statement)
|
||||
db.session.add(saved_query)
|
||||
db.session.commit()
|
||||
|
||||
with freeze_time("2020-01-01T00:00:00Z"):
|
||||
self.run_sql(sql_statement, "1")
|
||||
saved_query_ = (
|
||||
db.session.query(SavedQuery)
|
||||
.filter(
|
||||
SavedQuery.db_id == examples_db_id, SavedQuery.sql == sql_statement
|
||||
)
|
||||
.one_or_none()
|
||||
)
|
||||
assert saved_query_.rows is not None
|
||||
assert saved_query_.last_run == datetime.now()
|
||||
|
||||
# Rollback changes
|
||||
db.session.delete(saved_query_)
|
||||
db.session.commit()
|
||||
|
||||
@parameterized.expand([CtasMethod.TABLE, CtasMethod.VIEW])
|
||||
def test_sql_json_cta_dynamic_db(self, ctas_method):
|
||||
examples_db = get_example_database()
|
||||
|
||||
Reference in New Issue
Block a user