Generate test data from JSON schemata with Hypothesis
Project description
hypothesis-jsonschema
A Hypothesis strategy for generating data that matches some JSON schema. It is currently in beta, but you can use it if you want. Here's the PyPI page.
The public API consists of a just two functions:
hypothesis_jsonschema.from_schema
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 February 2019 (draft07), with the following exception:
- Schema reuse with "definitions" and "$ref" is not supported.
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.
Changelog:
0.8.0 - 2019-03-23
- Further improved support for
allOf
,oneOf
, andanyOf
with base schemata - Added support for
dependencies
- Handles overlapping
patternProperties
0.7.0 - 2019-03-21
- Now requires
jsonschema
>= 3.0 - Improved support for
allOf
,oneOf
, andpropertyNames
- Supports schemata with
"type": [an array of types]
- Warning-free on Hypothesis 4.11
0.6.1 - 2019-02-23
- Fix continuous delivery configuration (before the latent bug manifested)
0.6.0 - 2019-02-23
- Support for conditional subschemata, i.e. the
if
,then
,else
keywords, and theanyOf
,allOf
,oneOf
, andnot
keywords.
0.5.0 - 2019-02-22
- Works with
jsonschema
3.0 pre-release - Initial support for draft06 and draft07
0.4.2 - 2019-02-14
- Dropped dependency on
canonicaljson
- Less warnings on Python 3.7
0.4.1 - 2019-02-06
- Relicensed under the more permissive Mozilla Public License, like Hypothesis
- Requires Hypothesis version 4.0 or later
- Fixed an array bounds bug with
maxItems
andcontains
keywords
0.4.0 - 2018-11-25
Supports string formats (email, datetime, etc) and simple use of the
"contains"
keyword for arrays.
0.3.0 - 2018-11-25
Good support for all basic types. MVP.
0.2.0 - 2018-11-24
Inference for null, boolean, string, and numeric types.
0.1.0 - 2018-11-21
Stake in the ground (generate arbitrary JSON and filter it!)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for hypothesis-jsonschema-0.8.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf2dea756cbc5eb0efb849669aec1f0d7c7724efaf3ba63758496b6d59b755b9 |
|
MD5 | 2acb40fc8045d348fcf4960c3b75fa68 |
|
BLAKE2b-256 | 7a83b2d86a958f941c602205876a6cec88cfba8d6608d9507fe203576245baa4 |