Как проверить асинхронный код Python 3.4?

Какой лучший способ написания модульных тестов для кода с использованием Python 3.4asyncio библиотека? Предположим, я хочу протестировать TCP-клиент (SocketConnection):

import asyncio
import unittest

class TestSocketConnection(unittest.TestCase):
    def setUp(self):
        self.mock_server = MockServer("localhost", 1337)
        self.socket_connection = SocketConnection("localhost", 1337)

    @asyncio.coroutine
    def test_sends_handshake_after_connect(self):
        yield from self.socket_connection.connect()
        self.assertTrue(self.mock_server.received_handshake())

При запуске этого тестового примера с использованием стандартного средства запуска тест всегда будет успешным, поскольку метод выполняется только до первогоyield from инструкция, после которой возвращается перед выполнением каких-либо утверждений. Это делает тесты всегда успешными.

Есть ли готовый тестовый прогон, способный обрабатывать такой асинхронный код?

Ответы на вопрос(7)

Ваш ответ на вопрос