Skip to main content

Generate test data from JSON schemata with Hypothesis

Project description

hypothesis-jsonschema

A Hypothesis strategy for generating data that matches some JSON schema.

Here's the PyPI page.

API

The public API consists of just one function: hypothesis_jsonschema.from_schema, which takes a JSON schema and returns a strategy for allowed JSON objects.

from hypothesis import given
from hypothesis_jsonschema import from_schema

@given(from_schema(
    {"type": "integer", "minimum": 1, "exclusiveMaximum": 10}
))
def test(value):
    assert isinstance(value, int)
    assert 1 <= value < 10

For more details on property-based testing and how to use or customise strategies, see the Hypothesis docs.

JSONSchema drafts 04, 05, and 07 are fully tested and working. As of version 0.11, this includes resolving non-recursive references!

Supported versions

hypothesis-jsonschema requires Python 3.6 or later. In general, 0.x versions will require very recent versions of all dependencies because I don't want to deal with compatibility workarounds.

hypothesis-jsonschema may make backwards-incompatible changes at any time before version 1.x - that's what semver means! - but I've kept the API surface small enough that this should be avoidable. The main source of breaks will be if or when schema that never really worked turn into explicit errors instead of generating values that don't quite match.

You can sponsor me to get priority support, roadmap input, and prioritized feature development.

Contributing to hypothesis-jsonschema

We love external contributions - and try to make them both easy and fun. You can read more details in our contributing guide, and see everyone who has contributed on GitHub. Thanks, everyone!

Changelog

Patch notes can be found in CHANGELOG.md.

Security contact information

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

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

hypothesis-jsonschema-0.16.2.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hypothesis_jsonschema-0.16.2-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file hypothesis-jsonschema-0.16.2.tar.gz.

File metadata

  • Download URL: hypothesis-jsonschema-0.16.2.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for hypothesis-jsonschema-0.16.2.tar.gz
Algorithm Hash digest
SHA256 6c1097c6550ef77d458061520e145e145bd397bd3ec9e4cdbabd81f5796a4fe0
MD5 ebce806cdcf2e271364fd3bdfb3f0acd
BLAKE2b-256 8263b4e17c8bda5e2d5505127ef2c1f1fef3f689617deab9419dcac13c0229c2

See more details on using hashes here.

File details

Details for the file hypothesis_jsonschema-0.16.2-py3-none-any.whl.

File metadata

  • Download URL: hypothesis_jsonschema-0.16.2-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for hypothesis_jsonschema-0.16.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dcda2685c81ed1122b63e9044b4319c52f8e31670d4bae3d73ade7c4351fcb43
MD5 4694e81b8948eeb3fbc6733b882bd358
BLAKE2b-256 672025cc5db9efbd27fc3b6fc61f28d473347a6a7d909915029a2b6c048818fe

See more details on using hashes here.

Supported by

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