For session scoped fixtures, I've made this one (return_value
with object initialization allows iterate only once):
foo = AsyncMock(spec=FooClass)
bar = Mock(spec=BarClass)
async def _g(*_, **__):
yield bar
foo.__aiter__ = Mock(side_effect=_g)