Expects

February 17, 2025 ยท View on GitHub

.. 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://github.com/jaimegildesagredo/expects/actions/workflows/pipeline.yml/badge.svg :target: https://github.com/jaimegildesagredo/expects/actions/workflows/pipeline.yml :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>_.