summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-behave-restful.spec223
-rw-r--r--sources1
3 files changed, 225 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..162967a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..61f9ed3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a3d0521600f9382b7a55ed93b5f23522 behave-restful-0.4.4.tar.gz