aiotest is a test suite to validate an implementation of the asyncio API, the
PEP 3156.

* `aiotest at Bitbucket
  <https://bitbucket.org/haypo/aiotest>`_
* `aiotest at the Python Cheeseshop (PyPI)
  <https://pypi.python.org/pypi/aiotest>`_
* `PEP 3156
  <http://www.python.org/dev/peps/pep-3156/>`_

Event loops:

* `asyncio <https://docs.python.org/dev/library/asyncio.html>`_
  (Python 3.4 and newer)
* `tulip <http://code.google.com/p/tulip/>`_ (asyncio for Python 3.3)
* `trollius <http://trollius.readthedocs.org/>`_


Installation
============

Type::

    pip install aiotest

Event loops:

* On Python 2 and Python 3.2, aiotest requires trollius:
  ``pip install trollius``
* On Python 3.3, aiotest requires asyncio (or trollius):
  ``pip install asyncio``
* On Python 3.4 and newer, no extra dependency is needed

Tests:

* Run ``tox``, need the ``tox`` program (``pip install tox``)
* Run ``python test_trollius.py``, need trollius
* Run ``python test_asyncio.py``, need asyncio


Library Usage
=============

Script to run aiotest on trollius::

    import aiotest.run
    import trollius

    config = aiotest.TestConfig()
    config.asyncio = trollius
    config.new_event_pool_policy = trollius.DefaultEventLoopPolicy
    aiotest.run.main(config)

The script has command line options, use ``--help`` to list them.


Command Line Usage
==================

aioeventlet::

    python -m aiotest.run 'aioeventlet.EventLoopPolicy'

aiogevent::

    python -m aiotest.run -S 'aiogevent.EventLoopPolicy'

asyncio::

    python3 -m aiotest.run asyncio.DefaultEventLoopPolicy

trollius::

    python -m aiotest.run trollius.DefaultEventLoopPolicy


Changelog
=========

2014-12-12: Version 0.1
-----------------------

* First public release
