Metadata-Version: 2.0
Name: expectly
Version: 0.1.6
Summary: An HTTP API centric BDD style test framework
Home-page: https://github.com/huntcsg/expectly
Author: Hunter Senft-Grupp
Author-email: huntcsg@gmail.com
License: UNKNOWN
Description-Content-Type: UNKNOWN
Keywords: testing bdd rest api expect rspec chakram chai
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: jsonschema
Requires-Dist: jmespath
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-html; extra == 'dev'
Requires-Dist: requests; extra == 'dev'
Requires-Dist: requests-mock; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: sphinx-rtd-theme; extra == 'dev'
Requires-Dist: isort; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: bumpversion; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: sphinx-rtd-theme; extra == 'docs'
Provides-Extra: testing
Requires-Dist: pytest; extra == 'testing'
Requires-Dist: pytest-cov; extra == 'testing'
Requires-Dist: pytest-html; extra == 'testing'
Requires-Dist: requests; extra == 'testing'
Requires-Dist: requests-mock; extra == 'testing'

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


