%global _empty_manifest_terminate_build 0 Name: python-hypothesis-jsonschema Version: 0.22.1 Release: 1 Summary: Generate test data from JSON schemata with Hypothesis License: MPL 2.0 URL: https://github.com/Zac-HD/hypothesis-jsonschema Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8b/d7/47d7c208ca0f8a2ce6535d6cf0a167d9120ccfc00d6c5ff5fae7936a4654/hypothesis-jsonschema-0.22.1.tar.gz BuildArch: noarch Requires: python3-hypothesis Requires: python3-jsonschema %description # hypothesis-jsonschema A [Hypothesis](https://hypothesis.readthedocs.io) strategy for generating data that matches some [JSON schema](https://json-schema.org/). [Here's the PyPI page.](https://pypi.org/project/hypothesis-jsonschema/) ## 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. ```python from hypothesis import given from hypothesis_jsonschema import from_schema @given(from_schema({"type": "integer", "minimum": 1, "exclusiveMaximum": 10})) def test_integers(value): assert isinstance(value, int) assert 1 <= value < 10 @given( from_schema( {"type": "string", "format": "card"}, # Standard formats work out of the box. Custom formats are ignored # by default, but you can pass custom strategies for them - e.g. custom_formats={"card": st.sampled_from(EXAMPLE_CARD_NUMBERS)}, ) ) def test_card_numbers(value): assert isinstance(value, str) assert re.match(r"^\d{4} \d{4} \d{4} \d{4}$", value) ``` For more details on property-based testing and how to use or customise strategies, [see the Hypothesis docs](https://hypothesis.readthedocs.io/). 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](https://github.com/sponsors/Zac-HD) 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](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CONTRIBUTING.md), and [see everyone who has contributed on GitHub](https://github.com/Zac-HD/hypothesis-jsonschema/graphs/contributors). Thanks, everyone! ### Changelog Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CHANGELOG.md). ### Security contact information To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. %package -n python3-hypothesis-jsonschema Summary: Generate test data from JSON schemata with Hypothesis Provides: python-hypothesis-jsonschema BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-hypothesis-jsonschema # hypothesis-jsonschema A [Hypothesis](https://hypothesis.readthedocs.io) strategy for generating data that matches some [JSON schema](https://json-schema.org/). [Here's the PyPI page.](https://pypi.org/project/hypothesis-jsonschema/) ## 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. ```python from hypothesis import given from hypothesis_jsonschema import from_schema @given(from_schema({"type": "integer", "minimum": 1, "exclusiveMaximum": 10})) def test_integers(value): assert isinstance(value, int) assert 1 <= value < 10 @given( from_schema( {"type": "string", "format": "card"}, # Standard formats work out of the box. Custom formats are ignored # by default, but you can pass custom strategies for them - e.g. custom_formats={"card": st.sampled_from(EXAMPLE_CARD_NUMBERS)}, ) ) def test_card_numbers(value): assert isinstance(value, str) assert re.match(r"^\d{4} \d{4} \d{4} \d{4}$", value) ``` For more details on property-based testing and how to use or customise strategies, [see the Hypothesis docs](https://hypothesis.readthedocs.io/). 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](https://github.com/sponsors/Zac-HD) 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](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CONTRIBUTING.md), and [see everyone who has contributed on GitHub](https://github.com/Zac-HD/hypothesis-jsonschema/graphs/contributors). Thanks, everyone! ### Changelog Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CHANGELOG.md). ### Security contact information To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. %package help Summary: Development documents and examples for hypothesis-jsonschema Provides: python3-hypothesis-jsonschema-doc %description help # hypothesis-jsonschema A [Hypothesis](https://hypothesis.readthedocs.io) strategy for generating data that matches some [JSON schema](https://json-schema.org/). [Here's the PyPI page.](https://pypi.org/project/hypothesis-jsonschema/) ## 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. ```python from hypothesis import given from hypothesis_jsonschema import from_schema @given(from_schema({"type": "integer", "minimum": 1, "exclusiveMaximum": 10})) def test_integers(value): assert isinstance(value, int) assert 1 <= value < 10 @given( from_schema( {"type": "string", "format": "card"}, # Standard formats work out of the box. Custom formats are ignored # by default, but you can pass custom strategies for them - e.g. custom_formats={"card": st.sampled_from(EXAMPLE_CARD_NUMBERS)}, ) ) def test_card_numbers(value): assert isinstance(value, str) assert re.match(r"^\d{4} \d{4} \d{4} \d{4}$", value) ``` For more details on property-based testing and how to use or customise strategies, [see the Hypothesis docs](https://hypothesis.readthedocs.io/). 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](https://github.com/sponsors/Zac-HD) 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](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CONTRIBUTING.md), and [see everyone who has contributed on GitHub](https://github.com/Zac-HD/hypothesis-jsonschema/graphs/contributors). Thanks, everyone! ### Changelog Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/hypothesis-jsonschema/blob/master/CHANGELOG.md). ### Security contact information To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. %prep %autosetup -n hypothesis-jsonschema-0.22.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-hypothesis-jsonschema -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon Apr 10 2023 Python_Bot - 0.22.1-1 - Package Spec generated