Metadata-Version: 2.1
Name: expects
Version: 0.9.0
Summary: Expressive and extensible TDD/BDD assertion library for Python
Home-page: https://github.com/jaimegildesagredo/expects
Author: Jaime Gil de Sagredo Luna
Author-email: jaimegildesagredo@gmail.com
License: Apache 2.0
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: Apache Software License
License-File: LICENSE

Expects
=======

.. image:: https://img.shields.io/pypi/v/expects.svg
    :target: https://pypi.python.org/pypi/expects
    :alt: Latest version

.. image:: https://img.shields.io/badge/Docs-latest-brightgreen.svg
    :target: http://expects.readthedocs.io/en/latest
    :alt: Docs

.. image:: https://img.shields.io/badge/Licence-Apache2-brightgreen.svg
    :target: https://www.tldrlegal.com/l/apache2
    :alt: License

.. image:: https://secure.travis-ci.org/jaimegildesagredo/expects.svg?branch=master
    :target: http://travis-ci.org/jaimegildesagredo/expects
    :alt: Build status

.. image:: https://img.shields.io/pypi/pyversions/expects.svg
    :target: https://pypi.python.org/pypi/expects
    :alt: PyPI versions

**Expects** is an *expressive* and *extensible* TDD/BDD assertion library for Python. Expects can be *extended* by defining `new matchers <http://expects.readthedocs.io/en/latest/custom-matchers.html>`_.

Usage
-----

Just import the ``expect`` callable and the `built-in matchers <http://expects.readthedocs.io/en/latest/matchers.html>`_ and start writing test assertions.

.. code-block:: python

    from expects import *

    expect([]).to(be_empty)

    expect(False).not_to(be_true)

    expect({
        'name': 'Jack',
        'email': 'jack@example.com'
    }).to(have_key('name', match('\w+')))

    expect(str).to(have_property('split') & be_callable)

    expect(lambda: foo).to(raise_error(NameError))

    expect('Foo').to(equal('Bar') | equal('Foo'))

Installation
------------

You can install the last stable release of Expects from PyPI using pip or easy_install.

.. code-block:: bash

    $ pip install expects

Also you can install the latest sources from Github.

.. code-block:: bash

     $ pip install -e git+git://github.com/jaimegildesagredo/expects.git#egg=expects

Specs
-----

To run the Expects specs you should install the development requirements and then run `mamba`.

.. code-block:: bash

    $ pip install -r test-requirements.txt
    $ mamba

Changes
-------

See `Changes  <https://expects.readthedocs.io/en/latest/changes.html>`_.

3rd Party Matchers
------------------

See `3rd-Party Matchers list <http://expects.readthedocs.io/en/latest/3rd-party-matchers.html>`_.


