pytest-jsonschema is a plugin for pytest designed to facilitate JSON Schema validations within your test suites. This tool enables you to validate JSON files, strings, and Python objects against predefined JSON Schemas, ensuring your data adheres to expected formats.
Install pytest-jsonschema using pip / uv from PyPI:
pip install pytest-jsonschema
The package introduces three pytest fixtures for validating JSON data:
Validates a JSON file located in your test suite directory:
from pathlib import Path
def test_package_json_is_valid(schema_validate_file):
path = Path("package.json")
assert schema_validate_file(path=path, schema_name="package")
Validates a JSON string:
from pathlib import Path
def test_package_json_is_valid(schema_validate_string):
data = Path("package.json").read_text()
assert schema_validate_string(data=data, schema_name="package", file_type="json")
Validates a Python dictionary representing JSON data:
import json
from pathlib import Path
def test_package_json_is_valid(schema_validate):
data = json.loads(Path("package.json").read_text())
assert schema_validate(data=data, schema_name="package")
- pytest >= 6.2.0
To contribute to pytest-jsonschema, please follow these steps:
- Clone the repository:
git clone [email protected]:collective/pytest-jsonschema.git
- Install the package for development:
make install
- Format the codebase:
make format
- Run tests:
- To run all tests:
uv run pytest
- To stop on the first error and open a pdb session:
uv run pytest -x --pdb
Testing is conducted using pytest
.
pytest-jsonschema is licensed under the MIT License.