async def METHOD_NAME(
    self, report: CompanionReport
) -> AsyncIterator[AsyncMock]:
    with mock.patch(
        "idb.common.companion.asyncio.create_subprocess_exec",
        new=AsyncMock(),
    ) as exec_mock, mock.patch("idb.common.companion.open"), mock.patch(
        "idb.common.companion.get_last_n_lines"
    ):
        process_mock = mock.Mock()
        process_mock.stdout.readline = AsyncMock(
            return_value=json.dumps(report).encode("utf-8")
        )
        exec_mock.return_value = process_mock
        yield exec_mock