mirror of
https://github.com/apache/superset.git
synced 2026-04-20 00:24:38 +00:00
feat(jinja): current_user_email macro (#27197)
This commit is contained in:
@@ -132,14 +132,15 @@ class TestDatabaseModel(SupersetTestCase):
|
||||
col = TableColumn(column_name="foo", type=str_type, table=tbl, is_dttm=True)
|
||||
self.assertTrue(col.is_temporal)
|
||||
|
||||
@patch("superset.jinja_context.g")
|
||||
def test_extra_cache_keys(self, flask_g):
|
||||
flask_g.user.username = "abc"
|
||||
@patch("superset.jinja_context.get_user_id", return_value=1)
|
||||
@patch("superset.jinja_context.get_username", return_value="abc")
|
||||
@patch("superset.jinja_context.get_user_email", return_value="abc@test.com")
|
||||
def test_extra_cache_keys(self, mock_user_email, mock_username, mock_user_id):
|
||||
base_query_obj = {
|
||||
"granularity": None,
|
||||
"from_dttm": None,
|
||||
"to_dttm": None,
|
||||
"groupby": ["user"],
|
||||
"groupby": ["id", "username", "email"],
|
||||
"metrics": [],
|
||||
"is_timeseries": False,
|
||||
"filter": [],
|
||||
@@ -148,19 +149,27 @@ class TestDatabaseModel(SupersetTestCase):
|
||||
# Table with Jinja callable.
|
||||
table1 = SqlaTable(
|
||||
table_name="test_has_extra_cache_keys_table",
|
||||
sql="SELECT '{{ current_username() }}' as user",
|
||||
sql="""
|
||||
SELECT '{{ current_user_id() }}' as id,
|
||||
SELECT '{{ current_username() }}' as username,
|
||||
SELECT '{{ current_user_email() }}' as email,
|
||||
""",
|
||||
database=get_example_database(),
|
||||
)
|
||||
|
||||
query_obj = dict(**base_query_obj, extras={})
|
||||
extra_cache_keys = table1.get_extra_cache_keys(query_obj)
|
||||
self.assertTrue(table1.has_extra_cache_key_calls(query_obj))
|
||||
assert extra_cache_keys == ["abc"]
|
||||
assert extra_cache_keys == [1, "abc", "abc@test.com"]
|
||||
|
||||
# Table with Jinja callable disabled.
|
||||
table2 = SqlaTable(
|
||||
table_name="test_has_extra_cache_keys_disabled_table",
|
||||
sql="SELECT '{{ current_username(False) }}' as user",
|
||||
sql="""
|
||||
SELECT '{{ current_user_id(False) }}' as id,
|
||||
SELECT '{{ current_username(False) }}' as username,
|
||||
SELECT '{{ current_user_email(False) }}' as email,
|
||||
""",
|
||||
database=get_example_database(),
|
||||
)
|
||||
query_obj = dict(**base_query_obj, extras={})
|
||||
@@ -189,9 +198,8 @@ class TestDatabaseModel(SupersetTestCase):
|
||||
self.assertTrue(table3.has_extra_cache_key_calls(query_obj))
|
||||
assert extra_cache_keys == ["abc"]
|
||||
|
||||
@patch("superset.jinja_context.g")
|
||||
def test_jinja_metrics_and_calc_columns(self, flask_g):
|
||||
flask_g.user.username = "abc"
|
||||
@patch("superset.jinja_context.get_username", return_value="abc")
|
||||
def test_jinja_metrics_and_calc_columns(self, mock_username):
|
||||
base_query_obj = {
|
||||
"granularity": None,
|
||||
"from_dttm": None,
|
||||
|
||||
Reference in New Issue
Block a user