petercorke / petercorke/machinevision-toolbox-python

roslibpy (ros extra) never installed in CI, so TestRosTopicValidation is entirely skipped

Aperta Adatta ai principianti
#80 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

tech-debt
Lingua principale
Python
Stelle
219
Fork
30
Merge medio
12g 23h
PR unite (30g)
5

Descrizione

Found 2026-08-14 while wiring open3d test coverage into CI for #46.

`pyproject.toml`'s `ros` extra (`rosbags`, `roslibpy`, `websockets`) is never installed
anywhere in `.github/workflows/ci.yml` — only `pip install .[dev,tool]` runs. As a result,
the entire `TestRosTopicValidation` class in `tests/test_ros.py` (class-level
`@pytest.mark.skipif(not _roslibpy_importable, reason="roslibpy not installed")`) is silently
skipped on every CI run, including the three open3d-gated pointcloud-publish tests inside it
(`test_publish_pointcloud_uncoloured`, `test_publish_pointcloud_coloured`,
`test_publish_pointcloud_uses_explicit_timestamp`) — installing open3d alone does not unlock
these, since the class-level roslibpy gate short-circuits first.

Verified locally: with `roslibpy` not installed, `pytest tests/test_ros.py -k pointcloud -rs`
reports `SKIPPED ... roslibpy not installed` for all three, regardless of open3d's install
state.

Other `_rosbags_importable`-gated tests in the same file (`TestRosBagsIO` etc.) are presumably
similarly always-skipped, since `rosbags` isn't installed either — not independently verified
here, worth checking as part of the fix.

Fix

Add a CI leg (or a conditional install step, similar to the open3d pattern from #46/#78) that
installs `.[ros]` on at least one matrix leg, so the `ros`-extra-gated tests actually run
somewhere rather than being permanently invisible to CI.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da .github/workflows/ci.yml e pyproject.toml per vedere come vengono installati gli extras esistenti e i leg della matrice. Esegui pytest tests/test_ros.py -k pointcloud -rs, quindi verifica che il leg ROS-extra esegua i test vincolati a roslibpy e rosbags invece di saltarli; il job CI dovrebbe completarsi correttamente con l’extra installato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
github-actions, python
Ambito
ci-cd, testing-qa
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Tranquilla
Chiarezza
Specificata chiaramente
Idoneità per principianti
78/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.