| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| from unittest.mock import patch |
|
|
| import pytest |
|
|
| import lerobot |
| from lerobot.utils.import_utils import _require_package_cache, require_package |
|
|
|
|
| def test_version(): |
| """Verify the package exposes a version string.""" |
| assert isinstance(lerobot.__version__, str) |
| assert len(lerobot.__version__) > 0 |
|
|
|
|
| def test_require_package_raises_when_missing(): |
| """require_package raises ImportError with install instructions when a package is missing.""" |
| with patch("lerobot.utils.import_utils.is_package_available", return_value=False): |
| |
| _require_package_cache.clear() |
| try: |
| with pytest.raises(ImportError, match=r"pip install 'lerobot\[dataset\]'"): |
| require_package("datasets", extra="dataset") |
| finally: |
| _require_package_cache.clear() |
|
|
|
|
| def test_require_package_passes_when_available(): |
| """require_package does not raise when the package is installed.""" |
| with patch("lerobot.utils.import_utils.is_package_available", return_value=True): |
| _require_package_cache.clear() |
| try: |
| |
| require_package("datasets", extra="dataset") |
| finally: |
| _require_package_cache.clear() |
|
|
|
|
| def test_require_package_error_message_includes_uv(): |
| """Error message includes both pip and uv install commands.""" |
| with patch("lerobot.utils.import_utils.is_package_available", return_value=False): |
| _require_package_cache.clear() |
| try: |
| with pytest.raises(ImportError, match=r"uv pip install"): |
| require_package("grpcio", extra="async", import_name="grpc") |
| finally: |
| _require_package_cache.clear() |
|
|