mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +00:00
Fix lint/tests
This commit is contained in:
@@ -37,26 +37,27 @@ def test_semantic_layer_stub_raises() -> None:
|
||||
|
||||
def test_inject_semantic_layer_host_context() -> None:
|
||||
"""The injected decorator registers a class in host context."""
|
||||
from superset.core.api.core_api_injection import (
|
||||
inject_semantic_layer_implementations,
|
||||
)
|
||||
from superset.semantic_layers.registry import registry
|
||||
|
||||
# Clear registry for test isolation
|
||||
registry.clear()
|
||||
|
||||
with patch(
|
||||
"superset.core.api.core_api_injection.get_current_extension_context",
|
||||
return_value=None,
|
||||
):
|
||||
from superset.core.api.core_api_injection import (
|
||||
inject_semantic_layer_implementations,
|
||||
)
|
||||
|
||||
inject_semantic_layer_implementations()
|
||||
inject_semantic_layer_implementations()
|
||||
|
||||
import superset_core.semantic_layers.decorators as mod
|
||||
|
||||
@mod.semantic_layer(id="test_layer", name="Test Layer", description="A test")
|
||||
class FakeLayer:
|
||||
pass
|
||||
# Host context: no extension context active, so no prefix
|
||||
with patch(
|
||||
"superset.extensions.context.get_current_extension_context",
|
||||
return_value=None,
|
||||
):
|
||||
|
||||
@mod.semantic_layer(id="test_layer", name="Test Layer", description="A test")
|
||||
class FakeLayer:
|
||||
pass
|
||||
|
||||
assert "test_layer" in registry
|
||||
assert registry["test_layer"] is FakeLayer
|
||||
@@ -69,6 +70,9 @@ def test_inject_semantic_layer_host_context() -> None:
|
||||
|
||||
def test_inject_semantic_layer_extension_context() -> None:
|
||||
"""The injected decorator prefixes ID in extension context."""
|
||||
from superset.core.api.core_api_injection import (
|
||||
inject_semantic_layer_implementations,
|
||||
)
|
||||
from superset.semantic_layers.registry import registry
|
||||
|
||||
registry.clear()
|
||||
@@ -77,29 +81,19 @@ def test_inject_semantic_layer_extension_context() -> None:
|
||||
mock_context.manifest.publisher = "acme"
|
||||
mock_context.manifest.name = "analytics"
|
||||
|
||||
with patch(
|
||||
"superset.core.api.core_api_injection.get_current_extension_context",
|
||||
return_value=None,
|
||||
):
|
||||
from superset.core.api.core_api_injection import (
|
||||
inject_semantic_layer_implementations,
|
||||
)
|
||||
|
||||
inject_semantic_layer_implementations()
|
||||
inject_semantic_layer_implementations()
|
||||
|
||||
import superset_core.semantic_layers.decorators as mod
|
||||
|
||||
# Now simulate extension context for the decorator call
|
||||
# Extension context is checked at decorator call time via module lookup
|
||||
with patch(
|
||||
"superset.core.api.core_api_injection.get_current_extension_context",
|
||||
"superset.extensions.context.get_current_extension_context",
|
||||
return_value=mock_context,
|
||||
):
|
||||
# Re-inject so the closure captures the mock context
|
||||
inject_semantic_layer_implementations()
|
||||
|
||||
@mod.semantic_layer(id="ext_layer", name="Extension Layer")
|
||||
class ExtLayer:
|
||||
pass
|
||||
@mod.semantic_layer(id="ext_layer", name="Extension Layer")
|
||||
class ExtLayer:
|
||||
pass
|
||||
|
||||
expected_id = "extensions.acme.analytics.ext_layer"
|
||||
assert expected_id in registry
|
||||
|
||||
@@ -1004,7 +1004,7 @@ def test_convert_query_object_filter_unknown_operator(
|
||||
mock_datasource: MagicMock,
|
||||
) -> None:
|
||||
"""
|
||||
Test filter with unknown operator returns None.
|
||||
Test filter with unknown operator raises ValueError.
|
||||
"""
|
||||
all_dimensions = {
|
||||
dim.name: dim for dim in mock_datasource.implementation.dimensions
|
||||
@@ -1016,9 +1016,8 @@ def test_convert_query_object_filter_unknown_operator(
|
||||
"val": "Electronics",
|
||||
}
|
||||
|
||||
result = _convert_query_object_filter(filter_, all_dimensions)
|
||||
|
||||
assert result is None
|
||||
with pytest.raises(ValueError, match="Unsupported filter operator"):
|
||||
_convert_query_object_filter(filter_, all_dimensions)
|
||||
|
||||
|
||||
def test_validate_query_object_undefined_metric_error(
|
||||
|
||||
Reference in New Issue
Block a user