[Python-ideas] async unittest.TestCase

David Shawley daveshawley at gmail.com
Wed Oct 10 07:10:55 EDT 2018

Hi everyone and good morning to some of you,

Since asyncio and the async/await syntax are both part of Python, I think
that we should extend TestCase to support it.  The simplest solution that
I can think of is to create unittest.AsyncTestCase sub-class with the
following extensions:

 - create a new event loop and install it in AsyncTestCase.run
 - make it possible for setUp, tearDown, and test methods to be async
   by calling asyncio.iscoroutinefunction

I wrote my own in a local test before noticing that Martin Richard had
already written and published asynctest [1].  Since then I found the
following projects as well:

 - https://github.com/kwarunek/aiounittest <https://github.com/kwarunek/aiounittest>
 - https://github.com/pytest-dev/pytest-asyncio <https://github.com/pytest-dev/pytest-asyncio>

I think that the community as a whole would benefit from basic support in
unittest for async/await test "user methods".  I am personally fond of the
approach of extending unittest.TestCase in asynctest [2] over some of the
other approaches.

Is this something that we want in our Standard Library?

- dave
[1]: https://github.com/Martiusweb/asynctest <https://github.com/Martiusweb/asynctest>
[2]: https://github.com/Martiusweb/asynctest/blob/master/asynctest/case.py <https://github.com/Martiusweb/asynctest/blob/master/asynctest/case.py>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20181010/eb44cf6e/attachment.html>

More information about the Python-ideas mailing list