Testing a pre-commit hook#

Running pre-commit locally#

To ensure a pre-commit hook works as expected, run pre-commit locally on the repository. First, install the ansys/pre-commit-hooks project in a virtual environment:

python -m venv .venv
source .venv/bin/activate
pip install -e .
python -m venv .venv
.venv\Scripts\activate
pip install -e .

Next, add the pre-commit hook to the repository’s .pre-commit-config.yaml file, copying the details of the hook from the .pre-commit-hooks.yaml file. For example, to add the new-hook hook:

- repo: local
  hooks:
  - id: "new-hook"
    name: "New Hook"
    description: "A new pre-commit hook for the Ansys Pre-Commit Hooks repository"
    entry: new-hook
    language: python

Run pre-commit on the repository:

pre-commit run --all-files --verbose

Make sure to test the hook locally on both Linux and Windows operating systems.

Running pytest tests#

Create tests using pytest in the tests directory to ensure functions in the hook work as expected. For example, in test_new_hook.py:

import pytest
import ansys.pre_commit_hooks.new_hook as hook

def test_main():
    """Test the main function of the new-hook."""
    # Assert main passes
    assert hook.main() == 0

For more information on writing tests, see the pytest documentation.