def async_runner(timeout):
    # XXX: The acceptance tests (which were the first tests that we tried to
    # migrate) aren't cleaning up after themselves even in the successful
    # case. Use AsynchronousDeferredRunTestForBrokenTwisted, which loops the
    # reactor a couple of times after the test is done.
    async_factory = _AsyncRunner.make_factory(
        timeout=timeout.total_seconds(),
        suppress_twisted_logging=False,
        store_twisted_logs=False,
    )
    return retry_flaky(async_factory)


# By default, asynchronous tests are timed out after 2 minutes.
Make a ``RunTest`` instance for asynchronous tests.
dataset/ETHPy150Open ClusterHQ/flocker/flocker/testtools/_base.py/async_runner