diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 20:49:56 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 20:49:56 +0000 |
commit | e58669e66fc8ea06371c62c27a8392d76e8d7c5c (patch) | |
tree | 5873c9df8df6eb1a477eed36b249b63fdc0efd4b | |
parent | 967577774ebba25b1e0462ca112deb8cdc540976 (diff) |
automatic import of python-hypothesis-jsonschema
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-hypothesis-jsonschema.spec | 305 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 307 insertions, 0 deletions
@@ -0,0 +1 @@ +/hypothesis-jsonschema-0.22.1.tar.gz diff --git a/python-hypothesis-jsonschema.spec b/python-hypothesis-jsonschema.spec new file mode 100644 index 0000000..4c88954 --- /dev/null +++ b/python-hypothesis-jsonschema.spec @@ -0,0 +1,305 @@ +%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 <Python_Bot@openeuler.org> - 0.22.1-1 +- Package Spec generated @@ -0,0 +1 @@ +af050ab33dd3a2a94298aebf7ba68161 hypothesis-jsonschema-0.22.1.tar.gz |