Files
gps-denied-onboard/tests/e2e/conftest.py
T
Yuzviak b57187e1b8 test(e2e): rename registry entry to euroc_machine_hall with real SHA256
The prior registry entry was speculative: ``euroc_mh01`` pointing at an
old ``robotics.ethz.ch`` URL that no longer resolves (TCP timeout).
The dataset moved to ETH Research Collection (DOI 10.3929/ethz-b-000690084)
as a single 12.6 GB ``machine_hall.zip`` bundle containing MH_01…MH_05.
There's no stable direct download URL — DSpace gates behind a UI —
so:

- Renamed entry: ``euroc_mh01`` → ``euroc_machine_hall`` (matches the
  actual artifact).
- SHA256 set to the real bundle hash 5ed7d07…
- URL left empty (same pattern as ``vpair_sample``); the CLI now
  exits 3 and prints fetch instructions for empty-URL entries instead
  of crashing on ``urllib.request.urlretrieve("")``.
- Adapter ``DatasetNotAvailableError`` message and conftest skip-reason
  updated to tell engineers how to fetch/unpack manually.
- ``test_registry_has_euroc_machine_hall`` pin test replaces the old
  pin; asserts real hash (not the ``"0"*64`` placeholder).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 17:52:06 +03:00

43 lines
1.3 KiB
Python

"""Shared fixtures for e2e tests — dataset discovery + skip markers."""
from pathlib import Path
import pytest
REPO_ROOT = Path(__file__).resolve().parents[2]
DATASETS_ROOT = REPO_ROOT / "datasets"
@pytest.fixture(scope="session")
def euroc_mh01_root() -> Path:
root = DATASETS_ROOT / "euroc" / "MH_01"
if not (root / "mav0").is_dir():
pytest.skip(
f"EuRoC MH_01 not present at {root}. "
"Fetch the Machine Hall bundle from ETH Research Collection "
"(DOI 10.3929/ethz-b-000690084), unpack the inner MH_01_easy.zip "
f"into {root}/ so that {root}/mav0/ exists."
)
return root
@pytest.fixture(scope="session")
def vpair_sample_root() -> Path:
root = DATASETS_ROOT / "vpair" / "sample"
if not (root / "poses_query.txt").is_file():
pytest.skip(
f"VPAIR sample not present at {root}. "
"Download the sample zip from the Zenodo link on "
"https://github.com/AerVisLoc/vpair, then unpack so that "
f"{root}/poses_query.txt exists."
)
return root
@pytest.fixture(scope="session")
def mars_lvig_root() -> Path:
root = DATASETS_ROOT / "mars_lvig"
if not root.is_dir():
pytest.skip(f"MARS-LVIG not present at {root}.")
return root