Skip to content

Commit

Permalink
chore(tests): Add tests to the column denormalization flow (apache#26220
Browse files Browse the repository at this point in the history
)
  • Loading branch information
Vitor-Avila authored Dec 12, 2023
1 parent 5df544b commit 3a6fe9f
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion tests/integration_tests/datasource/api_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -135,3 +135,47 @@ def test_get_column_values_not_implemented_error(self, get_datasource_mock):
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")

0 comments on commit 3a6fe9f

Please sign in to comment.