diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-behave-restful.spec | 223 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 225 insertions, 0 deletions
@@ -0,0 +1 @@ +/behave-restful-0.4.4.tar.gz diff --git a/python-behave-restful.spec b/python-behave-restful.spec new file mode 100644 index 0000000..36e7129 --- /dev/null +++ b/python-behave-restful.spec @@ -0,0 +1,223 @@ +%global _empty_manifest_terminate_build 0 +Name: python-behave-restful +Version: 0.4.4 +Release: 1 +Summary: Implements Gherking language for REST services. +License: MIT +URL: https://github.com/behave-restful/behave-restful +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b8/87/25ab8ba0f6715303416a22cb85d646b750e4076e149c28745f0a3dc554a5/behave-restful-0.4.4.tar.gz +BuildArch: noarch + +Requires: python3-assertpy +Requires: python3-behave +Requires: python3-jsonpath +Requires: python3-jsonref +Requires: python3-jsonschema +Requires: python3-PyYaml +Requires: python3-requests + +%description +Behave Restful is a Behavior Driven Development (BDD) framework based on +`behave <https://pythonhosted.org/behave/>`_\ , that implements a language suitable +to test and validate REST APIs and Services. It leverages the power of the +`gherkin <https://github.com/cucumber/cucumber/wiki/Gherkin>`_ language to write +business readable tests that validate the behavior of REST APIs. +Although, Behave Restful is implemented in `python <http://www.python.org>`_ and +uses `behave <https://pythonhosted.org/behave/>`_ as underlying framework, it can +test services implemented in any language as easy as: + Feature: API to add a new book to our collection + As a user, I want to add a new book to my "to-read" collection. + Scenario: Add a new book to collection. + Given a request url http://my.reads/api/books + And a request json payload + """ + { + "category": "reference", + "author": "Nigel Rees", + "title": "Sayings of the Century", + "price": 8.95, + "status": "to-read" + } + """ + When the request sends POST + Then the response status is CREATED + And the response json matches + """ + { + "title": "BookObject", + "type": "object" + "properties": { + "id": {"type": "number"}, + "category": {"type": "string"}, + "author": {"type": "string"}, + "title": {"type": "string"}, + "price": {"type": "number"}, + "status": {"type": "string", "enum": ["to-read", "reading", "read"]} + }, + "required": ["id", "category", "title"] + } + """ + And the response json at $.id is equal to 100 + And the response json at $.category is equal to "reference" + And the response json at $.title is equal to "Sayings of the Century" +As you can see in the example, we send a POST request to the specified url with +a JSON payload, and we can validate the result very easy. First, we verify that +the status of the response is CREATED (it succeeds). Then we validate the +response JSON body using the expected `JSON Schema <http://json-schema.org/>`_. +Finally, we validate specific values in the response using +`JSONPath <http://goessner.net/articles/JsonPath/>`_ + +%package -n python3-behave-restful +Summary: Implements Gherking language for REST services. +Provides: python-behave-restful +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-behave-restful +Behave Restful is a Behavior Driven Development (BDD) framework based on +`behave <https://pythonhosted.org/behave/>`_\ , that implements a language suitable +to test and validate REST APIs and Services. It leverages the power of the +`gherkin <https://github.com/cucumber/cucumber/wiki/Gherkin>`_ language to write +business readable tests that validate the behavior of REST APIs. +Although, Behave Restful is implemented in `python <http://www.python.org>`_ and +uses `behave <https://pythonhosted.org/behave/>`_ as underlying framework, it can +test services implemented in any language as easy as: + Feature: API to add a new book to our collection + As a user, I want to add a new book to my "to-read" collection. + Scenario: Add a new book to collection. + Given a request url http://my.reads/api/books + And a request json payload + """ + { + "category": "reference", + "author": "Nigel Rees", + "title": "Sayings of the Century", + "price": 8.95, + "status": "to-read" + } + """ + When the request sends POST + Then the response status is CREATED + And the response json matches + """ + { + "title": "BookObject", + "type": "object" + "properties": { + "id": {"type": "number"}, + "category": {"type": "string"}, + "author": {"type": "string"}, + "title": {"type": "string"}, + "price": {"type": "number"}, + "status": {"type": "string", "enum": ["to-read", "reading", "read"]} + }, + "required": ["id", "category", "title"] + } + """ + And the response json at $.id is equal to 100 + And the response json at $.category is equal to "reference" + And the response json at $.title is equal to "Sayings of the Century" +As you can see in the example, we send a POST request to the specified url with +a JSON payload, and we can validate the result very easy. First, we verify that +the status of the response is CREATED (it succeeds). Then we validate the +response JSON body using the expected `JSON Schema <http://json-schema.org/>`_. +Finally, we validate specific values in the response using +`JSONPath <http://goessner.net/articles/JsonPath/>`_ + +%package help +Summary: Development documents and examples for behave-restful +Provides: python3-behave-restful-doc +%description help +Behave Restful is a Behavior Driven Development (BDD) framework based on +`behave <https://pythonhosted.org/behave/>`_\ , that implements a language suitable +to test and validate REST APIs and Services. It leverages the power of the +`gherkin <https://github.com/cucumber/cucumber/wiki/Gherkin>`_ language to write +business readable tests that validate the behavior of REST APIs. +Although, Behave Restful is implemented in `python <http://www.python.org>`_ and +uses `behave <https://pythonhosted.org/behave/>`_ as underlying framework, it can +test services implemented in any language as easy as: + Feature: API to add a new book to our collection + As a user, I want to add a new book to my "to-read" collection. + Scenario: Add a new book to collection. + Given a request url http://my.reads/api/books + And a request json payload + """ + { + "category": "reference", + "author": "Nigel Rees", + "title": "Sayings of the Century", + "price": 8.95, + "status": "to-read" + } + """ + When the request sends POST + Then the response status is CREATED + And the response json matches + """ + { + "title": "BookObject", + "type": "object" + "properties": { + "id": {"type": "number"}, + "category": {"type": "string"}, + "author": {"type": "string"}, + "title": {"type": "string"}, + "price": {"type": "number"}, + "status": {"type": "string", "enum": ["to-read", "reading", "read"]} + }, + "required": ["id", "category", "title"] + } + """ + And the response json at $.id is equal to 100 + And the response json at $.category is equal to "reference" + And the response json at $.title is equal to "Sayings of the Century" +As you can see in the example, we send a POST request to the specified url with +a JSON payload, and we can validate the result very easy. First, we verify that +the status of the response is CREATED (it succeeds). Then we validate the +response JSON body using the expected `JSON Schema <http://json-schema.org/>`_. +Finally, we validate specific values in the response using +`JSONPath <http://goessner.net/articles/JsonPath/>`_ + +%prep +%autosetup -n behave-restful-0.4.4 + +%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-behave-restful -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.4-1 +- Package Spec generated @@ -0,0 +1 @@ +a3d0521600f9382b7a55ed93b5f23522 behave-restful-0.4.4.tar.gz |
