chore(tests): Add tests to the column denormalization flow (#26220)

This commit is contained in:
Vitor Avila 2023-12-12 18:34:50 -03:00 committed by GitHub
parent 5df544b6fb
commit 3a6fe9f105
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 45 additions and 1 deletions

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
import json
from unittest.mock import Mock, patch
from unittest.mock import ANY, Mock, patch
import pytest
@ -135,3 +135,47 @@ class TestDatasourceApi(SupersetTestCase):
response["message"],
"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")