From e8824986be6aefba5ccdf9166c5d85bb4891be2e Mon Sep 17 00:00:00 2001
From: hughhhh <hughmil3s@gmail.com>
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)