TestingΒΆ

From the repository root, with the package importable:

python3 -m unittest discover -s tests -v

tests/test_cli_docs.py reads README.md and every Markdown file under docs/ (other than docs/_build) and checks that each long option, subcommand, backend name, and environment variable read in eb_staged_rebuild/cli.py appears there.

Set EB_STAGED_REBUILD_INTEGRATION=1 to enable tests/test_easybuild_integration.py. With that variable set, missing eb or Lmod is a failure. The bubblewrap case skips when bwrap --dev-bind / / true fails. The workflow that installs EasyBuild 5.4.2, bubblewrap, and Lmod is .github/workflows/test.yml.

The ledger tests need EB_STACK_BIN, an eb-stack 0.7.0 binary, and openssl on PATH. tests/test_ledger_eb_stack.py skips without the binary. The build-events and ledger-maintenance suites fail without it. The workflow builds that binary with .github/actions/pinned-ledger from eb-stack commit defb6ae742ef9a56c23aa12280745423c8d46b9a.

Documentation HTML is built with warnings treated as errors:

python3 -m pip install -e ".[docs]"
sudo apt-get install graphviz
make -C docs html

sphinx-build -W -b html docs docs/_build/html is the same build. The CI job docs runs it and does not deploy the site.