def METHOD_NAME(rse_factory, source_rse, vo, file, mock_request):
    _, source_rse2_id = rse_factory.make_mock_rse()
    add_distance(source_rse2_id, mock_request['dest_rse_id'], distance=2)
    add_replicas(rse_id=source_rse2_id, files=[file], account=mock_request['account'])
    src1_distance, src2_distance = (
        get_distances(
            src_rse_id=src_rse,
            dest_rse_id=mock_request['dest_rse_id'],
        )
        for src_rse in (source_rse['id'], source_rse2_id)
    )
    assert src1_distance and len(src1_distance) == 1 and src1_distance[0]['distance'] == 5
    assert src2_distance and len(src2_distance) == 1 and src2_distance[0]['distance'] == 2
    preparer(once=True, transfertools=['mock'], partition_wait_time=0)
    updated_mock_request = get_request(mock_request['id'])
    assert updated_mock_request['state'] == RequestState.QUEUED
    assert updated_mock_request['source_rse_id'] == source_rse2_id  # distance 2 < 5