ee3943b5b1
Build documentation / build (push) Failing after 0s
CI / check_code_quality (push) Has been cancelled
CI / test (deps-latest, ubuntu-latest, integration) (push) Has been cancelled
CI / test (deps-latest, ubuntu-latest, unit) (push) Has been cancelled
CI / test (deps-latest, windows-latest, integration) (push) Has been cancelled
CI / test (deps-latest, windows-latest, unit) (push) Has been cancelled
CI / test (deps-minimum, ubuntu-latest, integration) (push) Has been cancelled
CI / test (deps-minimum, ubuntu-latest, unit) (push) Has been cancelled
CI / test (deps-minimum, windows-latest, integration) (push) Has been cancelled
CI / test (deps-minimum, windows-latest, unit) (push) Has been cancelled
CI / test_py314 (deps-latest, ubuntu-latest, unit) (push) Has been cancelled
CI / test_py314 (deps-latest, windows-latest, unit) (push) Has been cancelled
CI / test_py314_future (deps-latest, ubuntu-latest, unit) (push) Has been cancelled
CI / test_py314_future (deps-latest, windows-latest, unit) (push) Has been cancelled
Secret Leaks / trufflehog (push) Has been cancelled
53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
from tempfile import NamedTemporaryFile
|
|
|
|
import httpx
|
|
import pytest
|
|
import requests
|
|
from huggingface_hub import get_session
|
|
from huggingface_hub.errors import OfflineModeIsEnabled
|
|
|
|
from datasets.utils.file_utils import fsspec_get, fsspec_head
|
|
|
|
from .utils import (
|
|
IS_HF_HUB_1_x,
|
|
OfflineSimulationMode,
|
|
RequestWouldHangIndefinitelyError,
|
|
offline,
|
|
require_not_windows,
|
|
)
|
|
|
|
|
|
@pytest.mark.integration
|
|
@require_not_windows # fsspec get keeps a file handle on windows that raises PermissionError
|
|
def test_offline_with_timeout():
|
|
expected_exception = httpx.ReadTimeout if IS_HF_HUB_1_x else requests.ConnectTimeout
|
|
with offline(OfflineSimulationMode.CONNECTION_TIMES_OUT):
|
|
with pytest.raises(RequestWouldHangIndefinitelyError):
|
|
get_session().request("GET", "https://huggingface.co")
|
|
|
|
with pytest.raises(expected_exception):
|
|
get_session().request("GET", "https://huggingface.co", timeout=1.0)
|
|
|
|
with pytest.raises(expected_exception), NamedTemporaryFile() as temp_file:
|
|
fsspec_get("hf://username/dummy", temp_file=temp_file)
|
|
|
|
|
|
@pytest.mark.integration
|
|
@require_not_windows # fsspec get keeps a file handle on windows that raises PermissionError
|
|
def test_offline_with_connection_error():
|
|
expected_exception = httpx.ConnectError if IS_HF_HUB_1_x else requests.ConnectionError
|
|
with offline(OfflineSimulationMode.CONNECTION_FAILS):
|
|
with pytest.raises(expected_exception):
|
|
get_session().request("GET", "https://huggingface.co")
|
|
|
|
with pytest.raises(expected_exception), NamedTemporaryFile() as temp_file:
|
|
fsspec_get("hf://username/dummy", temp_file=temp_file)
|
|
|
|
|
|
def test_offline_with_datasets_offline_mode_enabled():
|
|
with offline(OfflineSimulationMode.HF_HUB_OFFLINE_SET_TO_1):
|
|
with pytest.raises(OfflineModeIsEnabled):
|
|
fsspec_head("hf://username/dummy")
|
|
with pytest.raises(OfflineModeIsEnabled), NamedTemporaryFile() as temp_file:
|
|
fsspec_get("hf://username/dummy", temp_file=temp_file)
|