Exemplo n.º 1
0
def search():

    my_token = request.args.get("token")
    query = request.args.get("query_str")

    msgs = search_utils.search(my_token, query)

    return dumps({
        "messages": msgs
    })
Exemplo n.º 2
0
def simplesearch_searched():
  searchquery = request.form['simplesearch']

  try:
    search_ids = search.search(searchquery)
  except Exception as e:
    # TODO: better error message, current one does not work
    return render_template('no_results.html', query=searchquery)
    # return render_template('simplesearch_searched.html', query=searchquery,
    #         content = [['Unable to establish connection to nytimes', "We apologize for the inconvenience"]], num_results=1)

  if (len(search_ids) == 0):
    return render_template('no_results.html', query=searchquery)

  else:

    # iterate through complements list, adding tuples of (id, list of complements)
    content = []

    for k in search_ids:
      try:
        title, body = utils.getrecipe_info(k)
        image = getrecipeimage(k)

        value = [k]
        if k in complements:
          complements_list = [n.capitalize() for n in complements[k]] #capitalize first letter
        else:
          complements_list = 'NULL'

        content.append([k, complements_list, title, body, image])

      except:
        pass

    return render_template('simplesearch_searched.html', query=searchquery, 
            content=content, num_results=len(content)) 
Exemplo n.º 3
0
def req_search():
    token = request.args.get('token')
    query_str = request.args.get('query_str')
    return dumps(search(token, query_str))
Exemplo n.º 4
0
def test_search():
    storage.clear_data_store()
    # User to search
    dic1 = authentication.auth_register('*****@*****.**', 'password1', 'Bob',
                                        'James')
    token1 = dic1['token']

    # Second user
    dic2 = authentication.auth_register('*****@*****.**', 'password3', 'Bb',
                                        'Js')
    token2 = dic2['token']

    # channel to search through
    dic = channel_utils.channels_create(token1, 'name', False)
    channel_id_valid = dic['channel_id']

    # Submit messages
    message = "Valid message"
    message_id = message_utils.message_send(token1, channel_id_valid, message)

    message = "second message"
    message_id = message_utils.message_send(token1, channel_id_valid, message)

    message = "third message"
    message_id = message_utils.message_send(token1, channel_id_valid, message)

    # Messages in the channel
    # Search using a valid token for a query which doesn't exist
    token = token1
    queryString = "hello"
    assert search.search(token, queryString) == []

    token = token1
    queryString = "Va"
    assert search.search(token, queryString)[0]['message'] == "Valid message"

    token = token1
    queryString = " mess"
    assert search.search(token, queryString)[1]['message'] == "second message"

    # Serch using a valid token, without access to the channel where the messages are
    token = token2
    queryString = " mess"
    assert search.search(token, queryString) == []

    # search using an invalid token for a valid string.
    token = "invalid"
    queryString = "wassup"
    with pytest.raises(ValueError):
        search.search(token, queryString)

    # handle whitespace as a query string.
    token = token1
    queryString = "      "
    assert search.search(token, queryString) == []

    # handle 1000 characters - Different words.
    token = token1
    queryString = "Hello There Lorem ipsum dolor sit amet, consectetuer \
    adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. \
    Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \
    ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium \
    quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, \
    aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, \
    venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer \
    tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate \
    eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend \
    ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. \
    Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. \
    Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. \
    Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper\
     libero, sit amet adipiscing sem neque sed ipsum. N"

    with pytest.raises(ValueError):
        search.search(token, queryString)

    # handle 1001 characters - Same letter.
    token = token1
    queryString = "H" * 1001
    with pytest.raises(ValueError):
        search.search(token, queryString)
Exemplo n.º 5
0
def backend_search():
    return search()
Exemplo n.º 6
0
def route_search_key(kind, key):
    return search(request, session, kind, key)
Exemplo n.º 7
0
def route_search():
    return search(request, session)