-
Notifications
You must be signed in to change notification settings - Fork 14.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add feature flags to control query sharing, KV exposure #9120
Changes from 3 commits
adbe239
2b4d1c9
11bded6
d097f7b
e7b3c70
f1e683b
52585c2
ea37902
e5c7adf
3163318
dbe24cb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,13 +30,20 @@ | |
import string | ||
from typing import Any, Dict | ||
import unittest | ||
from unittest import mock | ||
from unittest import mock, skipUnless | ||
|
||
import pandas as pd | ||
import sqlalchemy as sqla | ||
|
||
from tests.test_app import app | ||
from superset import dataframe, db, jinja_context, security_manager, sql_lab | ||
from superset import ( | ||
dataframe, | ||
db, | ||
jinja_context, | ||
security_manager, | ||
sql_lab, | ||
is_feature_enabled, | ||
) | ||
from superset.common.query_context import QueryContext | ||
from superset.connectors.connector_registry import ConnectorRegistry | ||
from superset.connectors.sqla.models import SqlaTable | ||
|
@@ -497,6 +504,9 @@ def test_shortner(self): | |
resp = self.client.post("/r/shortner/", data=dict(data=data)) | ||
assert re.search(r"\/r\/[0-9]+", resp.data.decode("utf-8")) | ||
|
||
@skipUnless( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These should always be run in our test environment whether the flag is enabled or disabled. Can you set the feature flag to on before running them? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @etr2460 I spent an hour banging my head against it, and was unable to find an approach to modify feature flags after they were initialized without breaking the whole suite. I'm very open to recommendations. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could enabling this feature on just for the tests be a viable approach? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In this case it would be, since the feature flag only removes functionality and doesn't add anything different. that said, I think we should be able to test both sides of the feature flag here, do you know how to do this @dpgaspar ? Maybe mocking the feature flag checking function? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The issue in this case is that the application is booted once for the test suite and the feature flag changes the nature of the instantiation. This is a boot-time flag, not a run-time check. For this PR I'll go ahead and enable it for tests. |
||
(is_feature_enabled("KV_STORE")), "skipping as /kv/ endpoints are not enabled" | ||
) | ||
def test_kv(self): | ||
self.login(username="admin") | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.bind(this)
is only necessary when you are going to be passingthis.getCopyUrlForKvStore
around as a separate variable. If it's only called viathis.getCopyUrlForKvStore()
thenthis
will be bound correctly and these lines are unnecessary.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll try removing them - I had to add them at one point to get things functioning.