An HTTP API centric BDD style test framework
Project description
Expectly - An HTTP API centric BDD style test framework
-------------------------------------------------------
|travis| |pypi| |docs|
Use Cases:
- Making assertions about api responses more readable
- Extending expectly with new assertions to reduce boilerplate
.. DANGER::
This library is in alpha. I will try my utmost to not make backwards incompatible changes
but it is possible that
Installing
==========
.. code-block:: shell
$ pip install expectly
API Examples
============
Built In Assertion methods
**************************
.. code-block:: python
# status_code (with status code number)
expect(response).to.have.status_code(200)
# header (asserts the header exists). Sets the header value to be further tested against
expect(response).to.have.header('Content-Type')
# equals
expect(response).to.have.header('Content-Type').equal('application/json')
# like (does a regex match against the value)
expect(response).to.have.header('Content-Type').like('application')
# exactly_like (does a regex match against the whole value
expect(response).to.have.header('Content-Type').exactly_like('^application/[\w]*$')
# encoding
expect(response).to.have.encoding('utf-8')
# ok (uses requests.response.ok attribute)
expect(response).to.be.ok
Extending expectly.expect with additional assertions
****************************************************
TODO
JSON handling in expectly
*************************
jsonschema is used for evaluating whether json responses match the relevant schema
jmespath is used for navigating/selecting information to test inside of the json response
Development
===========
.. code-block:: shell
$ git clone https://github.com/huntcsg/expectly.git
$ cd expectly
$ ./utils/manage clean
$ ./utils/manage test
$ ./utils/manage docs
1. All pull requests must pass the travis-ci builds
2. All pull requests should include inline (docstring) documentation, updates to built documentation if applicable,
and test coverage. This project aspires to be a 100% test coverage library.
.. |travis| image:: https://travis-ci.org/huntcsg/expectly.svg?branch=master
:target: https://travis-ci.org/huntcsg/expectly
.. |pypi| image:: https://img.shields.io/pypi/v/expectly.svg
:target: https://pypi.python.org/pypi/expectly
.. |docs| image:: https://readthedocs.org/projects/expectly/badge/?version=latest
:target: http://expectly.readthedocs.io/en/latest/?badge=latest
Changes
=======
0.1.0
*****
- Initial Release
Authors
-------
Hunter Senft-Grupp
-------------------------------------------------------
|travis| |pypi| |docs|
Use Cases:
- Making assertions about api responses more readable
- Extending expectly with new assertions to reduce boilerplate
.. DANGER::
This library is in alpha. I will try my utmost to not make backwards incompatible changes
but it is possible that
Installing
==========
.. code-block:: shell
$ pip install expectly
API Examples
============
Built In Assertion methods
**************************
.. code-block:: python
# status_code (with status code number)
expect(response).to.have.status_code(200)
# header (asserts the header exists). Sets the header value to be further tested against
expect(response).to.have.header('Content-Type')
# equals
expect(response).to.have.header('Content-Type').equal('application/json')
# like (does a regex match against the value)
expect(response).to.have.header('Content-Type').like('application')
# exactly_like (does a regex match against the whole value
expect(response).to.have.header('Content-Type').exactly_like('^application/[\w]*$')
# encoding
expect(response).to.have.encoding('utf-8')
# ok (uses requests.response.ok attribute)
expect(response).to.be.ok
Extending expectly.expect with additional assertions
****************************************************
TODO
JSON handling in expectly
*************************
jsonschema is used for evaluating whether json responses match the relevant schema
jmespath is used for navigating/selecting information to test inside of the json response
Development
===========
.. code-block:: shell
$ git clone https://github.com/huntcsg/expectly.git
$ cd expectly
$ ./utils/manage clean
$ ./utils/manage test
$ ./utils/manage docs
1. All pull requests must pass the travis-ci builds
2. All pull requests should include inline (docstring) documentation, updates to built documentation if applicable,
and test coverage. This project aspires to be a 100% test coverage library.
.. |travis| image:: https://travis-ci.org/huntcsg/expectly.svg?branch=master
:target: https://travis-ci.org/huntcsg/expectly
.. |pypi| image:: https://img.shields.io/pypi/v/expectly.svg
:target: https://pypi.python.org/pypi/expectly
.. |docs| image:: https://readthedocs.org/projects/expectly/badge/?version=latest
:target: http://expectly.readthedocs.io/en/latest/?badge=latest
Changes
=======
0.1.0
*****
- Initial Release
Authors
-------
Hunter Senft-Grupp
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
expectly-0.1.8.tar.gz
(8.1 kB
view details)
Built Distribution
File details
Details for the file expectly-0.1.8.tar.gz
.
File metadata
- Download URL: expectly-0.1.8.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 700a3fea2cc566ccdf95b016c90a228fc0f133ed7544396c2e8ff38c612b7842 |
|
MD5 | f5cd4f356811a082ec1bfa6cfc7699f4 |
|
BLAKE2b-256 | 42683711e82ff846a53297e86549221eccb01d6754817fc380eeff44540e9ca9 |
File details
Details for the file expectly-0.1.8-py2.py3-none-any.whl
.
File metadata
- Download URL: expectly-0.1.8-py2.py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99b9514279fd006b4f9154dba19477b68d581fbec063f0d18d937805843b8d62 |
|
MD5 | 75265dd5931e6729d26321a9d181ed9c |
|
BLAKE2b-256 | 84f4609cb53628b02a01d5fe07706e6d36bc20ddf2a50aa96e0bf5f47d08f3b0 |