Skip to main content
FORGEJO ERA / ISSUE #617

Update workflow and dataset tests leave the fetch, selection, check, and incremental paths untested

closedOpened by MelanX on

Original description​

By MelanX · October 23, 2026

Crate: tools/minecraft-options

Commit: 2b2af1e4f8166d02e4732d19e040a53745d97a51

Behavior

The existing tests do kill every mutation tried against merge, validate, the codecs, and summarize, but nothing outside summarize, application_review_reasons, and analyzer_command is tested: select_release, client_jar hash failure, normalized_records, main and --check, atomic writes, and CLI errors. There is no test for the incremental unknown case the README promises (test_dataset.py:284 covers unsupported only for a single from-scratch merge), a data_version-only change moving the revision, re-folding an older release, folding an older release into a newer dataset, or a registry-metadata-only change. In test_update.py, assertNotEqual(root, str(cache/"jars")+"/") can never fail because str(jar.parent) has no trailing slash. No test asserts that nothing is written when a review notice appears.

Expected behavior

Offline tests cover release selection (stable only, floor, unknown version), hash failure, --check semantics, incremental and re-fold behavior, revision bumping, and the summary text.

Impact

The bugs in the linked dataset and update issues have no test that would fail on them.

Locations

  • tools/minecraft-options/test_update.py (11-21, 55-65)
  • tools/minecraft-options/test_dataset.py (241, 284)

Validation and limitations

Mutation pass (15 mutants) on a scratch copy; the missing coverage was confirmed by reading the tests.