A meta-validator for the JSON Schema specification.
Project description
Bowtie is a meta-validator of the JSON Schema specification, by which we mean it coordinates executing other validator implementations, collecting and reporting on their results.
To do so it defines a simple input/output protocol (specified alongside this README which validator implementations can implement, and it provides a CLI which can execute supported implementations.
It’s called Bowtie because it fans in lots of JSON then fans out lots of results: >·<. Looks like a bowtie, no? Also because it’s elegant – we hope.
Execution
In general, executing bowtie consists of providing 2 pieces of input:
The names of one or more supported implementations to execute
One or more test cases to run against these implementations (schemas, instances and optionally, expected validation results)
Given these, bowtie will report on the result of executing each implementation against the input schema/instance pairs. If expected results are provided, it will compare the results produced against the expected ones, reporting on any implementations which differ from the expected output.
CLI
A sample invocation of the CLI is:
$ bowtie run -i some/jsonschema-implementation/docker-image <<EOF
{"description": "stuff", "schema": {}, "tests": [{"description": "a test", "instance": {"foo": "bar"}}] }
EOF
{"valid": true}
(TODO)
Uses
A key use of bowtie is in executing as input the official test suite and comparing the results produced by implementations to the expected ones from the suite.
Of course one isn’t limited to just the test cases in the test suite, as bowtie can be used to compare the validation results of any input across its supported implementations.
Adding an Implementation
Add a Dockerfile which runs as its entrypoint a bowtie-compatible process to the implementations/ directory in the root of this repository.
Name your directory <(ascii-compatible-name-of-)language-your-implementation-is-written-in>-<language-specific-package-identifier>, so if your implementation is written in B++ and called “flooblekins”, name the directory bpp-flooblekins.
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
Built Distribution
Hashes for bowtie_json_schema-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1b32848f61dc12e5a9540b3ef6385f600a69eac866efdf5547d08e1235c2e10 |
|
MD5 | 14d012a850cea770cbbbf33aa3aa8552 |
|
BLAKE2b-256 | cd931701192020f84e9ae250ef1cf621742e73e55e76452b0310215d177ab587 |