Testing Guide
This guide covers running and writing tests for the Open Library project.
Running Tests
Run All Tests
bash
docker compose run --rm home make testRun Python Tests Only
bash
docker compose run --rm home pytestRun a specific test file:
bash
docker compose run --rm home pytest openlibrary/plugins/importapi/tests/test_import_validator.pyRun tests matching a pattern:
bash
docker compose run --rm home pytest -k "test_name_pattern"Run JavaScript Tests
bash
docker compose run --rm home npm run testRun Type Checks
bash
docker compose run --rm home make mypyLinting
Open Library uses automated linting to maintain code quality and consistency. The CI server automatically checks all pull requests for linting issues. To save time, you can run these checks locally before pushing your changes.
Quick Reference
| Task | Command |
|---|---|
| Run all linters | docker compose run --rm home make lint |
| Lint JavaScript | docker compose run --rm home npm run lint |
| Lint Python | docker compose run --rm home make lint |
| Run pre-commit hooks | pre-commit run --all-files |
| Bypass pre-commit | git commit --no-verify |
For details on setting up and troubleshooting pre-commit, see the Pre-Commit Guide.