mirror of https://github.com/apache/superset.git
chore(tests): Add tests to the column denormalization flow (#26220)
This commit is contained in:
parent
5df544b6fb
commit
3a6fe9f105
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
import json
|
import json
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import ANY, Mock, patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -135,3 +135,47 @@ class TestDatasourceApi(SupersetTestCase):
|
||||||
response["message"],
|
response["message"],
|
||||||
"Unable to get column values for datasource type: sl_table",
|
"Unable to get column values for datasource type: sl_table",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("app_context", "virtual_dataset")
|
||||||
|
@patch("superset.models.helpers.ExploreMixin.values_for_column")
|
||||||
|
def test_get_column_values_normalize_columns_enabled(self, values_for_column_mock):
|
||||||
|
self.login(username="admin")
|
||||||
|
table = self.get_virtual_dataset()
|
||||||
|
table.normalize_columns = True
|
||||||
|
rv = self.client.get(f"api/v1/datasource/table/{table.id}/column/col2/values/")
|
||||||
|
values_for_column_mock.assert_called_with(
|
||||||
|
column_name="col2",
|
||||||
|
limit=10000,
|
||||||
|
denormalize_column=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("app_context", "virtual_dataset")
|
||||||
|
@patch("superset.db_engine_specs.base.BaseEngineSpec.denormalize_name")
|
||||||
|
def test_get_column_values_not_denormalize_column(self, denormalize_name_mock):
|
||||||
|
self.login(username="admin")
|
||||||
|
table = self.get_virtual_dataset()
|
||||||
|
table.normalize_columns = True
|
||||||
|
rv = self.client.get(f"api/v1/datasource/table/{table.id}/column/col2/values/")
|
||||||
|
denormalize_name_mock.assert_not_called()
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("app_context", "virtual_dataset")
|
||||||
|
@patch("superset.models.helpers.ExploreMixin.values_for_column")
|
||||||
|
def test_get_column_values_normalize_columns_disabled(self, values_for_column_mock):
|
||||||
|
self.login(username="admin")
|
||||||
|
table = self.get_virtual_dataset()
|
||||||
|
table.normalize_columns = False
|
||||||
|
rv = self.client.get(f"api/v1/datasource/table/{table.id}/column/col2/values/")
|
||||||
|
values_for_column_mock.assert_called_with(
|
||||||
|
column_name="col2",
|
||||||
|
limit=10000,
|
||||||
|
denormalize_column=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("app_context", "virtual_dataset")
|
||||||
|
@patch("superset.db_engine_specs.base.BaseEngineSpec.denormalize_name")
|
||||||
|
def test_get_column_values_denormalize_column(self, denormalize_name_mock):
|
||||||
|
self.login(username="admin")
|
||||||
|
table = self.get_virtual_dataset()
|
||||||
|
table.normalize_columns = False
|
||||||
|
rv = self.client.get(f"api/v1/datasource/table/{table.id}/column/col2/values/")
|
||||||
|
denormalize_name_mock.assert_called_with(ANY, "col2")
|
||||||
|
|
Loading…
Reference in New Issue