refactor: refactor get_query_result (#36057)

This commit is contained in:
Beto Dealmeida
2025-11-21 18:14:52 -05:00
committed by GitHub
parent e303537e0c
commit a2267d869b
7 changed files with 1064 additions and 953 deletions

View File

@@ -23,8 +23,10 @@ from superset.common.query_context import QueryContext
from superset.common.query_context_processor import QueryContextProcessor
from superset.connectors.sqla.models import BaseDatasource
from superset.constants import TimeGrain
from superset.models.helpers import ExploreMixin
query_context_processor = QueryContextProcessor(
# Create processor and bind ExploreMixin methods to datasource
processor = QueryContextProcessor(
QueryContext(
datasource=BaseDatasource(),
queries=[],
@@ -36,6 +38,34 @@ query_context_processor = QueryContextProcessor(
)
)
# Bind ExploreMixin methods to datasource for testing
processor._qc_datasource.add_offset_join_column = (
ExploreMixin.add_offset_join_column.__get__(processor._qc_datasource)
)
processor._qc_datasource.join_offset_dfs = ExploreMixin.join_offset_dfs.__get__(
processor._qc_datasource
)
processor._qc_datasource.is_valid_date_range = ExploreMixin.is_valid_date_range.__get__(
processor._qc_datasource
)
processor._qc_datasource._determine_join_keys = (
ExploreMixin._determine_join_keys.__get__(processor._qc_datasource)
)
processor._qc_datasource._perform_join = ExploreMixin._perform_join.__get__(
processor._qc_datasource
)
processor._qc_datasource._apply_cleanup_logic = (
ExploreMixin._apply_cleanup_logic.__get__(processor._qc_datasource)
)
# Static methods don't need binding - assign directly
processor._qc_datasource.generate_join_column = ExploreMixin.generate_join_column
processor._qc_datasource.is_valid_date_range_static = (
ExploreMixin.is_valid_date_range_static
)
# Convenience reference for backward compatibility in tests
query_context_processor = processor._qc_datasource
@fixture
def make_join_column_producer():