def METHOD_NAME(port_generator):
    exposed_port = port_generator()
    flow = (
        Flow(port=exposed_port)
        .add(uses=Executor1, name='pod0')
        .add(uses=Executor2, needs='gateway', name='pod1')
        .add(uses=Executor3, needs='gateway', name='pod2')
        .add(needs=['pod0', 'pod1', 'pod2'], name='pod3', uses_before='BaseExecutor')
    )
    with flow:
        da = DocumentArray([Document() for _ in range(5)])
        resp = Client(port=exposed_port).post('/', inputs=da, return_responses=True)
    # assert reduce happened because there is only BaseExecutor as uses_before
    assert len(resp[0].docs) == 5