async def METHOD_NAME() -> None:
    loop = asyncio.get_event_loop()
    pr = BaseProtocol(loop=loop)
    tr = mock.Mock()
    pr.connection_made(tr)
    pr.pause_writing()
    fut = loop.create_future()
    async def wait() -> None:
        fut.set_result(None)
        await pr._drain_helper()
    t = loop.create_task(wait())
    await fut
    t.cancel()
    assert pr._drain_waiter is not None
    pr.connection_lost(None)
    with suppress(asyncio.CancelledError):
        await t
    assert pr._drain_waiter is None