Skip to main content

A pytest plugin to perform JSONSchema validations

Project description

pytest-jsonschema

PyPI Python Version Wheel License Status Tests / QA Contributors Stars

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.

Installation

Install pytest-jsonschema using pip / uv from PyPI:

pip install pytest-jsonschema

Features & Usage

The package introduces three pytest fixtures for validating JSON data:

schema_validate_file

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")

schema_validate_string

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")

schema_validate

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")

Requirements

  • pytest >= 6.2.0

Contributing

To contribute to pytest-jsonschema, please follow these steps:

  1. Clone the repository:
git clone git@github.com:collective/pytest-jsonschema.git
  1. Install the package for development:
make install
  1. Format the codebase:
make format
  1. 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.

License 📜

pytest-jsonschema is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_jsonschema-1.0.0b1.tar.gz (159.2 kB view details)

Uploaded Source

Built Distribution

pytest_jsonschema-1.0.0b1-py3-none-any.whl (101.9 kB view details)

Uploaded Python 3

File details

Details for the file pytest_jsonschema-1.0.0b1.tar.gz.

File metadata

  • Download URL: pytest_jsonschema-1.0.0b1.tar.gz
  • Upload date:
  • Size: 159.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.3

File hashes

Hashes for pytest_jsonschema-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 6b4f0d890e0eeee64aefd3ea62b272a78930b3a645a9ab876c284767244ebd3c
MD5 24c54eb353b1326f8065cceb285b556d
BLAKE2b-256 65e6d6062480a60005050ae0c41b326ca777848dfd6d9821931685bccde688dc

See more details on using hashes here.

File details

Details for the file pytest_jsonschema-1.0.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_jsonschema-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 bbed170a555c71cb1a317f9f2b86430c7a39922384cbf07f99be43427018b853
MD5 8efd0c19cb0dc36f8310ccb098e0c208
BLAKE2b-256 5263db04d0f85933a21d2103c2a75074662dfccafef85bcf5e2a648786acbf9c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page