%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.aliyun.com/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 `_\ , that implements a language suitable
to test and validate REST APIs and Services. It leverages the power of the
`gherkin `_ language to write
business readable tests that validate the behavior of REST APIs.
Although, Behave Restful is implemented in `python `_ and
uses `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 `_.
Finally, we validate specific values in the response using
`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 `_\ , that implements a language suitable
to test and validate REST APIs and Services. It leverages the power of the
`gherkin `_ language to write
business readable tests that validate the behavior of REST APIs.
Although, Behave Restful is implemented in `python `_ and
uses `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 `_.
Finally, we validate specific values in the response using
`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 `_\ , that implements a language suitable
to test and validate REST APIs and Services. It leverages the power of the
`gherkin `_ language to write
business readable tests that validate the behavior of REST APIs.
Although, Behave Restful is implemented in `python `_ and
uses `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 `_.
Finally, we validate specific values in the response using
`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
* Fri Jun 09 2023 Python_Bot - 0.4.4-1
- Package Spec generated