| import os |
| from pathlib import Path |
| from unittest.mock import patch |
|
|
| import pytest |
|
|
| from evaluate.utils.file_utils import OfflineModeIsEnabled, cached_path, ftp_get, ftp_head, http_get, http_head |
|
|
|
|
| FILE_CONTENT = """\ |
| Text data. |
| Second line of data.""" |
|
|
|
|
| def test_cached_path_local(text_file): |
| |
| text_file = str(Path(text_file).resolve()) |
| assert cached_path(text_file) == text_file |
| |
| text_file = str(Path(__file__).resolve().relative_to(Path(os.getcwd()))) |
| assert cached_path(text_file) == text_file |
|
|
|
|
| def test_cached_path_missing_local(tmp_path): |
| |
| missing_file = str(tmp_path.resolve() / "__missing_file__.txt") |
| with pytest.raises(FileNotFoundError): |
| cached_path(missing_file) |
| |
| missing_file = "./__missing_file__.txt" |
| with pytest.raises(FileNotFoundError): |
| cached_path(missing_file) |
|
|
|
|
| @patch("evaluate.config.HF_EVALUATE_OFFLINE", True) |
| def test_cached_path_offline(): |
| with pytest.raises(OfflineModeIsEnabled): |
| cached_path("https://huggingface.co") |
|
|
|
|
| @patch("evaluate.config.HF_EVALUATE_OFFLINE", True) |
| def test_http_offline(tmp_path_factory): |
| filename = tmp_path_factory.mktemp("data") / "file.html" |
| with pytest.raises(OfflineModeIsEnabled): |
| http_get("https://huggingface.co", temp_file=filename) |
| with pytest.raises(OfflineModeIsEnabled): |
| http_head("https://huggingface.co") |
|
|
|
|
| @patch("evaluate.config.HF_EVALUATE_OFFLINE", True) |
| def test_ftp_offline(tmp_path_factory): |
| filename = tmp_path_factory.mktemp("data") / "file.html" |
| with pytest.raises(OfflineModeIsEnabled): |
| ftp_get("ftp://huggingface.co", temp_file=filename) |
| with pytest.raises(OfflineModeIsEnabled): |
| ftp_head("ftp://huggingface.co") |
|
|