From e8824986be6aefba5ccdf9166c5d85bb4891be2e Mon Sep 17 00:00:00 2001 From: hughhhh Date: Fri, 15 Apr 2022 10:18:58 -0400 Subject: [PATCH] address concerns --- ...0b36b94_rm_time_range_endpoints_from_qc.py | 33 +-------------- .../cecc6bf46990_rm_time_range_endpoints_2.py | 2 +- ...f46990_rm_time_range_endpoints_2__tests.py | 40 ++++++++++++++++++- 3 files changed, 41 insertions(+), 34 deletions(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index 42d73bc33d335..e4e4718a41173 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -26,40 +26,9 @@ revision = "2ed890b36b94" down_revision = "58df9d617f14" -import json - -import sqlalchemy as sa -from alembic import op -from sqlalchemy.ext.declarative import declarative_base - -from superset import db - -Base = declarative_base() - - -class Slice(Base): - __tablename__ = "slices" - id = sa.Column(sa.Integer, primary_key=True) - query_context = sa.Column(sa.Text) - def upgrade(): - bind = op.get_bind() - session = db.Session(bind=bind) - for slc in session.query(Slice).filter( - Slice.query_context.like("%time_range_endpoints%") - ): - try: - query_context = json.loads(slc.query_context) - except json.decoder.JSONDecodeError: - continue - queries = query_context.get("queries") - for query in queries: - query.get("extras", {}).pop("time_range_endpoints", None) - slc.queries = json.dumps(queries) - - session.commit() - session.close() + pass def downgrade(): diff --git a/superset/migrations/versions/cecc6bf46990_rm_time_range_endpoints_2.py b/superset/migrations/versions/cecc6bf46990_rm_time_range_endpoints_2.py index 081704e786861..20d797ddbaf20 100644 --- a/superset/migrations/versions/cecc6bf46990_rm_time_range_endpoints_2.py +++ b/superset/migrations/versions/cecc6bf46990_rm_time_range_endpoints_2.py @@ -48,7 +48,7 @@ def upgrade_slice(slc: Slice): try: query_context = json.loads(slc.query_context) except json.decoder.JSONDecodeError: - pass + return queries = query_context.get("queries") diff --git a/tests/integration_tests/migrations/cecc6bf46990_rm_time_range_endpoints_2__tests.py b/tests/integration_tests/migrations/cecc6bf46990_rm_time_range_endpoints_2__tests.py index c1fd86f25b7a9..26d9eec0a5e75 100644 --- a/tests/integration_tests/migrations/cecc6bf46990_rm_time_range_endpoints_2__tests.py +++ b/tests/integration_tests/migrations/cecc6bf46990_rm_time_range_endpoints_2__tests.py @@ -53,7 +53,6 @@ "datasource": "27__table", "slice_id": 545, "url_params": {}, - "time_range_endpoints": ["inclusive", "exclusive"], "time_grain_sqla": "P1D", "time_range": "No filter", "query_mode": "raw", @@ -80,6 +79,39 @@ } +sample_query_context = { + "datasource": {"id": 27, "type": "table"}, + "force": False, + "queries": [ + { + "time_range": "No filter", + "filters": [], + "extras": { + "time_grain_sqla": "P1D", + "time_range_endpoints": ["inclusive", "exclusive"], + "having": "", + "having_druid": [], + "where": "", + }, + "applied_time_extras": {}, + "columns": ["a", "b"], + "orderby": [], + "annotation_layers": [], + "row_limit": 1000, + "timeseries_limit": 0, + "order_desc": True, + "url_params": {}, + "custom_params": {}, + "custom_form_data": {}, + "post_processing": [], + } + ], + "form_data": {}, + "result_format": "json", + "result_type": "full", +} + + def test_upgrade(): slc = Slice(slice_name="FOO", query_context=json.dumps(sample_query_context)) @@ -90,3 +122,9 @@ def test_upgrade(): for q in queries: extras = q.get("extras", {}) assert "time_range_endpoints" not in extras + + +def test_upgrade_bad_json(): + slc = Slice(slice_name="FOO", query_context="abc") + + assert None == upgrade_slice(slc)