|
|
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") |
|
|
|