Skip to main content

Generate test data from JSON schemata with Hypothesis

Project description


A Hypothesis strategy for generating data that matches some JSON schema. It is currently in early alpha, but you can use it if you want.

The public API consists of a just two functions:


Takes a JSON schema and return a strategy for allowed JSON objects.

This strategy supports almost all of the schema elements described in the draft RFC as of November 2018 (draft 7), with the following exceptions:

For arrays, the "contains" keyword is not supported. For objects, the "dependencies" keyword is not supported. Subschemata are not supported, i.e. the "if", "then", and "else" keywords, and the "allOf, "anyOf", "oneOf", and "not" keywords. For strings, the "format" keyword is not supported. Schema reuse with "definitions" is not supported.

The following features are deemed out of scope - pull requests would be accepted (if maintainable) but issues would not:

  • string-encoding of non-JSON data
  • schema annotations, i.e. "title", "description", "default", "readOnly", "writeOnly", and "examples"
  • JSON pointers


A Hypothesis strategy for arbitrary JSON schemata.

This strategy may generate anything that can be handled by from_schema, and is used to provide full branch coverage when testing this package.

Supported versions

hypothesis-jsonschema does not support Python 2, because it's close to end of life and Python 3.6+ is a much nicer language. Contact me if you would like this changed and are willing to either pay for or do the work to support Python 2.

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.

Project details

Download files

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

Files for hypothesis-jsonschema, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size hypothesis-jsonschema-0.3.0.tar.gz (6.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page