Skip to main content

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


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)

Uploaded Source

Built Distribution

expectly-0.1.8-py2.py3-none-any.whl (7.0 kB view details)

Uploaded Python 2 Python 3

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

Hashes for expectly-0.1.8.tar.gz
Algorithm Hash digest
SHA256 700a3fea2cc566ccdf95b016c90a228fc0f133ed7544396c2e8ff38c612b7842
MD5 f5cd4f356811a082ec1bfa6cfc7699f4
BLAKE2b-256 42683711e82ff846a53297e86549221eccb01d6754817fc380eeff44540e9ca9

See more details on using hashes here.

File details

Details for the file expectly-0.1.8-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for expectly-0.1.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 99b9514279fd006b4f9154dba19477b68d581fbec063f0d18d937805843b8d62
MD5 75265dd5931e6729d26321a9d181ed9c
BLAKE2b-256 84f4609cb53628b02a01d5fe07706e6d36bc20ddf2a50aa96e0bf5f47d08f3b0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page