-- This patch adds tests/conftest.py which is missing from the PyPI source distribution.
-- The file is taken from the GitHub repository at the same version tag.
-- Without this file, the test suite cannot be run.
--- /dev/null
+++ tests/conftest.py
@@ -0,0 +1,62 @@
+import pytest
+
+import datasets
+import datasets.config
+
+
+# Import fixture modules as plugins
+pytest_plugins = ["tests.fixtures.files", "tests.fixtures.hub", "tests.fixtures.fsspec"]
+
+
+def pytest_collection_modifyitems(config, items):
+    # Mark tests as "unit" by default if not marked as "integration" (or already marked as "unit")
+    for item in items:
+        if any(marker in item.keywords for marker in ["integration", "unit"]):
+            continue
+        item.add_marker(pytest.mark.unit)
+
+
+@pytest.fixture(autouse=True)
+def set_test_cache_config(tmp_path_factory, monkeypatch):
+    # test_hf_cache_home = tmp_path_factory.mktemp("cache")  # TODO: why a cache dir per test function does not work?
+    test_hf_cache_home = tmp_path_factory.getbasetemp() / "cache"
+    test_hf_datasets_cache = test_hf_cache_home / "datasets"
+    monkeypatch.setattr("datasets.config.HF_DATASETS_CACHE", str(test_hf_datasets_cache))
+    test_downloaded_datasets_path = test_hf_datasets_cache / "downloads"
+    monkeypatch.setattr("datasets.config.DOWNLOADED_DATASETS_PATH", str(test_downloaded_datasets_path))
+    test_extracted_datasets_path = test_hf_datasets_cache / "downloads" / "extracted"
+    monkeypatch.setattr("datasets.config.EXTRACTED_DATASETS_PATH", str(test_extracted_datasets_path))
+
+    # used in dataset viewer, we may set it to true by default in the future
+    monkeypatch.setattr("datasets.config.SAVE_ORIGINAL_SHARD_LENGTHS", True)
+
+
+@pytest.fixture(autouse=True)
+def disable_implicit_token(monkeypatch):
+    monkeypatch.setattr("huggingface_hub.constants.HF_HUB_DISABLE_IMPLICIT_TOKEN", True)
+
+
+@pytest.fixture(autouse=True, scope="session")
+def disable_tqdm_output():
+    datasets.disable_progress_bar()
+
+
+@pytest.fixture(autouse=True)
+def set_update_download_counts_to_false(monkeypatch):
+    # don't take tests into account when counting downloads
+    monkeypatch.setattr("datasets.config.HF_UPDATE_DOWNLOAD_COUNTS", False)
+
+
+@pytest.fixture
+def set_sqlalchemy_silence_uber_warning(monkeypatch):
+    # Required to suppress RemovedIn20Warning when feature(s) are not compatible with SQLAlchemy 2.0
+    # To be removed once SQLAlchemy 2.0 supported
+    try:
+        monkeypatch.setattr("sqlalchemy.util.deprecations.SILENCE_UBER_WARNING", True)
+    except (ModuleNotFoundError, AttributeError):
+        pass
+
+
+@pytest.fixture(autouse=True, scope="session")
+def zero_time_out_for_remote_code():
+    datasets.config.TIME_OUT_REMOTE_CODE = 0
