Testing¶
FastF1 uses the pytest framework.
The tests are in fastf1/tests
, and customizations to the pytest
testing infrastructure are in fastf1.testing
.
Requirements¶
To run the tests you will need to set up FastF1 for development.
Running the tests¶
In the root directory of your development repository run:
python -m pytest
pytest expects the cache directory test_cache/
to exist. You will have to create it the first time.
pytest can be configured via a lot of command-line parameters. Some particularly useful ones are:
|
Be more verbose |
|
Run tests in parallel over NUM processes (requires pytest-xdist) |
|
Do not capture stdout |
To run a single test from the command line, you can provide a file path, optionally followed by the function separated by two colons, e.g., (tests do not need to be installed, but FastF1 should be):
pytest fastf1/tests/test_events.py::test_event_get_session_date
Linting - Code style tests¶
FastF1 uses Ruff and isort to ensure that the code has a consistent style and is easily readable. All code should conform to the guidelines that are defined by PEP8.
To check whether your code is formatted correctly, run:
ruff check .
To check and correct the import order, run:
python -m isort .
If you have installed the pre-commit hooks, these commands will also be run automatically before each commit.