@app.get('/dossier/v1/feature-collection/<cid>/search/<engine_name>')
@app.post('/dossier/v1/feature-collection/<cid>/search/<engine_name>')
def v1_search(request, response, visid_to_dbid, config,
              search_engines, filters, cid, engine_name):
    db_cid = visid_to_dbid(cid)
    try:
        search_engine = search_engines[engine_name]
    except KeyError as e:
        bottle.abort(404, 'Search engine "%s" does not exist.' % e.message)
    query = request.query if request.method == 'GET' else request.forms
    search_engine = (config.create(search_engine)
                           .set_query_id(db_cid)
                           .set_query_params(query))
    for name, filter in filters.items():
        search_engine.add_filter(name, config.create(filter))
    return search_engine.respond(response)
Do the actual testing.
dataset/ETHPy150Open dossier/dossier.web/dossier/web/routes.py/v1_search--crossover with--dataset/ETHPy150Open enthought/mayavi/mayavi/tests/test_optional_collection.py/TestOptionalCollection.check