36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib
|
|
from unittest.mock import Mock, patch
|
|
|
|
import pytest
|
|
import rerun.utilities.datafusion.functions.url_generation
|
|
from rerun.error_utils import RerunMissingDependencyError
|
|
|
|
|
|
def test_smoke() -> None:
|
|
"""Just check that we can import the module."""
|
|
|
|
|
|
def test_segment_url_import_normal() -> None:
|
|
"""Check that we can import segment_url when datafusion is available."""
|
|
from rerun.utilities.datafusion.functions.url_generation import segment_url
|
|
|
|
assert segment_url is not None
|
|
|
|
|
|
def test_segment_url_without_datafusion() -> None:
|
|
"""Check that calling segment_url raises RerunOptionalDependencyError when datafusion is unavailable."""
|
|
# Mock the import to make datafusion unavailable
|
|
with patch.dict("sys.modules", {"datafusion": None}):
|
|
importlib.reload(rerun.utilities.datafusion.functions.url_generation)
|
|
# Import the module - this should work
|
|
from rerun.utilities.datafusion.functions.url_generation import segment_url
|
|
|
|
# Create a mock dataset for testing
|
|
mock_dataset = Mock()
|
|
|
|
# But calling the function should raise an error
|
|
with pytest.raises(RerunMissingDependencyError, match="'datafusion' could not be imported"):
|
|
segment_url(mock_dataset)
|