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/>`_


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.


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


Changelog
=========

2014-12-18: Version 0.2
-----------------------

* Add CallbackTests.test_call_soon_control()
* Fix ThreadTests.test_policy(): asyncio.get_event_loop() now runs a
  RuntimeError, not an AssertionError
* Drop support for usage on the command line, there was a design issue
  when testing Trollius when the asyncio module was also importable
  (ex: Python 3.4)

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

* First public release
