async def METHOD_NAME(*, app):
    app.flow_control.resume()
    channel1 = app.channel(maxsize=10)
    channel2 = app.channel(maxsize=1)
    with pytest.raises(RuntimeError):
        # must call aiter
        await channel1.__anext__()
    it1 = aiter(channel1)
    it2 = aiter(channel2)
    await channel2.put(b"xuzzy")
    assert await times_out(channel2.put(b"bar"))  # maxsize=1
    assert it1.queue is not channel1.queue
    assert it1._root is channel1
    assert it1 in channel1._subscribers
    assert channel1.subscriber_count == 1
    assert channel1.queue is not channel2.queue
    assert await channel_empty(channel1)
    await channel1.put(b"foo")
    assert await anext(it1) == b"foo"
    assert await channel_empty(channel1)
    for i in range(10):
        await channel1.put(i)
    assert await times_out(channel1.put(10))  # maxsize=10
    for i in range(10):
        assert await anext(it1) == i
    assert await channel_empty(channel1)
    assert await anext(it2) == b"xuzzy"
    assert await channel_empty(channel2)
    it1_2 = aiter(channel1)
    assert it1_2._root is channel1
    assert it1_2 in channel1._subscribers
    assert channel1.subscriber_count == 2
    await channel1.put(b"moo")
    assert await anext(it1) == b"moo"
    assert await anext(it1_2) == b"moo"