summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 14:54:41 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 14:54:41 +0000
commitce36e74930f1466a604b1d60099761d07c72f74f (patch)
tree4053ec0b6b9b3358608b866373d3a27cf803d896
parent25ccc6c9f5799702e421f799b14286caf75d4434 (diff)
automatic import of python-hypothesis-pbopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-hypothesis-pb.spec462
-rw-r--r--sources1
3 files changed, 464 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d96a8e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/hypothesis-pb-1.2.0.tar.gz
diff --git a/python-hypothesis-pb.spec b/python-hypothesis-pb.spec
new file mode 100644
index 0000000..99ae802
--- /dev/null
+++ b/python-hypothesis-pb.spec
@@ -0,0 +1,462 @@
+%global _empty_manifest_terminate_build 0
+Name: python-hypothesis-pb
+Version: 1.2.0
+Release: 1
+Summary: Hypothesis extension to allow generating protobuf messages matching a schema.
+License: MIT
+URL: https://github.com/hchasestevens/hypothesis-protobuf
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/00/9b/837eef75deb3d517bb0c2cf7373884bc98e67065278bfa0c01ae66bd5edc/hypothesis-pb-1.2.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# hypothesis-protobuf
+[![Build Status](https://travis-ci.org/hchasestevens/hypothesis-protobuf.svg?branch=master)](https://travis-ci.org/hchasestevens/hypothesis-protobuf)
+[![PyPI version](https://badge.fury.io/py/hypothesis-pb.svg)](https://pypi.org/project/hypothesis-pb)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hypothesis-pb.svg)
+
+[Hypothesis](http://hypothesis.works/) extension to allow generating [protobuf](https://developers.google.com/protocol-buffers/) messages matching a schema.
+
+## Installation
+```
+pip install hypothesis-pb
+```
+
+## Usage
+Given a compiled protobuf schema module, `hypothesis-protobuf` allows for hypothesis strategies to be generated which match the types of the protobuf messages.
+
+### Simple example
+Using an example protobuf schema for an instant messaging application:
+```proto
+syntax = "proto3";
+package im;
+
+enum Client {
+ CLIENT_UNKNOWN = 0;
+ CLIENT_NATIVE_APP = 1;
+ CLIENT_WEB_APP = 2;
+ CLIENT_API = 3;
+}
+
+message User {
+ uint64 id = 1;
+ string screen_name = 2;
+}
+
+message InstantMessage {
+ uint64 timestamp = 1;
+ Client client = 2;
+ fixed32 sender_ip = 3;
+ User sender = 4;
+ User recipient = 5;
+ string message = 6;
+ repeated bytes image_attachments = 7;
+}
+```
+a strategy for `InstantMessage` can be generated from the compiled schema (`im_pb2.py`) by executing:
+```python
+from hypothesis_protobuf import modules_to_strategies
+import im_pb2
+
+protobuf_strategies = modules_to_strategies(im_pb2)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+which in turn can be used to generate `InstantMessage` examples:
+```python
+>>> instant_message_strategy.example()
+timestamp: 14420265017158477352
+client: CLIENT_NATIVE_APP
+sender_ip: 1465109037
+sender {
+ id: 9509488734701077048
+ screen_name: "\364\210\240\2233\007\352\212\222i\354\217\251"
+}
+recipient {
+ id: 14863054719025962687
+ screen_name: "\351\274\240"
+}
+message: "M\361\265\247\224\310\224\362\202\r\347\227\245\n\352\202M]\361\253\237\2700"
+image_attachments: "\236rN\267\252\363-s\235"
+image_attachments: "\256\376ZP-"
+image_attachments: "\340"
+
+```
+or as a strategy for use in testing (see the [hypothesis quick-start guide](https://hypothesis.readthedocs.io/en/latest/quickstart.html)):
+```python
+from hypothesis import given
+
+@given(instant_message=protobuf_strategies[im_pb2.InstantMessage])
+def test_instant_message_processor(instant_message):
+ assert process_message(instant_message) # will be run using multiple InstantMessage examples
+```
+
+### Overriding strategies
+When generating strategies for a given protobuf module, field-specific overrides can be provided. These overrides must be mappings from full field names to strategies, like so:
+```python
+from hypothesis_protobuf import modules_to_strategies
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+protobuf_strategies = modules_to_strategies(im_pb2, **strategy_overrides)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+`hypothesis-protobuf` also offers a `full_field_name` utility, allowing the above override to be specified as:
+```python
+from hypothesis_protobuf import full_field_name
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ full_field_name(im_pb2.InstantMessage, 'timestamp'): st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+```
+In cases where the message strategy should choose either from the override provided or from the default field value, the `optional` function can be used:
+```python
+from hypothesis_protobuf import optional
+from hypothesis import strategies as st
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': optional(
+ st.floats(min_value=0, max_value=2e9)
+ )
+}
+```
+Finally, overrides can also be provided as functions, taking the field's default strategy and returning a new strategy. Using this method, the above can be rewritten as:
+```python
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': (
+ lambda strategy: strategy.filter(lambda value: value <= 2e9)
+ )
+}
+```
+
+## License
+`hypothesis-protobuf` is available under the MIT license.
+
+%package -n python3-hypothesis-pb
+Summary: Hypothesis extension to allow generating protobuf messages matching a schema.
+Provides: python-hypothesis-pb
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-hypothesis-pb
+# hypothesis-protobuf
+[![Build Status](https://travis-ci.org/hchasestevens/hypothesis-protobuf.svg?branch=master)](https://travis-ci.org/hchasestevens/hypothesis-protobuf)
+[![PyPI version](https://badge.fury.io/py/hypothesis-pb.svg)](https://pypi.org/project/hypothesis-pb)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hypothesis-pb.svg)
+
+[Hypothesis](http://hypothesis.works/) extension to allow generating [protobuf](https://developers.google.com/protocol-buffers/) messages matching a schema.
+
+## Installation
+```
+pip install hypothesis-pb
+```
+
+## Usage
+Given a compiled protobuf schema module, `hypothesis-protobuf` allows for hypothesis strategies to be generated which match the types of the protobuf messages.
+
+### Simple example
+Using an example protobuf schema for an instant messaging application:
+```proto
+syntax = "proto3";
+package im;
+
+enum Client {
+ CLIENT_UNKNOWN = 0;
+ CLIENT_NATIVE_APP = 1;
+ CLIENT_WEB_APP = 2;
+ CLIENT_API = 3;
+}
+
+message User {
+ uint64 id = 1;
+ string screen_name = 2;
+}
+
+message InstantMessage {
+ uint64 timestamp = 1;
+ Client client = 2;
+ fixed32 sender_ip = 3;
+ User sender = 4;
+ User recipient = 5;
+ string message = 6;
+ repeated bytes image_attachments = 7;
+}
+```
+a strategy for `InstantMessage` can be generated from the compiled schema (`im_pb2.py`) by executing:
+```python
+from hypothesis_protobuf import modules_to_strategies
+import im_pb2
+
+protobuf_strategies = modules_to_strategies(im_pb2)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+which in turn can be used to generate `InstantMessage` examples:
+```python
+>>> instant_message_strategy.example()
+timestamp: 14420265017158477352
+client: CLIENT_NATIVE_APP
+sender_ip: 1465109037
+sender {
+ id: 9509488734701077048
+ screen_name: "\364\210\240\2233\007\352\212\222i\354\217\251"
+}
+recipient {
+ id: 14863054719025962687
+ screen_name: "\351\274\240"
+}
+message: "M\361\265\247\224\310\224\362\202\r\347\227\245\n\352\202M]\361\253\237\2700"
+image_attachments: "\236rN\267\252\363-s\235"
+image_attachments: "\256\376ZP-"
+image_attachments: "\340"
+
+```
+or as a strategy for use in testing (see the [hypothesis quick-start guide](https://hypothesis.readthedocs.io/en/latest/quickstart.html)):
+```python
+from hypothesis import given
+
+@given(instant_message=protobuf_strategies[im_pb2.InstantMessage])
+def test_instant_message_processor(instant_message):
+ assert process_message(instant_message) # will be run using multiple InstantMessage examples
+```
+
+### Overriding strategies
+When generating strategies for a given protobuf module, field-specific overrides can be provided. These overrides must be mappings from full field names to strategies, like so:
+```python
+from hypothesis_protobuf import modules_to_strategies
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+protobuf_strategies = modules_to_strategies(im_pb2, **strategy_overrides)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+`hypothesis-protobuf` also offers a `full_field_name` utility, allowing the above override to be specified as:
+```python
+from hypothesis_protobuf import full_field_name
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ full_field_name(im_pb2.InstantMessage, 'timestamp'): st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+```
+In cases where the message strategy should choose either from the override provided or from the default field value, the `optional` function can be used:
+```python
+from hypothesis_protobuf import optional
+from hypothesis import strategies as st
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': optional(
+ st.floats(min_value=0, max_value=2e9)
+ )
+}
+```
+Finally, overrides can also be provided as functions, taking the field's default strategy and returning a new strategy. Using this method, the above can be rewritten as:
+```python
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': (
+ lambda strategy: strategy.filter(lambda value: value <= 2e9)
+ )
+}
+```
+
+## License
+`hypothesis-protobuf` is available under the MIT license.
+
+%package help
+Summary: Development documents and examples for hypothesis-pb
+Provides: python3-hypothesis-pb-doc
+%description help
+# hypothesis-protobuf
+[![Build Status](https://travis-ci.org/hchasestevens/hypothesis-protobuf.svg?branch=master)](https://travis-ci.org/hchasestevens/hypothesis-protobuf)
+[![PyPI version](https://badge.fury.io/py/hypothesis-pb.svg)](https://pypi.org/project/hypothesis-pb)
+![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hypothesis-pb.svg)
+
+[Hypothesis](http://hypothesis.works/) extension to allow generating [protobuf](https://developers.google.com/protocol-buffers/) messages matching a schema.
+
+## Installation
+```
+pip install hypothesis-pb
+```
+
+## Usage
+Given a compiled protobuf schema module, `hypothesis-protobuf` allows for hypothesis strategies to be generated which match the types of the protobuf messages.
+
+### Simple example
+Using an example protobuf schema for an instant messaging application:
+```proto
+syntax = "proto3";
+package im;
+
+enum Client {
+ CLIENT_UNKNOWN = 0;
+ CLIENT_NATIVE_APP = 1;
+ CLIENT_WEB_APP = 2;
+ CLIENT_API = 3;
+}
+
+message User {
+ uint64 id = 1;
+ string screen_name = 2;
+}
+
+message InstantMessage {
+ uint64 timestamp = 1;
+ Client client = 2;
+ fixed32 sender_ip = 3;
+ User sender = 4;
+ User recipient = 5;
+ string message = 6;
+ repeated bytes image_attachments = 7;
+}
+```
+a strategy for `InstantMessage` can be generated from the compiled schema (`im_pb2.py`) by executing:
+```python
+from hypothesis_protobuf import modules_to_strategies
+import im_pb2
+
+protobuf_strategies = modules_to_strategies(im_pb2)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+which in turn can be used to generate `InstantMessage` examples:
+```python
+>>> instant_message_strategy.example()
+timestamp: 14420265017158477352
+client: CLIENT_NATIVE_APP
+sender_ip: 1465109037
+sender {
+ id: 9509488734701077048
+ screen_name: "\364\210\240\2233\007\352\212\222i\354\217\251"
+}
+recipient {
+ id: 14863054719025962687
+ screen_name: "\351\274\240"
+}
+message: "M\361\265\247\224\310\224\362\202\r\347\227\245\n\352\202M]\361\253\237\2700"
+image_attachments: "\236rN\267\252\363-s\235"
+image_attachments: "\256\376ZP-"
+image_attachments: "\340"
+
+```
+or as a strategy for use in testing (see the [hypothesis quick-start guide](https://hypothesis.readthedocs.io/en/latest/quickstart.html)):
+```python
+from hypothesis import given
+
+@given(instant_message=protobuf_strategies[im_pb2.InstantMessage])
+def test_instant_message_processor(instant_message):
+ assert process_message(instant_message) # will be run using multiple InstantMessage examples
+```
+
+### Overriding strategies
+When generating strategies for a given protobuf module, field-specific overrides can be provided. These overrides must be mappings from full field names to strategies, like so:
+```python
+from hypothesis_protobuf import modules_to_strategies
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+protobuf_strategies = modules_to_strategies(im_pb2, **strategy_overrides)
+instant_message_strategy = protobuf_strategies[im_pb2.InstantMessage]
+```
+`hypothesis-protobuf` also offers a `full_field_name` utility, allowing the above override to be specified as:
+```python
+from hypothesis_protobuf import full_field_name
+from hypothesis import strategies as st
+import im_pb2
+
+strategy_overrides = {
+ full_field_name(im_pb2.InstantMessage, 'timestamp'): st.floats(
+ min_value=0,
+ max_value=2e9
+ )
+}
+```
+In cases where the message strategy should choose either from the override provided or from the default field value, the `optional` function can be used:
+```python
+from hypothesis_protobuf import optional
+from hypothesis import strategies as st
+
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': optional(
+ st.floats(min_value=0, max_value=2e9)
+ )
+}
+```
+Finally, overrides can also be provided as functions, taking the field's default strategy and returning a new strategy. Using this method, the above can be rewritten as:
+```python
+strategy_overrides = {
+ 'im.InstantMessage.timestamp': (
+ lambda strategy: strategy.filter(lambda value: value <= 2e9)
+ )
+}
+```
+
+## License
+`hypothesis-protobuf` is available under the MIT license.
+
+%prep
+%autosetup -n hypothesis-pb-1.2.0
+
+%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-pb -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..07b8dd2
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+aea1fad77fcb4995fcd3088f1e1694fe hypothesis-pb-1.2.0.tar.gz